Reconciliation

Matching incoming bank-statement entries back to outgoing instructions, invoices, or expected payments.

Reconciliation is the closed-loop process of matching every booking on the bank statement (camt.053) back to the operational record that should have produced it. On the receivables side it is "invoice 12345 was paid by entry 7"; on the payables side it is "payroll batch 99 cleared in full"; on the operational side it is "this expected SCT Inst arrived within SLA".

The matching key — the customer's invoice id, order id, or payroll-line id — is the customer-side reference. It is carried into the rail via pain.001 (EndToEndId / InstrId / structured remittance) and echoed back in camt.053 in one of six carrier fields. The catalog of which-bank-uses-which-carrier-on-which-rail is the durable moat for iso-compliant.

The matching engine at apps/api/src/lib/reconcile.ts takes a parsed camt.053 plus a list of expected-payments and produces one of four outcomes per entry: matched (with the matched expected-payment id), ambiguous (multiple candidates, top three returned), unmatched (no candidate above the confidence floor), out_of_band (entry has no candidate at all — typically a bank fee or interest credit).

The route is POST /v1/reconcile.

Related terms

← All terms