LendEasy/Docs
Get API keys
RecipesLendingProject a payoff

Project a payoff

Read Harbor's good-through-date payoff projection from the loan summary, explain every component, and collect the exact amount through the normal payment path.

Time
~4 min
Surface
LMS API
Steps
3
Gate
Authoritative balance · value date
EndpointsGET /v1/loans/{loanId}/summaryPOST /v1/loans/{loanId}/payments

Assume Harbor has $7,975.61 principal outstanding on September 20. Maya asks what will close the loan if payment is effective October 1.

1

Read the payoff projection

No ledger effect
GET/v1/loans/7204/summary?payoffGoodThroughDate=2026-10-01

Payoff is a projection computed inside the loan summary, not a stored quote: there is no payoff resource, no quote id, and no quote lifecycle. Pass payoffGoodThroughDate—or omit it to project through the current business date.

curl "$BASE/v1/loans/7204/summary?payoffGoodThroughDate=2026-10-01" \
  -H "Authorization: Bearer $TOKEN" \
  -H "LendEasy-Tenant: demo-lender"
{
  "loanRef": "7204",
  "customerRef": "412",
  "status": "ACTIVE",
  "currency": "USD",
  "principalOutstanding": "7975.61",
  "payoff": {
    "available": true,
    "principal": "7975.61",
    "interestAccruedToDate": "90.97",
    "fees": "0.00",
    "penalties": "0.00",
    "total": "8066.58",
    "currency": "USD",
    "goodThroughDate": "2026-10-01",
    "quotedAt": "2026-09-20T10:00:00Z",
    "validUntil": "2026-10-01"
  },
  "inFlightPaymentAmount": "0.00",
  "asOf": "2026-09-20T10:00:00Z"
}

Reading the projection freezes nothing: a return, adjustment, or payment after quotedAt changes the next read. If you keep the number, keep quotedAt and goodThroughDate with it.

2

Explain and verify the total

CHECKpayoff components
principal outstanding     7,975.61
interest through Oct 1       90.97
eligible fees                 0.00
penalties                     0.00
                           --------
payoff total               8,066.58

Check available and inFlightPaymentAmount before giving Maya the number—an in-flight payment changes what will actually close the loan. When you need the figure again, re-read the summary with the same payoffGoodThroughDate; do not recompute it in a UI.

3

Collect the projected amount

Value date pinned
POST/v1/loans/7204/payments
curl -X POST "$BASE/v1/loans/7204/payments" \
  -H "Authorization: Bearer $TOKEN" \
  -H "LendEasy-Tenant: demo-lender" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: collect-harbor-payoff-2026-10-01" \
  -d '{
    "instrumentId": 704,
    "amount": "8066.58",
    "currency": "USD",
    "rail": "ACH",
    "effectiveDate": "2026-10-01",
    "source": "BORROWER"
  }'

Record quotedAt and goodThroughDate in your workflow evidence so the collected amount can be traced to the projection that produced it. The loan closes only after the payment posts and the authoritative balance reaches zero. If Maya pays with an effective date after October 1, read a fresh projection for the later date; do not append guessed per-diem interest.

A projection is not a reservation of funds or a promise that later loan activity will be ignored. Nothing is stored when you read it; rely on final posting and the zero-balance check before treating Harbor as closed.
Unified search across guides, recipes & the API referenceEsc