Track a receivable
Receivables change asynchronously. Use webhooks for prompt notification and the Receivables endpoints for authoritative current state.
Recommended pattern
1. Receive and verify the event
When a delivery includes signature headers, verify it using its declared
algorithm and public key before trusting the payload. Return 2XX quickly
after safely recording the event; perform slower processing asynchronously.
Webhook delivery is at least once. Deduplicate using the event id rather than
assuming each delivery is unique.
2. Fetch current state
Call GET /clients/{clientId}/receivables/{receivableId} when your workflow
needs the current receivable. An event signals that something changed; it is not
the complete or necessarily latest resource state.
Use GET /clients/{clientId}/receivables for history, recovery, and periodic
reconciliation. Follow every page until pagination indicates completion.
3. Track financial values
Retain the values needed to explain the obligation over time:
initialPrincipal— the amount originally financed;currentPrincipal— unpaid principal remaining;repaymentAmount— the total amount due, including applicable fees and interest;disbursedTransaction— the recorded financing disbursement; andrepaymentTransactions— recorded movements that reduce the obligation.
4. Handle states as business outcomes
Do not infer success from HTTP acceptance alone. Advance your own workflow only
when the current receivable and applicable event support it. The API contract
does not publish a closed enum for receivable status; preserve the returned
string, including values your integration does not yet recognize, rather than
coercing it into a locally invented state model.
Next, implement repayments and refunds and reconciliation.