camt.053 reconciliation field reference.

Your reconciliation key — typically an internal invoice or order id — is echoed back by the bank in any one of six carrier fields inside a camt.053 <TxDtls> block. Which carrier wins varies per bank, per rail (SEPA SCT vs Swiss QR-bill), and sometimes per inbound channel. There is no ISO standard for "the" key — so the durable work is the field-tested catalog of which carrier each bank actually populates.

The six carriers

Where the key can hide.

The generic extractor walks every carrier on a parsed <TxDtls> and emits one candidate per non-empty field, each tagged with a default confidence. The per-bank dialect layer then re-ranks.

CarrierXML pathDefault confidenceNotes
1. EndToEndIdTxDtls/Refs/EndToEndIdhighThe primary ISO 20022 reconciliation key. The reserved placeholders NOTPROVIDED / UNSTRUCTURED / NULL are treated as absent rather than as a candidate key.
2. InstrIdTxDtls/Refs/InstrIdmediumThe instruction id — sometimes a bank's own counter, sometimes a duplicate of EndToEndId. Medium confidence.
3. StrdCdtrRefTxDtls/RmtInf/Strd/CdtrRefInf/RefhighStructured creditor reference. High confidence when present — Swiss QR-bill QRR references land here, as do SCOR ISO-11649 RF references.
4. UstrdTxDtls/RmtInf/UstrdmediumUnstructured remittance free-text. A regex (/[A-Z]{2,}[-_]?\d{4,}[-_]?\d+/) extracts patterns like INV-2026-001234. High confidence when the whole string IS the key; medium when a key is found embedded in a longer line (the raw line is kept for the operator dashboard).
5. AcctSvcrRefTxDtls/Refs/AcctSvcrReflowThe bank's own reference; only occasionally correlated to the originator's reference. Low confidence.
6. SplmtryDataTxDtls/.../SplmtryDatamediumBank-specific extension envelope. The extractor scrapes the first <Ref>/<Id> (or first non-empty leaf text) under any SplmtryData ancestor. Medium confidence — when a bank populates it, it is usually meaningful.

Per-bank dialects

How each bank echoes the key back.

Each bank handler is a small, pure re-ranking of the generic candidate list per the bank's publicly-documented camt.053 behavior. Every handler cites a public source — none of these encode private bank attestation. When no per-bank rule applies, the generic ordering is used transparently.

UBS Switzerland AG

ubs-ch

Boost: StrdCdtrRef → high for Swiss QR-bill CRDT (CHF); EndToEndId → high for SEPA SCT CRDT (EUR). Otherwise generic order.

Per UBS camt.053 Customer Implementation Guide (public, UBS Switzerland AG portal) — EndToEndId is the canonical recon key for SEPA SCT inbound. Per Swiss Payment Standards (PaymentStandards.CH) the structured creditor reference (QRR / SCOR) is canonical for Swiss QR-bill inbound.

PostFinance AG

postfinance-ch

Boost: StrdCdtrRef → high for every inbound CRDT entry. DBIT entries untouched.

Per PostFinance ISO 20022 message catalog (public, PostFinance developer portal) — the structured creditor reference (Strd/CdtrRefInf/Ref) is documented as the canonical reconciliation key for all inbound CRDT bookings; EndToEndId is the secondary key.

Deutsche Bank AG

deutsche-bank-de

Boost: EndToEndId → high for SEPA inbound CRDT (EUR, PMNT/RCDT — SCT and SDD-return). StrdCdtrRef stays secondary (rare in DE — no QR-bill equivalent). DBIT/outbound generic.

Per Deutsche Bank Customer Implementation Guide for camt.053 (public, db-direct developer portal). Cross-checked against EBA Clearing STEP2 SCT scheme rulebook (public) and EPC016-06 SDD Core rulebook (public, European Payments Council) which mandate EndToEndId propagation through the settlement chain.

BNP Paribas

bnp-paribas-fr

Boost: EndToEndId → high for SEPA SCT inbound CRDT (EUR). StrdCdtrRef stays secondary (uncommon in FR). Otherwise generic order.

Per BNP Paribas Cash Management / Connexis Cash developer documentation (public, BNP Paribas corporate banking portal) and CFONB ISO 20022 migration guides (public, cfonb.org). Cross-checked against EBA Clearing STEP2 SCT scheme rulebook (public).

ING Bank N.V.

ing-nl

Boost: EndToEndId → high for SEPA inbound CRDT (EUR). The IG explicitly notes AcctSvcrRef is the bank-internal booking reference, NOT the customer recon key. Otherwise generic order.

Per ING camt.053 Implementation Guide (public, ING Wholesale Banking / Inside Business developer portal). Cross-checked against Betaalvereniging Nederland SEPA Implementation Guidelines (public, betaalvereniging.nl) and EBA Clearing STEP2 SCT scheme rulebook (public).

Source of truth: recon-key-extract.ts (the six carriers) and bank-recon-handlers/* (the per-bank re-ranking). The candidate-key list per entry feeds into POST /v1/reconcile with the customer's expected-payments list to close the loop.

Extract reconciliation keys automatically

Parse a camt.053 and get the ranked candidate keys per entry — 100 documents/month free, no card.

Get an API key