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
INTERNALaccount type in the Disburse loan endpoint. - To disburse funds to an external account, use the
EXTERNALaccount type in the Disburse loan endpoint.
This API request example includes these required fields.
| Field | Description |
|---|---|
disbursement_date | The date to disburse the loan. You can find this date in the loan simulation. |
disbursement_amount | The amount disbursed for the loan. You can find this amount in the loan simulation. |
disbursement_account | The 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_methodobject toMULTIPLE. - Configure the
processing_codesobject 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
| Scenario | Amount | Remaining principal | Result |
|---|---|---|---|
| Loan principal | — | 1,000 | — |
| First disbursement | 400 | 600 | ✅ Accepted |
| Second disbursement | 600 | 0 | ✅ Accepted |
| Third disbursement | 100 | 0 | ❌ 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:
- Loan disbursement V2 status changed - Indicates execution and tracks status.
- Loan status changed - Reflects updates to the loan (for example, total disbursed or balances).
Both events are emitted for each disbursement.