The application lifecycle
An application moves through named states. Each transition is a distinct operation, and each keeps a decision or disbursement record:
Steps
Preview the schedule (optional)
POST /api/v1/loan-applications/preview-schedule computes the amortisation schedule for prospective terms without originating anything. Use it to show installments and disclosures before anyone commits.Submit the application
POST /api/v1/loan-applications creates the application against an active product version. Writes are idempotent — send an idempotency key and a retried submit collapses to the same application.Decide
Resolve the application with exactly one of:
POST /api/v1/loan-applications/{id}/approve— accept it; a decision record is kept.POST /api/v1/loan-applications/{id}/reject— decline it, with a decision record.POST /api/v1/loan-applications/{id}/withdraw— retract it before it is decided.
What you get
Disbursement produces a loan account — the servicing view of the live contract, carrying its schedule, transactions, charges, and audit history. Continue in Service a loan.
What happens downstream
The lifecycle emits
loan_application.submitted, loan_application.approved, loan_application.rejected, loan_application.withdrawn, and loan_application.disbursed. The disbursement also drives a ledger posting via the posting path.
Brazilian origination adds regulated steps — CET disclosure and capitalization consent — covered in the Brazil regulatory pack. The payroll-deducted consignado flow originates in a single call; see Consignado privado.
Next steps
Service a loan
Record repayments, prepay, reschedule, and correct an active loan account.

