ISO 20022 is a standardised vocabulary and XML/ASN.1 syntax for financial-services messages. The standard is administered by ISO TC 68 and is the migration target for SWIFT's MX cross-border flows (CBPR+), SEPA (pain.001 / pain.008 / camt.053), and most modern domestic real-time-payment rails (TIPS, FedNow, PIX, NPP, FAST).
The core conceptual model is the "business message" — an envelope (a *header* and a *document*) that wraps a typed payload describing a single business event. For payments this is most often pain.001 (customer credit transfer initiation), pain.008 (customer direct debit initiation), or camt.053 (bank-to-customer statement).
ISO 20022 messages are versioned by *message identifier* (e.g. pain.001.001.09). The dotted suffix encodes major version (001) and minor version (09). Banks pin a specific version per channel and per profile — and the per-bank version drift is exactly the surface that iso-compliant catalogs in its rule packs.
The runtime builder lives at apps/api/src/lib/pain001-builder.ts and emits validated XML deterministically (no LLM in the request path). Bank-specific overlays are loaded via the rule-pack registry at apps/api/src/lib/rule-pack-loader.ts.