Disburse a loan

To disburse a loan, use the Disburse loan v2 endpoint.

Disbursement options

Depending on your lending rules, you can perform instant disbursement into a customer’s account, or, in the case of BNPL, a merchant’s account. Instant disbursement means the loan life cycle can begin much quicker. If your organization allows, you can disburse funds on the same day using the disbursement_date parameter.

You also have the flexibility to disburse funds to an account registered on the Pismo platform or to an external account.

  • To disburse funds to an account registered on the Pismo platform, use the INTERNAL account type in the Disburse loan endpoint.
  • To disburse funds to an external account, use the EXTERNAL account type in the Disburse loan endpoint.

This API request example includes these required fields.

FieldDescription
disbursement_dateThe date to disburse the loan. You can find this date in the loan simulation.
disbursement_amountThe amount disbursed for the loan. You can find this amount in the loan simulation.
disbursement_accountThe account on the Pismo platform to which the loan funds are disbursed.
{
 "disbursement_date": "2026-06-24",
 "disbursed_amount": 1000.00,
 "disbursement_account": {
   "type": "INTERNAL",
   "account_id": 103614168
 }
}

After you disburse the loan, the API response includes the disbursement_id. This ID is the identifier that confirms the loan disbursement.

{
   "loan_id": "5d9d9339-3b5e-4c33-b129-8155e4d4946b",
   "disbursement_id": "c1eb9f28-e1c9-4705-b2b5-f986b3bc7455",
   "created_at": "2026-06-27T14:19:30.194249",
   "updated_at": "2026-06-27T14:21:00.318043",
   "product_id": "fb525f7e-4317-45da-84d5-ccb1b0da3f14",
   "disbursement_status": "PROCESSING",
   "loan_amount": 1000.00,
   "disbursed_amount": 1000.00,
   "disbursement_account": {
       "type": "INTERNAL",
       "account_id": 103296044
   }
}

Single disbursement

Your system sends a POST to /lending/v2/loans/:loanId/disburse. In the following example request, loanId is "2717a296-124a-47cc-b2a1-91e80dc723eb":

curl --request POST \
     --url https://sandbox.pismolabs.io/lending/v2/loans/2717a296-124a-47cc-b2a1-91e80dc723eb/disburse \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "disbursement_account": {
    "account_type": "INTERNAL"
    "account_id": 221123
	}
}
'

The Pismo platform generates a Loan disbursement V2 status changed event:

{
    "loan_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
    "org_id": "TN-89e56522-726a-453e-ba6d-796b03245128",
    "disbursement_id": "89e56522-726a-453e-ba6d-796b03245128",
    "idempotency_key": "48704d83-0412-431f-816a-50ba81451148",
    "currency": "USD",
    "created_at": "2026-10-24T21:34:47",
    "updated_at": "2026-10-24T21:34:47",
    "previous_disbursement_status": "SCHEDULED",
    "current_disbursement_status": "PROCESSING",
    "disbursement_amount": 1234.56,
    "disbursement_account": {
        "account_type": "INTERNAL",
        "account_id": 221123
    },
    "authorization_id": 1231231,
    "authorization_tracking_id": "ded913af-abc9-4769-b179-068ed6181ec5",
    "disbursement_date": "2026-10-24"
}

The current disbursement status is stored in the loan object as disbursement_schedule. The status can be SCHEDULED, PROCESSING, or PAID. It also includes the date of the scheduled or actual disbursement.
Use the Get loan details endpoint to view information about a loan’s disbursement.

Multiple disbursements

Disburse a loan in multiple parts (tranches) instead of a single release. Use this approach when funds are released over time or tied to conditions, such as project milestones.

Prerequisites

Configure the following parameters when creating the loan product by using the Create loan product endpoint:

  • Set the disbursement_method object to MULTIPLE.
  • Configure the processing_codes object with internal and/or external arrays.

If either parameter is missing, the Pismo platform treats the loan as a single-disbursement loan.

Multiple disbursement process

Call the Disburse loan v2 endpoint multiple times.

For each request:

  • Provide the disbursement_amount.
  • Provide the disbursement_id. This field is required for multiple disbursements.

Validation rules

The total disbursed amount must not exceed the loan principal.

Each disbursement must satisfy:

disbursement_amount ≤ remaining available principal

Example

ScenarioAmountRemaining principalResult
Loan principal1,000
First disbursement400600✅ Accepted
Second disbursement6000✅ Accepted
Third disbursement1000❌ Rejected (exceeds principal)

Example request

{
  "disbursement_id": "5c075cc6-8dc2-4fe6-9ed7-cf5687d4e834",
  "disbursement_date": "2026-06-24",
  "disbursement_amount": 400.00,
  "disbursement_account": {
    "account_type": "INTERNAL",
    "account_id": 784165
  }
}

Retrieve disbursements

Use the Get loan or List account loans endpoints. The response includes a list of disbursements. Each entry contains:

  • Disbursed amount
  • Timestamp

The list is append-only. Existing entries are not modified.

Events

Each disbursement generates the following events:

Both events are emitted for each disbursement.