Approve, reject, withdraw, or terminate a loan
POSThttps://sandbox.api.lendeasy.ai/v1/loans/{loanId} Bearer token ·
APPROVE_LOAN | REJECT_LOAN | WITHDRAW_LOAN | CONTRACT_TERMINATION_LOANExecutes a lifecycle command selected by the command parameter: approve (approvedOnDate, optional approvedLoanAmount and expectedDisbursementDate), reject (rejectedOnDate), withdrawnByApplicant (withdrawnOnDate), and the governed contractTermination and undoContractTermination. Governed commands require a LendEasy-Case header when case management is enabled, and maker-checker may park the command for a second approver. Disbursement has no public command — money moves through the funding API.
Path & query parameters
| Field | Type | Description |
|---|---|---|
| LendEasy-Tenant required in header | string | Tenant selector: lowercase letters, digits, and hyphens, 1-64 characters. Exactly one instance; the only tenant selector honored. |
| loanId required in path | string | Stable opaque loan identifier. |
| command required in query | string | Lifecycle command to execute. One of approve · reject · withdrawnByApplicant · contractTermination · undoContractTermination. |
| LendEasy-Case optional in header | string | Open servicing-case reference for this borrower. Required on human servicing mutations when case management is enabled; automation never sends it. |
| Idempotency-Key optional in header | string | Optional stable key (1-50 chars) for this one logical mutation. Replays of a completed request return the original result with x-served-from-cache: true; an in-flight duplicate returns 409 with Retry-After. Omitted keys are server-generated per attempt. |
Body parameters
| Field | Type | Description |
|---|---|---|
| approvedOnDate required | string | |
| approvedLoanAmount required | integer | |
| expectedDisbursementDate required | string | |
| dateFormat required | string | |
| locale required | string |