Skip to main content
POST
/
v1
/
loans
/
external
/
{loan_external_id}
/
adjust-disbursement-date
Adjust disbursement date
curl --request POST \
  --url https://api-staging.bsa.ai/v1/loans/external/{loan_external_id}/adjust-disbursement-date \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "actualDisbursementDate": "<string>",
  "note": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.lms.bsa.ai/llms.txt

Use this file to discover all available pages before exploring further.

Shifts the effective disbursal date on an Active loan. Use this when the partner’s wallet credit was delayed (e.g. pending → confirmed two days later) and the LMS-recorded disbursement date no longer matches the day the customer actually received the money. Interest re-accrues from the new date, and the repaymentSchedule is recalculated so the next due-date math matches reality.
Only safe while no repayment transactions have been recorded against the loan. Once any repayment exists you must first reverse it before adjusting the date.

Date constraints

  • The new date must not be in the future — pass today or any past day.
  • The new date must not be before the loan’s approval date. Because POST /v1/loans approves on the same day it disburses, the new date must be on or after the original disbursement date.
For the realistic delayed-wallet flow both constraints are satisfied naturally: the partner calls this endpoint on the day the wallet credit actually confirms, which is between the original approval/disbursement day and today. Two equivalent forms — prefer the externalId form for partner integrations.

Path parameters

loan_external_id
string
required
The loan’s externalId. On the /v1/loans/{loan_id}/adjust-disbursement-date form, this is the numeric LMS id instead.

Request body

actualDisbursementDate
string
required
ISO-8601 YYYY-MM-DD. The corrected disbursal date.
note
string
Optional. Reason for the adjustment, captured in the LMS audit log.

Examples

# By loan externalId (recommended)
curl -sf -X POST "$BASE/v1/loans/external/halotel-tx-12345/adjust-disbursement-date" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "actualDisbursementDate": "2026-05-30",
    "note": "Wallet credit confirmed 2 days after original disbursement"
  }'

# Same effect, by LMS id
curl -sf -X POST "$BASE/v1/loans/501/adjust-disbursement-date" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"actualDisbursementDate": "2026-05-30"}'

Response

200 OK returns the loan object with the new disbursal date, recomputed schedule, and adjusted next-due fields.

How it works

The wrapper performs undo-disbursal then re-disburse against the LMS with the corrected date. Both ops are atomic from the partner’s point of view — the loan ends in Active again with the new schedule.

Errors

CodeWhen
not_foundNo loan with that id or externalId
invalid_argumentactualDisbursementDate missing, not ISO YYYY-MM-DD, or loan is not in a state that allows redisbursal (e.g. already has repayments — reverse them first)
permission_deniedDate in the future, or date before the loan’s approval date