Payments Training Hub

ISO 20022 Message Explorer

Structured XML examples for the eleven messages that carry a payment from instruction to statement and back again. One payment tells one story here: INV-8841 (Acme Manufacturing Ltd to Tanaka Trading Pte Ltd, Singapore, USD 25,000, charge bearer SHAR, charges USD 20 + USD 22 = USD 42, beneficiary receives USD 24,958) runs pain.001, pacs.008, pacs.009, pacs.002 (ACSC), pain.002, camt.052, camt.053 and camt.054. The return (pacs.004, INV-9021) and the recall and its refusal (camt.056 and camt.029, INV-9100) are separate payments, clearly labelled as such. Each example states its message version and namespace. Every example is checked for well-formedness and for the structural rules in _validate_xml_examples (SttlmInf in GrpHdr only, camt.056 Agt and TxInf/Case wrappers, camt.053 FrToDt and nested dates, UETR and ChrgBr in pacs.008); full XSD validation against the published schema for each stated version is a build-time step outside this module. Pick a message, expand and collapse the nodes by clicking the plus and minus buttons, and click any field name to see its business meaning, cardinality, whether it is schema optional or business mandatory, an example value, its mapping from the MT equivalent where one exists, and the common validation errors for that field.

pain.001.001.09: Customer Credit Transfer Initiation

The customer to bank instruction. A corporate customer sends it to its bank to instruct a credit transfer. The bank validates it and creates the interbank pacs.008. This example starts the INV-8841 journey: Acme Manufacturing Ltd pays USD 25,000 to Tanaka Trading Pte Ltd, Singapore, charge bearer SHAR.

<Document>
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId> PAIN001-20261105-001</MsgId>
<CreDtTm> 2026-11-05T09:00:00</CreDtTm>
<NbOfTxs> 1</NbOfTxs>
<CtrlSum> 25000.00</CtrlSum>
<InitgPty>
<Nm> Acme Manufacturing Ltd</Nm>
</InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId> PMTINF-001</PmtInfId>
<PmtMtd> TRF</PmtMtd>
<ReqdExctnDt> 2026-11-06</ReqdExctnDt>
<ChrgBr> SHAR</ChrgBr>
<Dbtr>
<Nm> Acme Manufacturing Ltd</Nm>
<PstlAdr>
<StrtNm> 1 Manufacturing Way</StrtNm>
<TwnNm> London</TwnNm>
<PstCd> EC2A 4DP</PstCd>
<Ctry> GB</Ctry>
</PstlAdr>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN> GB29NWBK60161331926819</IBAN>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BICFI> NWBKGB2L</BICFI>
</FinInstnId>
</DbtrAgt>
<CdtTrfTxInf>
<PmtId>
<InstrId> INSTR-20261105-001</InstrId>
<EndToEndId> INV-8841</EndToEndId>
</PmtId>
<Amt>
<InstdAmt Ccy="USD"> 25000.00</InstdAmt>
</Amt>
<CdtrAgt>
<FinInstnId>
<BICFI> DBSSSGSG</BICFI>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm> Tanaka Trading Pte Ltd</Nm>
<PstlAdr>
<StrtNm> 8 Harbour Drive</StrtNm>
<TwnNm> Singapore</TwnNm>
<PstCd> 018981</PstCd>
<Ctry> SG</Ctry>
</PstlAdr>
</Cdtr>
<CdtrAcct>
<Id>
<Othr>
<Id> 7171000123456789</Id>
<SchmeNm>
<Cd> BBAN</Cd>
</SchmeNm>
</Othr>
</Id>
</CdtrAcct>
<Purp>
<Cd> SUPP</Cd>
</Purp>
<RmtInf>
<Ustrd> Invoice INV-8841, supplier payment</Ustrd>
</RmtInf>
</CdtTrfTxInf>
</PmtInf>
</CstmrCdtTrfInitn>
</Document>

Click any field name in the tree beside this panel to see its business meaning, cardinality, mandatory status, example value, MT mapping, and common validation errors.

pacs.008 version comparison: CBPR+ rules versus SEPA rules