ISO 20022 is a data project, not a format swap

, Morgan K. Reed, in ISO 20022 in practice

The checkbox era of ISO 20022 in the US is over. RTP has been native since launch. FedNow arrived native. CHIPS converted in 2024, and FedWire completed its cutover in March 2025. If you move dollars between US institutions today, ISO 20022 is the language on the wire whether you planned for it or not.

And yet most of the migrations we see still fail the same way — not at the cutover, which tends to get obsessive attention, but quietly, in the months after. The messages validate. The payments settle. And the promised benefits — cleaner reconciliation, fewer screening false positives, richer remittance data — never show up.

The root cause is almost always the same: the migration was scoped as a format swap when it is actually a data project.

The like-for-like trap

The format-swap version of the project looks like this: take every field in your legacy format, find the closest ISO 20022 field, and write a mapping. Ship when the XML validates.

This is how you end up with structured fields full of unstructured data. The name and address that lived in four free-text lines in your core since 2009 gets poured, unparsed, into AdrLine — technically legal, semantically empty. The pacs.008 passes schema validation, clears network validation, and delivers exactly the same data quality problems you had before, now wearing a much more expensive costume.

Two things make this trap urgent rather than merely embarrassing:

  • The runway for unstructured data is closing. CBPR+ has an end-date for fully unstructured addresses, and the US networks are signaling the same direction. A like-for-like mapping is rework you are scheduling for yourself.
  • Counterparties are starting to care. Screening engines and receiving banks increasingly key on structured elements. Garbage in structured fields doesn’t just waste the standard — it creates investigations.

Where the project actually lives

If the messaging layer is the visible 20%, here is the other 80%:

Upstream data quality. The debtor names, addresses, and account data your messages carry were captured over decades, in free text, by systems that never anticipated a TwnNm element. Someone has to decide: parse and enrich now, remediate at source, or carry hybrid addresses while a cleanup runs. That’s a data governance decision with a budget, not a mapping row.

Validation is layered, and schema is the shallowest layer. Schema-valid is not network-valid; each network layers its own usage guidelines, character set restrictions, and business rules on top of the base standard — and network-valid is still not counterparty-usable. Testing against the spec’s sample messages tells you almost nothing. Test with production-shaped, dirty data.

Exceptions carry the richest data. Returns, recalls, and investigation messages are where ISO 20022 pays back first — the structured reason codes and references that make automated exception handling possible. If your ops tooling flattens them back into free-text queues, you’ve paid for the standard and declined the dividend.

Screening and monitoring change shape. Structured fields can cut sanctions false positives dramatically — but only where the fields are actually populated. A migration that doesn’t coordinate with the compliance team is leaving the biggest operational win on the table.

What good looks like

The pattern that works is consistent enough to state plainly:

  1. One canonical payments data model, inside your walls. Translate at the edges — one adapter per network — instead of scattering format knowledge through the stack. One architecture, N rails.
  2. A version-controlled schema registry. The networks update their guidelines on their own schedules. Treat message specs like code.
  3. Data lineage from the core to the wire. For every structured element you emit, know which system of record it came from and what transformation touched it. This is what makes the auditor conversation short.
  4. Dirty-data test fixtures. Build your regression suite from the worst records in your actual core, not the polished samples in the spec.

Sequencing note for the RTP/FedNow crowd

If you’re adding instant rails on top of a legacy core, resist the temptation to treat each rail as its own project. The messaging core — schema registry, builder, parser, validation — is common across RTP, FedNow, and FedWire. Build it once, and each additional rail becomes an adapter, not a program.

That’s also the honest build-vs-buy frame: what you’re deciding to build or buy is that core, not “an RTP integration.”


Running this decision now? The readiness checklist covers the questions above in worksheet form, and the fixed-scope Rail Integration Assessment turns them into a sequenced roadmap in about two weeks.

All writing

Planning a rail integration?

The fixed-scope Rail Integration Assessment turns questions like these into a sequenced roadmap in one to two weeks.