Create loan products

Use this guide to create your loan products. Before starting—or at any time in this process—if you need more foundational information about loan products, refer to Loan product overview.

Prerequisites

Before creating your loan product, you must set up the following:

Create a repayment hierarchy

Use the repayment hierarchy to define the order that loan components are paid, such as principal, interest, fees, and so on. You can use Control Center or the API.

MethodDescriptionFor more information
Control CenterCreate processing codes for repayment and select them during loan creation (repayment processing codes types).Loan products
APIUse the Create repayment hierarchy endpoint.Create repayment hierarchy

Use the Create repayment hierarchy endpoint with the following payload to indicate the order that you want for each loan component.

Request payload
{
    "hierarchy_code": "HIERARCHY_001",
    "hierarchy": [
      "PRINCIPAL",
      "INTEREST",
      "TAX",
      "FEE",
      "CHARGE",
      "PENALTY",
      "INSURANCE"
    ]
}

How the request is structured:

ParameterDescription
hierarchy_codeSpecifies a unique identifier for the repayment hierarchy. Reference this code when creating a loan product to associate the hierarchy with that product.
hierarchyDefines the repayment priority order. This array must include all seven components the order repayments are applied. In the previous example, repayments are applied to principal first, then interest, tax, fee, charge, penalty, and finally insurance.

Create interest plans

Create interest plans to define how interest is calculated and applied to loan products. You can use Control Center or the API.

MethodDescriptionFor more information
Control CenterYou must first create interest plans, then you can add them to your loan products in Control Center.To create interest plans, refer to Interest plans.
APIUse the Create interest plan endpoint.Create interest plan

Use the Create interest plan endpoint to define the interest type, rate, and so on.

Request payload
{
    "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"
    }
}

This endpoint generates an Interest plan created event.

Create processing codes

Processing codes identify the financial operations that occur across the loan lifecycle and determine the balance impact of each operation. Some important points to keep in mind:

  • Each loan product requires at least one Booking processing code and one Repayment processing code. Booking processing codes define how the loan is booked, such as its accounting impact for disbursement. Repayment processing codes define how the loan is repaid, such as the payment schedule.
  • Once you associate a Booking processing code with a loan product, you cannot use the same processing code with any other loan product.
  • If you plan to use a grace period, a Penalty waiver processing code is also required. Penalty waiver processing codes define how penalties are waved, such as not charging a fee for early repayment of a loan.
  • All other processing codes are optional when creating loan products.

Note: You must tag your processing codes with Lending or BNPL.

You can use Control Center or the API.

MethodDescriptionFor more information
Control CenterYou must first create your processing codes, then you can add them to your loan products in Control Center.To create processing codes, refer to Create processing codes and transaction types.
APIUse the Create processing code endpoint.Create processing code

Use the Create processing code endpoint to create a Booking processing code that has a BNPL tag:

Booking processing code request example
{
  "processing_code": "WC2TH",
  "balance_impact": -1,
  "description": "BNPL BOOKING",
  "reversal_processing_code": "PSM004",
  "partial_reversal_processing_code": "000515",
  "tags": [
    "BNPL"
  ]
}

Create a loan product

You’re ready to create a loan product. Whether you use Control Center or the API, you’ll find the steps you need in the associated guides and reference material.

MethodDescriptionFor more information
Control CenterUse the Control Center creation wizard to create your loan product.Loan products
APIUse the Create loan product endpoint.Create loan product

Scenario—Create a BNPL loan product

In this example, a BNPL loan is created in Brazilian Real (currency code 986). The loan product specifies a single lump-sum disbursement, and the loan becomes active as soon as it is booked.

Create a BNPL loan product request example
{
    "product_name": "Complete BNPL with Prepayment info",
    "product_type": "BNPL",
    "processing_codes": {
        "booking": [
            "bookJ3V1H"
        ],
        "repayment": [
            "repayM7QR"
        ],
        "restructuring": [
            "restructure6YCZ"
        ],
        "present_value_discount": [
            "discount155V"
        ],
        "early_final_settlement": {
            "fee": [
                "efsMRT0"
            ]
        },
        "insurance": {
            "booking": [
                "insLP28"
            ],
            "repayment": [
                "insrepayGH39"
            ]
        },
        "disbursement": {
            "internal": [
                "internalFVVX"
            ],
            "external": [
                "externalPVTQ"
            ]
        },
        "prepayment": {
            "fee": [
                "prepaymentDRV0"
            ]
        }
    },
    "loan_activation_method": "ON_BOOKING",
    "currency": "986",
    "collateral": "NONE",
    "disbursement_method": {
        "type": "SINGLE"
    },
    "interest_plan_ids": [
        "712edbb8-5005-4f41-af95-dc2014f4045d"
    ],
    "repayment_hierarchy_code": "HIERARCHY_FEE_FIRST",
    "prepayment": {
        "penalty": {
            "type": "FIXED_AMOUNT", // PERCENTAGE or "FIXED_AMOUNT"
            "value": 20.0
        },
        "lock_in_period": 0, // optional, >= 0
        "reduce_option": [
            "INSTALLMENT",
            "TERM"
        ] // required, at least one
    },
    "early_final_settlement": {
        "penalty": {
            "type": "PERCENTAGE",
            "value": 0.1
        },
        "lock_in_period": 2
    }
}

After you create the loan product, the API response returns the product_id. Use this ID to book a loan.

{
    "product_id": "2717a296-124a-47cc-b2a1-91e80dc723eb"
}




Did this page help you?