Record a promise-to-pay
Turn Maya’s two-part commitment into a promise the platform checks against policy, then watch it settle itself from payments as they post — kept, partial, or broken.
A promise is the borrower telling you when the money will arrive. Recording it as a first-class object rather than a note is what lets the platform stop chasing them in the meantime — and settle the promise from posted payment facts instead of somebody’s memory of the call.
- Read fresh case contextstale core facts refreshed before terms are offered
- Record the commitmentsguardrail-checked, no money moved
- Posted payments settle itkept, partially kept, or brokenautomatic
Read fresh case context
curl "$BASE/v1/servicing/cases/1001" \
-H "Authorization: Bearer $TOKEN" \
-H "LendEasy-Tenant: demo-lender"Confirm the case is open, Harbor is still past due, no payment covering the promise is in flight, and no restriction blocks the proposed follow-up policy.
Create the commitment schedule
No money movementcurl -X POST "$BASE/v1/servicing/cases/1001/promises" \
-H "Authorization: Bearer $TOKEN" \
-H "LendEasy-Tenant: demo-lender" \
-H "Idempotency-Key: promise-1001-2027-05-01" \
-H "Content-Type: application/json" \
-d '{
"loanRef": "7204",
"commitments": [
{ "amount": { "amount": 260.00, "currency": "USD" }, "dueDate": "2027-05-08" },
{ "amount": { "amount": 257.14, "currency": "USD" }, "dueDate": "2027-05-22" }
],
"sourceInteractionId": 3001,
"borrowerConfirmedAt": "2027-05-01T10:18:42-07:00"
}'{
"promiseId": 5001,
"caseId": 1001,
"status": "ACTIVE",
"guardrailDecision": "WITHIN_POLICY",
"commitments": [
{ "amount": { "amount": 260.00, "currency": "USD" }, "dueDate": "2027-05-08" },
{ "amount": { "amount": 257.14, "currency": "USD" }, "dueDate": "2027-05-22" }
],
"version": 1
}An out-of-policy horizon, amount, or installment count returns an explainable approval requirement. It never silently clips the borrower’s terms. Under policy, an active promise can suppress routine collection outreach while it stands.
Read the evaluated outcome
Posted facts onlyEvaluation is servicing-owned: authoritative payment events and scheduled jobs run it as facts post. Maya pays $517.14 through the portal on May 6 — covering both commitments early — and the posting event settles the promise:
curl "$BASE/v1/servicing/cases/1001/promises" \
-H "Authorization: Bearer $TOKEN" \
-H "LendEasy-Tenant: demo-lender"{
"items": [
{
"promiseId": 5001,
"status": "KEPT",
"qualifyingPaymentRefs": ["9014"],
"evaluatedAt": "2027-05-06T18:00:04Z",
"version": 1
}
]
}Submitted or merely settled payments are not assumed posted — only posted facts qualify. A covering partial records PARTIALLY_KEPT; a missed commitment records BROKEN and can wake a follow-up task. The original promise and every revision remain visible.