← Payment Reference GuidesMessaging

ISO 20022 for Payment Engineers

Cross-border payments on Swift, the big RTGS systems and SEPA now speak ISO 20022. This guide covers what the standard actually is, how an MT103 maps to a pacs.008 field by field, which message does what in a payment's life, where each rail stands on the migration, and the structured-address change that is still coming.

What ISO 20022 is (and is not)

ISO 20022 is a methodology and a catalogue: a shared data dictionary (business components such as Debtor, Creditor Agent or Interbank Settlement Amount) from which message definitions are built and published as XML schemas. It is not a single format — the same pacs.008 is used by Swift, Fedwire, CHAPS, TARGET and SEPA, each with its own rules on top.

  • Message identifiers read pacs.008.001.08: business area (pacs = payments clearing and settlement), message number, variant and version. Systems pin a version; a pacs.008.001.08 and .001.10 are different schemas.
  • MX vs MT — "MX" is Swift's name for ISO 20022 messages on its network; "MT" are the legacy FIN messages (MT103, MT202, MT940) they replace.
  • Usage guidelines narrow the schema per community: CBPR+ for cross-border on Swift, HVPS+ for high-value RTGS systems, the EPC implementation guidelines for SEPA, plus national guidelines. Valid against the XSD is not enough — a message must also meet its guideline.
  • The Business Application Header (head.001) travels with each message and carries sender, receiver, message type and business service — the part routing and duplicate checks key off.

MT103 vs pacs.008, field by field

The customer credit transfer shows what changes. Every MT103 field has a home in pacs.008, but most pacs.008 elements are richer than the field they replace — which is why mapping MX back to MT for a legacy system loses data.

MT103pacs.008 elementWhat changes
Block 3 :121:PmtId/UETRSame UUID v4; mandatory in CBPR+ and kept on every hop.
:20: Sender’s ReferencePmtId/InstrIdPoint-to-point reference; the customer’s EndToEndId is a separate element MT had no slot for.
:23B: Bank Operation CodePmtTpInfPayment type information — service level, local instrument, category purpose.
:32A: Date, Currency, AmountIntrBkSttlmDt + IntrBkSttlmAmtSplit into two elements; amount with the currency as an attribute.
:33B: Instructed AmountInstdAmtSame meaning; required alongside an exchange rate when currencies differ.
:36: Exchange RateXchgRateUnchanged meaning.
:50K: Ordering CustomerDbtr + DbtrAcctName up to 140 characters, structured address, LEI and other identifiers instead of four 35-character lines.
:52A: Ordering InstitutionDbtrAgtBIC plus optional clearing-system member ID and LEI.
:56A: / :57A: Intermediary / Account With InstitutionIntrmyAgt1 / CdtrAgtUp to three intermediary agents.
:59: Beneficiary CustomerCdtr + CdtrAcctAs for the debtor; IBAN or other account ID in its own element.
:70: Remittance InformationRmtInf/Ustrd or RmtInf/Strd140 characters unstructured, or structured invoice references — 4×35 in MT.
:71A: Details of Charges (OUR / BEN / SHA)ChrgBr (DEBT / CRED / SHAR)Same three options, new codes.
—UltmtDbtr / UltmtCdtr / PurpNo MT103 field: the party on whose behalf, the final beneficiary and the purpose code.

Check a real message in the ISO 20022 Validator (pacs.008 CBPR+ example) and the legacy side in the SWIFT MT validator.

The messages you will meet

The same handful of messages covers most payment flows. Each links to its structure and key elements in the ISO 20022 reference.

MessageNameAreaReplaces
head.001Business Application Header (BAH)HeaderFIN Basic Header / Application Header (blocks 1–3)
pacs.008FI to FI Customer Credit TransferClearing & Settlement (pacs)MT 103
pacs.009FI Credit TransferClearing & Settlement (pacs)MT 202, MT 202 COV
pacs.002FI to FI Payment Status ReportClearing & Settlement (pacs)MT 199 (by convention), ACK/NAK
pacs.004Payment ReturnClearing & Settlement (pacs)MT 103 RETN, MT 202 RETN
pain.001Customer Credit Transfer InitiationPayment Initiation (pain)MT 101
pain.002Customer Payment Status ReportPayment Initiation (pain)—
pain.008Customer Direct Debit InitiationPayment Initiation (pain)—
camt.052Bank to Customer Account ReportCash Management (camt)MT 941, MT 942
camt.053Bank to Customer StatementCash Management (camt)MT 940, MT 950
camt.054Bank to Customer Debit/Credit NotificationCash Management (camt)MT 900, MT 910
camt.056FI to FI Payment Cancellation RequestCash Management (camt)MT 192, MT 292
camt.029Resolution of InvestigationCash Management (camt)MT 196, MT 296
camt.110Investigation RequestCash Management (camt)MT 195, MT 199 (investigations)
camt.111Investigation ResponseCash Management (camt)MT 196, MT 199 (investigations)

A payment's life in messages

  1. pain.001 — the corporate sends a credit transfer initiation to its bank (often a batch of payments).
  2. pain.002 — the bank reports acceptance or rejection of the file or individual payments.
  3. pacs.008 (with its BAH) — the debtor's bank sends the payment to the next bank, each hop carrying the same UETR; a pacs.009 moves bank-to-bank cover or liquidity.
  4. pacs.002 — a bank rejects (RJCT, with a reason code) or confirms the payment before settlement.
  5. pacs.004 — after settlement, a bank that cannot credit the beneficiary (closed account, AC04) returns the funds with a return reason.
  6. camt.054 / camt.053 — the account holders get a notification of each credit or debit and an end-of-day statement to reconcile against.
  7. Exceptions — camt.056 asks to recall a payment, camt.029 answers the investigation, and camt.110/111 carry exceptions and investigations on Swift.

