Receipts
Report a receipt
Report money that arrived and receive the allocation: where every centavo went, under the rendered rule.
POST
You hold the funds; this call records the arrival and answers where the money went. A Receipt is addressed to a Client, never to a Loan — which debt it settles is the allocation’s answer — and it is never refused for its size: less than due, more than due, more than the whole Loan and money on a Loan that owes nothing are all recorded. Payments carries the waterfall, the elections and every worked case.
Path parameters
string
required
The Tenancy reporting.
Body
string
required
Your own name for this arrival, unique within the Tenancy. A retry restating it answers
200 with the allocation on file.string
required
The Client who paid. An unregistered one is refused.
object
required
What arrived:
{"minor_units": 90066, "currency": "MXN"}, in the currency the Loans are in.string
required
The day the borrower paid, never defaulted. Allocation, closure and every derived figure key on it — not on when you reported.
string
The Loan the borrower named. A designation wins over the default rule, and
chosen_by says which applied.boolean
The borrower’s statement that this payment discharges the Loan. A shortfall inside the tolerance closes only against it. Stating it and electing something else states two things about one payment and is refused.
string
What money past everything matured does:
principal, advance or term — the borrower’s choice. Absent means the Configuration’s own early_money_treatment applies.string
How the money moved:
card, spei, cash, direct_debit, other. Recorded verbatim, read by nothing, part of the Receipt’s identity.object
Your key-value object: at most 16 keys, 64 bytes a key, 4096 bytes rendered, string values. Stored, echoed wherever the Receipt or its allocation is read, read by nothing — and part of what a reused
reference restates.string
What your provider called the movement, at most 128 bytes. Recorded verbatim, part of the identity — a retry restating a different one is a disagreeing report.
string
The payoff quote you recorded and relayed, which this money was collected against. Only a Receipt electing the payoff and designating the quote’s own Loan may name one. It binds nothing: the Receipt settles against the figure derived today, and the allocation answers whether the money was the recorded figure. Part of the identity.
Response
201 with the allocation — the same answer reading the Receipt back returns:
object
required
The report echoed, with the Platform’s
id and reported_at added, and reversed false.object
required
The jurisdiction rule the allocation ran under, rendered so the order is read, not inferred:
charge_order, period_order, undesignated_loans.object
required
What reached debt, with
residual, excess, absorbed and per-Loan rows beside it — the allocation answer, field by field.array
required
Each Loan the money reached:
chosen_by, settled, prepayment, owed_back, closed_on where it discharged, the Periods walked with each charge and its tax apart, and recalculated_plan where a prepayment recalculated.Each Period walked also states where the Receipt left it:Read “was this paid on time?” from
overdue_from, never by comparing dates yourself.string
The payoff quote the Receipt named, echoed. Absent where it named none.
boolean
Whether the money is exactly the recorded figure, in the same currency. Present exactly where
quote_id is. false refuses nothing and changes nothing settled — it is what a dispute starts from.array
required
What the allocation had to resolve or could not do — empty for an ordinary overpayment. Money that reached no Loan is in
excess and owed to the Client, never dropped.