# Loan product setup A loan product is a template that defines the configuration inherited by loans created from it. You can create as many loan products as needed to reflect the types of loans you offer, such as a single Buy Now Pay Later (BNPL) loan product for a group of similar items in your storefront or separate loan products for each individual product you sell. ## Loan product types The Pismo platform supports the following types of loan products. ### Personal loan A personal loan is an unsecured loan issued to an individual. Personal loans are often in large amounts and repaid over many installments. Call the [Create loan product](https://developers.pismo.io/pismo-docs/reference/createloanproductv2) endpoint and set `product_type` to `personal` to create a loan product designed for personal loans. Features include: * Installments calculated based on a reduced balance basis. * Weekly, biweekly, monthly, or quarterly installment plans * Partial repayment options with the flexibility to reduce either the loan tern or the installment amount * Borrowers can use early full loan repayment options to settle the loan account. ### Buy Now, Pay Later (BNPL) loan A BNPL loan is an unsecured loan issued at checkout in the amount of the purchase price. Call the [Create loan product](https://developers.pismo.io/pismo-docs/reference/createloanproductv2) (v2) endpoint and set `product_type` to `BNPL` to create a loan product designed for BNPL loans. Features include: * Interest-free periods * Biweekly or monthly repayment frequencies * Disbursements directly to merchants * Contract cancelation in case of product returns. * Charges for missed payments or interest after the interest-free period. * Live data streams for notifications, reporting, and integration with Artificial Intelligence/Machine Learning (AI/ML) solutions ## Rules Using the `rules` object, a loan product enables you to define limits for the following values at loan creation time: * **Loan amount:** The total amount of the loan. * **Number of installments:** The total number of installments the system can split a repayment into. * **Loan term length:** The span of time over which the borrower makes repayments. * **Interest rate:** The total interest rate applied to the loan amount. ## Charge plan codes You can use the Pismo platform to add charge plan codes. A charge plan code links service charges or taxes to a product or service. For example, you can apply charge plans to BNPL loans. To use charge plan codes, add a value to the `charge_plan_codes` array in your loan product. # Loan product prerequisites Before you start creating loans, you need to create at least one loan product. Before you can create a loan product, however, you need to create whatever supporting entities you plan to assign to it. These usually include a repayment hierarchy, a charge plan, a penalty plan (needed with V1 Lending APIs), and interest plan (needed with V2 Lending APIs). # Create repayment hierarchy To create a repayment hierarchy, use the [Create repayment hierarchy](https://developers.pismo.io/pismo-docs/reference/createrepaymenthierarchyv2) endpoint. ### Your system Sends a POST to /lending/v2/repayment-hierarchies with the following payload. ```json Create repayment hierarchy { "hierarchy_code": "HIERARCHY_001", "hierarchy": [ "PRINCIPAL" ] } ``` In this example, the repayment hierarchy is configured so that principal is the only component considered, and it has the highest (and only) priority. How the request is structured: * hierarchy\_code\ A unique identifier for the repayment hierarchy. This code is later referenced when creating a loan product to associate the hierarchy with that product. * hierarchy\ Defines the ordered list of loan components that repayments are applied to. In this example, the array contains only "PRINCIPAL", meaning that any repayment amount is applied exclusively to the principal balance. # Create charge plan To create a charge plan, use the [Create charge plan](https://developers.pismo.io/pismo-docs/reference/createchargeplan) endpoint. When you create a recurring charge plan, you specify the number of installments (cycles) and the installment amount. ### Your system Sends a POST to /recurring-charge/v1/recurring-charge-plans with a payload. ```json Create Charge Plan sample { "name": "Tariff fee", "type": "FEE", "code": "TAR5", "currency": 986, "fixed_amount": { "value": 20.00 }, "collection_method": "deduct" } ``` ### Pismo platform This endpoint generates a [Recurring charge plan created ](https://developers.pismo.io/events/docs/balance-recurring-charge-plan-created-1)event. # Create penalty plan (V1 Lending API) To create a penalty plan, use the [Create penalty plan](https://developers.pismo.io/pismo-docs/reference/createpenaltyplan) endpoint. ### Your system Sends a POST to /lending/v1/penalty-plans with a payload. ```json Create penalty plan sample { "code": "abcdefg", "name": "PERCENTAGE_PENALTY_PLAN_DEFAULT", "grace_days": 3, "apply_when": [ "PAST_DUE", "PARTIALLY_PAID" ], "currency": 986, "percentage": { "value": 10, "accrual_frequency": "MONTHLY", "minimum_penalty_amount": 100, "maximum_penalty_amount": 300, "apply_concerning": [ "PRINCIPAL", "INTEREST", "FEE", "TAX", "CHARGE", "PENALTY" ] } } ``` In this example: * The penalty is defined as a percentage rather than a fixed amount. * A 10% penalty is applied. * The penalty accrues monthly. * The penalty applies to multiple balance components, including principal, interest, fees, taxes, charges, and existing penalties. * The plan is uniquely identified by a code, name, and currency code. Once created, you can associate the penalty plan with a loan product as part of the overall loan configuration flow. ### Pismo platform No events emitted. # Create interest plan (V2 Lending API) To create an interest plan, use the [Create interest plan](https://developers.pismo.io/pismo-docs/reference/post-v1-interest-plan) endpoint. ## Your system Sends a POST request to interest-engine/v1/interest/plan with a payload. ```json Interest plan sample { "accrual_basis": "ACTUAL/365", "accrual_frequency": "DAILY", "capitalisation_frequency": "DAILY", "currency_code": "986", "description": "INTEREST PLAN FOR BNPL LENDING", "interest_type": "SIMPLE", "operation_type": "DEBIT", "fixed_interest_rate": 0.8, "start_date": "2025-09-17", "metadata": { "sample": "QUARTERLY" } } ``` ### Pismo platform This endpoint generates an [Interest plan creation succeeded](https://developers.pismo.io/events/docs/interest-management-interest-plan-creation-success-1) event. Next, now that you have all the prerequisites, you can [create a loan product](https://developers.pismo.io/pismo-docs/docs/create-a-bnpl-loan).