Where each rail stands

Most large systems already run on ISO 20022: SEPA since its launch in 2008, TARGET since the T2 consolidation in March 2023, CHAPS since June 2023, CHIPS since April 2024, Fedwire since 14 July 2025, and Swift ended MT/MX coexistence for cross-border payments on 22 November 2025. What is still moving is the next step — the end of fully unstructured postal addresses:

RailMilestoneStatus
Swift (MT → MX coexistence)End of MT/MX coexistence for CBPR+ payment messagesMore than 98% of payment instructions on the network are now sent as ISO 20022.Live since 22 Nov 2025Swift
Swift CBPR+ (SR2026)Fully unstructured postal addresses rejected — structured or hybrid only; plus the other SR2026 payments changesOn 27 Aug 2026 Swift accepted a community request for more time and deferred all SR2026 payments changes; it will consult and announce timing by December. Non-payments SR2026 items (e.g. T+1 support) are decoupled and go live in Q1 2027.Deferred — new date by Dec 2026Swift notice
Fedwire Funds ServiceStructured / hybrid postal address requirement and retirement of fully unstructured addressesThe November 2026 release was rescheduled to November 2027 on 27 Aug 2026; release scope is due in autumn 2026. Fedwire itself has run natively on ISO 20022 since 14 Jul 2025.November 2027FRB Services
SEPA — EPC schemes (SCT, SCT Inst, SDD)End-date of the unstructured address format in EPC scheme transactionsOn 9 Sep 2026 the EPC Payment Scheme Management Board delayed the 15 Nov 2026 end-date across all five EPC scheme rulebooks, following the Swift extension. Unstructured addresses stay accepted after 15 November; the PSMB reconvenes in October 2026 to set a new end-date.Deferred — new date expected Oct 2026EPC notice
CHIPSISO 20022 native since April 2024; US-market address structuringCHIPS completed its ISO 20022 migration in April 2024. Its structured-address timing was aligned with Fedwire; confirm with The Clearing House now that Fedwire has moved to November 2027.Follow The Clearing House guidance

Last checked against the Swift, Federal Reserve and EPC notices on 2026-09-24. The same table, with calendar dates, is on the ISO 20022 reference and the events calendar.

Structured addresses

MT messages carried names and addresses as up to four free-text lines. ISO 20022 has separate elements for street, building number, post code, town and country, so sanctions screening and routing can read them without guessing. Three forms exist:

  • Structured — only the dedicated elements, at least TwnNm and Ctry.
  • Hybrid — TwnNm and Ctry plus at most two AdrLine for the rest; accepted as the transition form.
  • Unstructured — AdrLine only. This is what Swift, Fedwire and the EPC are retiring; the dates are in the table above.
Unstructured<PstlAdr>
  <AdrLine>Hauptstrasse 1</AdrLine>
  <AdrLine>10115 Berlin</AdrLine>
</PstlAdr>
Structured<PstlAdr>
  <StrtNm>Hauptstrasse</StrtNm>
  <BldgNb>1</BldgNb>
  <PstCd>10115</PstCd>
  <TwnNm>Berlin</TwnNm>
  <Ctry>DE</Ctry>
</PstlAdr>

The work is upstream: customer master data, onboarding forms and corporate ERP exports have to capture town and country separately before payment messages can. Test files today with the validator's post-migration option, which treats unstructured addresses as errors.

Engineering checklist

  • Pin versions per counterparty and rail — and route on the BAH's MsgDefIdr, not by sniffing the payload.
  • Validate in two layers — the XSD, then the usage guideline (CBPR+, HVPS+, EPC). Most rejects come from the second.
  • Carry the UETR end to end — generate a UUID v4 once, keep it on every hop, status, return and statement entry; it is how gpi tracking and investigations find the payment.
  • Don't truncate silently — when an internal system still speaks MT, store the full MX and flag what the mapping dropped (long names, structured remittance, ultimate parties, LEIs).
  • Amounts and codes — currency minor units, 18 total digits, charge bearer codes (DEBT/CRED/SHAR) and external code lists (reason, purpose, status) are where hand-built messages break.
  • Reconcile on camt — match camt.054 notifications and camt.053 statement entries back to EndToEndId and UETR, and handle pacs.004 returns as their own state, not as a failed payment.
Put it into practice

Next steps

Keep reading

Related articles

Common questions

What is the difference between MT and MX messages?

MT messages are Swift's legacy FIN formats (MT103, MT202, MT940) built from tagged text fields. MX is Swift's name for ISO 20022 messages: XML documents from a shared data dictionary, such as pacs.008 for a customer credit transfer, with richer, structured data. Swift ended MT/MX coexistence for cross-border payments on 22 November 2025.

Which ISO 20022 message replaces the MT103?

pacs.008 (FI To FI Customer Credit Transfer), sent with a Business Application Header (head.001). The MT202 maps to pacs.009, MT940 statements to camt.053, and returns use pacs.004.

What is a structured address in ISO 20022?

A postal address given in dedicated elements — street, building number, post code, town (TwnNm) and country (Ctry) — instead of free-text AdrLine lines. A hybrid address adds at most two AdrLine to TwnNm and Ctry. Swift, Fedwire and the EPC are retiring fully unstructured addresses; their dates were moved in August and September 2026.