Skip to main content
POST
Disburse loan application

Authorizations

Authorization
string
header
required

JWT bearer token issued by the identity provider.

Headers

X-Idempotency
string
required

Canonical idempotency request ID (lib-commons enforcer reads this).

Path Parameters

id
string<uuid>
required

Loan application identifier.

Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

Body

application/json
disbursedAt
string
required

Disbursement timestamp (RFC3339).

Example:

"2026-06-14T12:00:00Z"

grossRequestedAmount
string
required

Gross requested disbursement amount as a decimal string (e.g. "50000.00").

Example:

"50000.00"

loanAccountId
string
required

Loan account identifier (UUID).

Example:

"7c9e6679-7425-40de-944b-e07fc1f90ae7"

netDeliveredAmount
string
required

Net delivered disbursement amount as a decimal string (e.g. "49500.00").

Example:

"49500.00"

currency
string

Optional ISO-4217 currency assertion (3 uppercase letters). When present it MUST equal the loan application's currency (a double-entry guard); a divergence is rejected with 422. When omitted, the loan's own currency is used.

Required string length: 3
Pattern: ^[A-Z]{3}$
Example:

"BRL"

firstDueDate
string

Day the first instalment falls due (YYYY-MM-DD or RFC3339), read exactly as the schedule preview and the tax quote read it: an RFC3339 instant names the Brazilian civil day it falls on, so 2026-03-09T22:00:00-03:00 is 9 March. OPTIONAL: omit it and the contract takes the generator's own grid, one month after the money moves. Supply it on the FIRST tranche and the ladder is struck on it, bounded by the loan product version's admitted window (LENDER-0235); a later tranche naming one is refused, because a top-up re-anchors on the original grid.

Example:

"2026-03-10"

jurisdictionExtensions
object

Opaque per-jurisdiction disbursement payload, validated at the use-case layer.

originationFeeAmount
string

Optional per-disbursement origination fee as a decimal string (e.g. "150.00"). RETAINED from the borrower's cash at disbursement and credited to the product's deferred-income account, from which it is amortized back as yield over the contract's life (Res. CMN 4.966 art. 18). It is part of the disburse invariant: netDeliveredAmount MUST equal grossRequestedAmount minus the jurisdiction withholdings minus this fee. It is NOT a withholding (no third party is owed it) and it is never billed to the borrower on a schedule line. Omitted or empty defaults to "0".

Example:

"150.00"

trancheNumber
integer<int64>

Optional tranche position for a multi-tranche release: 1 for the first, 2 for the second, and so on. It must be exactly one more than the number of disbursements this application already carries. Omit it only for an application's SINGLE disbursement, which must then release the approved amount exactly — a second disbursement that declares no tranche is refused 409 LENDER-0201, and a wrong position or a total above the approved amount is refused 422 LENDER-0202.

Required range: x >= 1
Example:

2

Response

OK

assignedOfficerId
string
required

Authenticated officer who created the application (request subject), or empty on a system-originated application, which has no human officer. Whatever the identity provider issues as the subject: not necessarily a UUID, at most 255 characters.

Example:

"officer-xyz"

borrowerId
string<uuid>
required

Borrower identifier (UUID).

Example:

"550e8400-e29b-41d4-a716-446655440002"

expectedDisbursementDate
string
required

Expected disbursement date (RFC3339, UTC).

Example:

"2026-06-14T12:00:00Z"

id
string
required

Loan application identifier (UUID).

Example:

"3fa85f64-5717-4562-b3fc-2c963f66afa6"

loanProductVersionId
string
required

Loan product version this application was created against (UUID).

Example:

"550e8400-e29b-41d4-a716-446655440000"

previewJurisdictionCode
string
required

ISO-2 jurisdiction code resolved at preview time.

Example:

"BR"

previewProfileVersion
string
required

Jurisdiction profile version resolved at preview time.

Example:

"1.0.0"

requestedInstallments
integer<int64>
required

Number of installments requested.

Example:

24

requestedInterestRate
string
required

Requested monthly interest rate as a decimal string, scale 8 (e.g. "0.00000100").

Example:

"0.00000100"

requestedPrincipalAmount
string
required

Requested principal amount as a decimal string, minor-unit precision scale 2 (e.g. "50000.00").

Example:

"50000.00"

status
string
required

Lifecycle status: one of pending_approval, approved, rejected, withdrawn, disbursed.

Example:

"pending_approval"

approvalDecision
object

Approval facts; present only when the application is approved or disbursed.

borrowerKind
string

Whose credit this is, as declared at creation. ABSENT on an application created before the declaration existed: such an application cannot be taxed or described, and the paths that need the kind refuse it with LENDER-0230 rather than assuming one.

Example:

"pessoaFisica"

disbursementEvent
object

Disbursement facts; present only when the application is disbursed.

previewScheduleSnapshotId
string

Schedule offer this application cites (UUID). ABSENT when it cites none, which is allowed: simulating first is optional.

Example:

"6ba7b810-9dad-11d1-80b4-00c04fd430c8"

rejectionDecision
object

Rejection facts; present only when the application is rejected.

withdrawalDecision
object

Withdrawal facts; present only when the application is withdrawn.