Terminate a contract
End an active loan contract under an explicit product or legal basis, with component disposition, case governance, and a dedicated undo command.
Contract termination is a terminal command for a configured contractual or legal basis. It is not withdrawal before funding, normal payoff, charge-off, or a shortcut around balance disposition.
On screen. Terminate Contract, in the Administrative column of the loan actions menu.
- Basis establishedproduct or legal, evidenced in the casea person
- Components settledpayout, down payment, installments, creditswaits
- Command validatesbalances and dependent movementsautomatic
- Contract endswith its effective date and dispositionautomatic
When it applies
A qualifying financed-purchase cancellation, or another basis defined in the product agreement. The policy states eligible states, time window, required evidence, treatment of principal, interest, and fees, merchant or customer money movement, and whether undo is allowed.
For an application not yet funded, use withdrawnByApplicant or reject. Termination is for an active contract whose posted history must be unwound or settled explicitly.
Settle the money first
Termination cannot claim that money returned merely because a refund was approved. Reconcile the payout, merchant refund, down payment, customer payments, reversals, charges, interest, and any credit balance before executing:
- a merchant return posts through
payoutRefundormerchantIssuedRefund; - customer money owed back posts through
creditBalanceRefundwith itsREFUNDfunding.
For a fully cancelled Juniper purchase, that means the merchant payout return, the $240 down-payment disposition, and any posted installments are all settled or explicitly disposed before the termination command runs.
There is no partial termination
curl -X POST "$BASE/v1/loans/7204?command=contractTermination" \
-H "Authorization: Bearer $TOKEN" \
-H "LendEasy-Tenant: demo-lender" \
-H "LendEasy-Case: case_JUN_CANCEL_3" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: jun-termination-2026-08-24" \
-d '{}'
{
"officeId": 1,
"clientId": 412,
"loanId": 7204,
"resourceId": 7204
}
An unreconciled component is a named rejection, not a partial termination. Every execution writes a governance record readable at GET /v1/loans/7204/governance-records.
Controls
- Required case, evidence, reason, and approvals are present on the case.
- No conflicting bankruptcy, dispute, or fraud restriction is bypassed.
- Customer and merchant notices use pinned templates and facts.
- Autopay and future funding stop only after the state transition commits.
Terminated does not mean erased
The disposition of each component is readable from the loan’s transactions, and the governance record ties the command to its case and actor. Historical statements, payments, and interactions remain readable.
Undo restores state, never money
undoContractTermination is the dedicated compensating command, available only for policy-defined bases and before incompatible later activity. It restores contract state; actual returned or resent money always uses explicit funding and payment operations. If safe undo is impossible, a corrective action package agreed in the case is required.