LendEasy/Docs
Get API keys
RecipesServicingRecord a promise-to-pay

Record a promise-to-pay

Turn Maya's two-part commitment into a versioned promise, apply outreach policy, and evaluate kept, partial, or broken outcomes only from posted payment facts.

Time
~5 min plus due dates
Surface
Servicing Plane
Steps
3
Gate
Promise guardrail · payment facts
EndpointsGET /v1/servicing/cases/{caseId}POST /v1/servicing/cases/{caseId}/promisesPOST /v1/servicing/promises/{promiseId}/evaluate
1

Read fresh case context

GET/v1/servicing/cases/case_HBR_COL_51
curl "$BASE/v1/servicing/cases/case_HBR_COL_51" \
  -H "Authorization: Bearer $TOKEN"

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. The case response includes contextFreshness; refresh stale core facts before offering terms.

2

Create the commitment schedule

No money movement
POST/v1/servicing/cases/case_HBR_COL_51/promises
curl -X POST "$BASE/v1/servicing/cases/case_HBR_COL_51/promises" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: hbr-promise-2027-05-01" \
  -d '{
    "loanId": "7204",
    "commitments": [
      { "amount": "260.00", "dueDate": "2027-05-08" },
      { "amount": "257.14", "dueDate": "2027-05-22" }
    ],
    "sourceInteractionId": "int_HBR_CALL_91",
    "borrowerConfirmedAt": "2027-05-01T10:18:42-07:00"
  }'
{
  "promiseId": "ptp_HBR_71",
  "caseId": "case_HBR_COL_51",
  "loanId": "7204",
  "status": "active",
  "guardrailDecision": "within_policy",
  "commitments": [
    { "amount": "260.00", "dueDate": "2027-05-08" },
    { "amount": "257.14", "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.

3

Evaluate against posted facts

Authoritative outcome
POST/v1/servicing/promises/ptp_HBR_71/evaluate

Run evaluation after each commitment’s grace policy ends, or let the scheduler invoke the same operation. Submitted or merely settled payments are not assumed posted.

curl -X POST "$BASE/v1/servicing/promises/ptp_HBR_71/evaluate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: evaluate-ptp-hbr-71-2027-05-23" \
  -d '{ "asOf": "2027-05-23T08:00:00-07:00" }'
{
  "promiseId": "ptp_HBR_71",
  "previousStatus": "active",
  "status": "kept",
  "qualifyingPayments": ["9014", "9015"],
  "evaluatedAt": "2027-05-23T08:00:01-07:00"
}

A partial payment records partially_kept; a missed commitment records broken and can wake a follow-up task. The original promise and all revisions remain visible.

i
Promise is not payment. It may suppress outreach according to policy, but it never creates an ACH debit, card charge, ledger posting, or receipt.
Unified search across guides, recipes & the API referenceEsc