Modelling Example: Secured Auto Loan
This document shows how to map a secured amortized loan — vehicle finance — onto the platform. The client described here ("AutoCredi") is fictional. Companion examples: BNPL, Personal Loan, Recurring Invoices, Debt Buyer, Revolving Credit, B2B Invoices.
An auto loan is financially a personal loan (amortized instalments, acceleration, accrual — the personal loan example applies wholesale) with two twists:
- Collateral exists but is not a platform entity. There is no "asset" or "security" in the
Account/Product/Claim model — the vehicle, its valuation, and the repossession process live
in
metaand in client-side policy. This is a modelling limitation to communicate, not to work around. - Auto lenders lean on curative servicing treatments — "skip a payment", "extend the
term" — because keeping the loan alive beats repossessing a depreciating asset. The platform
has no dedicated deferral or restructuring service; both treatments are built from
claim-level operations (
update_claimson due dates, typed claim relations) plus the Receive Instalment Plan, with the offer/approval policy living in the client's core.
Curative treatments without dedicated services
- Payment deferral ("skip a payment") — a due-date shift via
update_claimsoncurrentDueDatefor the affected claims. If the deferral is priced, the fee is placed as its own claim that declares aDEFERSrelation to the claims it postpones, and the client applies the date shift when the fee claim resolves (consumable via the claim events). If the client defers for free in hardship cases, the whole treatment is a singleupdate_claimscall. - Term change / new schedule — a Receive Instalment Plan spanning the open claims: the
plan consolidates them for payment, the new schedule stretches the arrears, and a missed plan
payment invalidates the plan and reinstates the claims. Alternatively, if the client executes
the term extension in its own core, it places the result as a new claim declaring
relatedClaims: [{ "type": "RESTRUCTURES", ... }]against the claims it re-schedules — so forborne exposure stays distinguishable from consolidation (REPLACES) and from cure-by-new-agreement (REFINANCES) in reporting.
The trade-off to communicate in discovery: the platform executes the mechanics (date shifts, plan schedules, relations); the policy (who qualifies, how often, fee-gating) is the client's logic, driven by claim events.
Entity mapping
| Auto-loan concept | Platform entity / mechanism |
|---|---|
| Borrower | Account |
| Financed vehicle + contract | Product (type: "AUTO_LOAN"; meta: VIN, model, valuation) |
| Overdue instalment | Claim (one per missed instalment, grouped by productReference) |
| Accelerated balance | Claim for the enforceable balance (as personal loan Phase 2) |
| Payment deferral | update_claims on currentDueDate (+ optional DEFERS fee claim) |
| Term change / new schedule | Receive Instalment Plan over the open claims, or a new claim with a RESTRUCTURES relation |
| Repossession status/valuation | Product.meta / Claim.meta (no collateral entity) |
| Repossession sale proceeds | credit_claims |
| Deficiency balance | The remaining claim amount after the proceeds credit |
| Co-signer / guarantor | additionalDebtors vs linked claims — see the personal loan example |
Fictional client: "AutoCredi"
Assumed policies:
- Used-car loans, €8,000–€35,000, 36–72 months, vehicle as security.
- Curative-first: up to two deferrals per year (deferral fee €45), and one restructuring (term extension) per loan lifetime, offered before any acceleration.
- Acceleration after 3 missed instalments → demand for the outstanding balance; if unpaid in 30 days, repossession.
- After repossession: vehicle sold at auction, proceeds credited, the deficiency balance (loan minus proceeds minus costs, plus repossession costs) is collected as unsecured debt.
AutoCredi's core system remains the source of truth for the loan schedule: each instalment that falls due unpaid is placed as a claim.
Worked example: Diego's car loan
Diego finances €18,000 over 60 months (~€350/month) for a 2022 SUV.
- Account = Diego. Product =
AC-LOAN-7742,type: "AUTO_LOAN",meta:{ "vin": "WVWZZZ...", "vehicle": "SUV 2022", "originalValuation": 21000 }.
Months 14–15 — hardship, curative path. Diego misses two instalments; AutoCredi's core
places them as claims (AC-LOAN-7742-INST-14, -INST-15, €350 each). Diego requests a
deferral. AutoCredi places the €45 deferral fee as its own claim:
// POST /v1/{clientId}/create_claims
{
"AC-LOAN-7742-DEFER-01": {
"amount": 4500,
"currency": "EUR",
"originalDueDate": "2026-08-01",
"currentDueDate": "2026-08-01",
"productReference": "AC-LOAN-7742",
"relatedClaims": [
{ "type": "DEFERS", "claimReference": "AC-LOAN-7742-INST-14" },
{ "type": "DEFERS", "claimReference": "AC-LOAN-7742-INST-15" },
],
"meta": { "shiftDays": 60 },
},
}
When the fee claim resolves (Diego pays it), AutoCredi applies the shift:
// POST /v1/{clientId}/update_claims
{
"AC-LOAN-7742-INST-14": { "currentDueDate": "2026-09-15" },
"AC-LOAN-7742-INST-15": { "currentDueDate": "2026-10-15" },
}
The fee-gating — "the deferral only takes effect once the fee is paid" — is AutoCredi's logic, triggered by the fee claim's resolution event.
Month 20 — deeper hardship. Deferral wasn't enough. AutoCredi offers a term change: a
Receive Instalment Plan spanning the open instalment claims — the plan consolidates them
for payment, the new schedule stretches the arrears over 12 months, and a missed plan payment
invalidates the plan and reinstates the claims. (Had AutoCredi executed the extension in its
own core instead, it would place the result as a new claim with RESTRUCTURES relations to
the claims it replaces.)
Month 26 — default and acceleration. Diego stops paying the plan. AutoCredi accelerates:
outstanding balance ≈ €13,200 becomes due. From here the flow is the personal-loan
Phase 2 — one claim for the enforceable balance (principal in amount, accrued interest and
fees named in fees), the vehicle's current valuation snapshotted in meta for
settlement-offer calibration.
Repossession and deficiency. The SUV sells at auction for €9,000; repossession and auction costs are €800:
// Proceeds reduce the debt:
// POST /v1/{clientId}/credit_claims
{ "AC-LOAN-7742-ACCEL": { "amount": 900000, "fees": 0 } }
// Costs are added (contractually recoverable):
// POST /v1/{clientId}/debit_claims
{ "AC-LOAN-7742-ACCEL": { "amount": 0, "fees": [{ "name": "repossessionCosts", "amount": 80000 }] } }
The remaining ~€5,000 deficiency balance is now ordinary unsecured debt — standard
strategies, settlement offers, or a Receive Instalment Plan apply. Note the platform never
"knew" about the car: the entire secured dimension was client policy plus meta context, and
the sale entered the model as a credit like any other payment.
Discovery questions for a real auto-loan client
- How much of the deferral logic can live in the client's core? The fee-gating and the
date arithmetic are client-side, driven by claim events. If their core cannot react to
claim-resolution events, deferrals can still be offered fee-free (a single
update_claimscall) — confirm which variant matches their product terms. - Does a restructuring need to cover future, not-yet-due instalments? The Receive
Instalment Plan restructures what has been placed; instalments still in the client's core
are re-scheduled there (and, if placed later as a new agreement, related via
RESTRUCTURES). Agree where that boundary sits. - Who runs the repossession process and what must the platform reflect? Timeline flags
(notice sent, vehicle recovered, sold) are
meta/journey concerns; the financial effects are just credits and debits. Ensure the pause of dunning during legally mandated repossession windows is mapped topause_journeys. - How is the deficiency computed and evidenced? Sale proceeds, costs, valuation reports —
agree what lands in
metaat each step, since deficiency claims get challenged and the audit trail must be reconstructable. - Accrual, acceleration composition, co-signers — inherit questions 1–4 from the personal loan example; they apply unchanged.
Related use cases
This example focuses on what to model; the step-by-step mechanics of each API call are covered by the generic use cases:
- Authentication — obtaining the access token every request needs
- Create Claims — the mechanics of placing claims (single and batched)
- Update Claims — partial updates to existing claims (fees, due dates, balances)
- Register Payments — crediting claims for payments received on your side
- Payment Reversal (Chargeback) — restoring and reactivating debt when a payment bounces
- Consolidate Claims — replacing claims with a consolidated one, with typed relations