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.
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.001.08: FI to FI Customer Credit Transfer
The interbank customer credit transfer. It replaces MT103 for in-scope cross-border customer payments under CBPR+ and carries the full structured debtor, creditor, charges, and remittance data. This is the same INV-8841 payment: USD 25,000 in full, UETR a3e1f2b4-5c6d-4a7e-9b1c-2d3e4f5a6b7c, charge bearer SHAR, with two charges recorded (USD 20 from correspondent 1 and USD 22 from correspondent 2, USD 42 in total), so the beneficiary receives USD 24,958. Settlement information lives in GrpHdr only, never inside CdtTrfTxInf.
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.009.001.08: FI to FI Credit Transfer (cover, COV)
The bank to bank credit transfer (cover, COV variant). It replaces MT202COV and moves bank funds: the settling cover leg for the INV-8841 customer payment, SttlmMtd INDA. It is distinct from pacs.009 ADV (SttlmMtd COVE), which is advice only: an ADV carries information, does not move funds, and must be accompanied by a CORE or COV that settles. COVE is not a valid purpose code, so this example uses TREA.
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.002.001.10: FI to FI Payment Status Report
The interbank status report. Under CBPR+ only the negative notification (RJCT) is mandatory for all agents; positive and pending statuses are governed by bilateral agreement, so this ACSC (settlement completed) report is shown as a bilateral-agreement positive status. SEPA SCT uses pacs.002 for rejects only (no news means accepted); only SCT Inst uses it as a genuine confirmation in both directions. This report confirms INV-8841 reached ACSC on 2026-11-06. The full status ladder is ACTC, ACCP, ACSP, ACSC, ACCC.
<Document>
<FIToFIPmtStsRpt>
<GrpHdr>
<MsgId> PACS002-20261106-010</MsgId>
<CreDtTm> 2026-11-06T10:00:00</CreDtTm>
</GrpHdr>
<OrgnlGrpInfAndSts>
<OrgnlMsgId> PACS008-20261105-001</OrgnlMsgId>
<OrgnlMsgNmId> pacs.008.001.08</OrgnlMsgNmId>
<GrpSts> ACSC</GrpSts>
</OrgnlGrpInfAndSts>
<TxInfAndSts>
<OrgnlInstrId> INSTR-20261105-001</OrgnlInstrId>
<OrgnlEndToEndId> INV-8841</OrgnlEndToEndId>
<OrgnlTxId> TX-20261105-000147</OrgnlTxId>
<TxSts> ACSC</TxSts>
</TxInfAndSts>
</FIToFIPmtStsRpt>
</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.004.001.09: Payment Return
The payment return. It sends funds back to the debtor agent when the creditor agent cannot credit the beneficiary, for example a closed account. A return happens AFTER settlement, and only the creditor agent sends it. This is a SEPARATE payment from INV-8841: reference INV-9021, original USD 85,000, returned USD 84,980 after a USD 20 intermediary fee (charge bearer SHAR), reason AC04. A returned amount can never exceed the original payment.
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.
camt.053.001.08: Bank to Customer Statement
The bank to customer statement. It lists every entry posted to an account over a statement period, with opening and closing balances, for reconciliation. This statement is for the INV-8841 debtor account: opening balance USD 1,250,000.00, one debit of USD 25,000 (value date 2026-11-06), closing balance USD 1,225,000.00. Opening plus entries equals closing, which is what reconciliation proves.
<Document>
<BkToCstmrStmt>
<GrpHdr>
<MsgId> CAMT053-20261106-001</MsgId>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
</GrpHdr>
<Stmt>
<Id> STMT-20261106-001</Id>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
<FrToDt>
<FrDtTm> 2026-11-05T00:00:00</FrDtTm>
<ToDtTm> 2026-11-06T23:59:59</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN> GB29NWBK60161331926819</IBAN>
</Id>
<Ccy> USD</Ccy>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd> OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="USD"> 1250000.00</Amt>
<CdtDbtInd> CRDT</CdtDbtInd>
<Dt>
<Dt> 2026-11-05</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd> CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="USD"> 1225000.00</Amt>
<CdtDbtInd> CRDT</CdtDbtInd>
<Dt>
<Dt> 2026-11-06</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="USD"> 25000.00</Amt>
<CdtDbtInd> DBIT</CdtDbtInd>
<Sts> BOOK</Sts>
<BookgDt>
<Dt> 2026-11-06</Dt>
</BookgDt>
<ValDt>
<Dt> 2026-11-06</Dt>
</ValDt>
<NtryDtls>
<AddtlNtryInf> Payment INV-8841 to Tanaka Trading Pte Ltd</AddtlNtryInf>
</NtryDtls>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</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.
camt.056.001.08: FI to FI Payment Cancellation Request
The payment cancellation request. It asks the next bank to return funds already sent, for example after a duplicate payment or a customer error. It starts a recall. This is a SEPARATE payment from INV-8841: reference INV-9100, USD 12,500, reason DUPL. The ISO cancellation-reason list is wider than the EPC SCT recall list: EPC bank-initiated recall uses DUPL, TECH and FRAD only (10 banking business days, 13 months for fraud; the beneficiary bank answers within 15 banking business days, positively by pacs.004 with reason FOCR, negatively by camt.029). The customer-requested route (CUST) is a separate procedure.
<AddtlInf> Duplicate payment, please return the funds</AddtlInf>
</CxlRsnInf>
</TxInf>
</Undrlyg>
</FIToFIPmtCxlReq>
</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.
pain.002.001.10: Customer Payment Status Report
The bank to customer status report. It is the only message that tells the corporate customer the outcome of its instruction: INV-8841 reached ACSC (settlement completed) on 2026-11-06. The interbank pacs.002 tells the next bank; pain.002 tells the customer.
<Document>
<CstmrPmtStsRpt>
<GrpHdr>
<MsgId> PAIN002-20261106-001</MsgId>
<CreDtTm> 2026-11-06T10:05:00</CreDtTm>
</GrpHdr>
<OrgnlGrpInfAndSts>
<OrgnlMsgId> PAIN001-20261105-001</OrgnlMsgId>
<OrgnlMsgNmId> pain.001.001.09</OrgnlMsgNmId>
<GrpSts> ACSC</GrpSts>
</OrgnlGrpInfAndSts>
<TxInfAndSts>
<OrgnlInstrId> INSTR-20261105-001</OrgnlInstrId>
<OrgnlEndToEndId> INV-8841</OrgnlEndToEndId>
<TxSts> ACSC</TxSts>
</TxInfAndSts>
</CstmrPmtStsRpt>
</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.
camt.052.001.08: Bank to Customer Account Report
The bank to customer account report: an intraday report for the same account as the camt.053 statement, showing the INV-8841 debit of USD 25,000 during the day. camt.052 (intraday), camt.053 (statement) and camt.054 (notification) are the standard customer-reporting set.
<Document>
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId> CAMT052-20261106-001</MsgId>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
</GrpHdr>
<Rpt>
<Id> RPT-20261106-001</Id>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
<FrToDt>
<FrDtTm> 2026-11-05T00:00:00</FrDtTm>
<ToDtTm> 2026-11-06T23:59:59</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN> GB29NWBK60161331926819</IBAN>
</Id>
<Ccy> USD</Ccy>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd> OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="USD"> 1250000.00</Amt>
<CdtDbtInd> CRDT</CdtDbtInd>
<Dt>
<Dt> 2026-11-05</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd> ITBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="USD"> 1225000.00</Amt>
<CdtDbtInd> CRDT</CdtDbtInd>
<Dt>
<Dt> 2026-11-06</Dt>
</Dt>
</Bal>
<Ntry>
<Amt Ccy="USD"> 25000.00</Amt>
<CdtDbtInd> DBIT</CdtDbtInd>
<Sts> BOOK</Sts>
<BookgDt>
<Dt> 2026-11-06</Dt>
</BookgDt>
<ValDt>
<Dt> 2026-11-06</Dt>
</ValDt>
<NtryDtls>
<AddtlNtryInf> Payment INV-8841 to Tanaka Trading Pte Ltd</AddtlNtryInf>
</NtryDtls>
</Ntry>
</Rpt>
</BkToCstmrAcctRpt>
</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.
camt.054.001.08: Bank to Customer Debit Credit Notification
The bank to customer debit credit notification. It advises the creditor of a credit: Tanaka Trading Pte Ltd is credited USD 24,958 for INV-8841, the USD 25,000 less the USD 42 of correspondent charges (USD 20 + USD 22). The notification, the statement and the ledger must all agree on the amount.
<Document>
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>
<MsgId> CAMT054-20261106-001</MsgId>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id> NTF-20261106-001</Id>
<CreDtTm> 2026-11-06T06:00:00</CreDtTm>
<Acct>
<Id>
<Othr>
<Id> 7171000123456789</Id>
<SchmeNm>
<Cd> BBAN</Cd>
</SchmeNm>
</Othr>
</Id>
<Ccy> USD</Ccy>
</Acct>
<Ntry>
<Amt Ccy="USD"> 24958.00</Amt>
<CdtDbtInd> CRDT</CdtDbtInd>
<Sts> BOOK</Sts>
<BookgDt>
<Dt> 2026-11-06</Dt>
</BookgDt>
<ValDt>
<Dt> 2026-11-06</Dt>
</ValDt>
<NtryDtls>
<AddtlNtryInf> Credit INV-8841 from Acme Manufacturing Ltd, USD 24,958 after USD 42 correspondent charges (USD 20 + USD 22)</AddtlNtryInf>
</NtryDtls>
</Ntry>
</Ntfctn>
</BkToCstmrDbtCdtNtfctn>
</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.
camt.029.001.09: Resolution of Investigation
The resolution of investigation: the negative answer to a camt.056 recall. This camt.029 refuses the DUPL recall for INV-9100 (the beneficiary account was already debited, so the funds cannot be returned). A positive answer would instead return the funds via pacs.004 with reason FOCR.
<Document>
<RsltnOfInvstgtn>
<Assgnmt>
<Id> RSI-20261108-001</Id>
<Assgnr>
<Agt>
<FinInstnId>
<BICFI> DBSSSGSG</BICFI>
</FinInstnId>
</Agt>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BICFI> NWBKGB2L</BICFI>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm> 2026-11-08T09:00:00</CreDtTm>
</Assgnmt>
<Sts>
<Cd> RJCT</Cd>
<AddtlInf> Beneficiary account already debited; the funds cannot be returned</AddtlInf>
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
Area
CBPR+ rules (cross-border)
SEPA rules (euro area)
Scope
Cross-border payments between banks worldwide, replacing MT103 for in-scope payments.
Euro credit transfers inside the SEPA area, under the SEPA rulebook.
Debtor and creditor address
Structured or hybrid address with at least town name and country. The November 2026 structured-address mandate was signalled as deferred by SWIFT on 27 August 2026, with no replacement date published at the time of writing: do not treat it as settled, check the current SWIFT SR2026/SR2027 notes.
Unstructured addresses are no longer permitted from 15 November 2026 (inter-PSP settlement date). Structured address is required.
BIC
Debtor agent and creditor agent BICs are required for routing through correspondents.
BIC is not required. The IBAN alone identifies the account and the bank.
Purpose
Purpose code is recommended and supports screening and reporting.
Purpose code is optional and rarely used by most schemes.
Charges (ChrgBr)
DEBT, CRED or SHAR. This payment uses SHAR, so intermediaries may deduct from the principal.
SLEV only. The full amount must reach the creditor.
UETR
Business mandatory: a UUID v4 carried through every bank in the chain.
Optional.
Transactions per message (NbOfTxs)
Exactly one transaction per pacs.008 (NbOfTxs = 1).
Multi-transaction pacs.008 is permitted under SEPA batch usage.
pacs.002 usage
Only the negative notification (RJCT) is mandatory for all agents; positive and pending statuses are by bilateral agreement.
SCT uses pacs.002 for rejects only (no news means accepted). SCT Inst uses it as a genuine confirmation in both directions.
Settlement
Settlement uses correspondent accounts, nostro funding, and the COVE cover method where needed.
Settlement is through the SEPA clearing system and central bank accounts. No cover payment is used.
Remittance information
Structured and unstructured remittance information are both supported. Ustrd is limited to 140 characters.
Structured remittance information is preferred so the creditor can reconcile automatically. Ustrd is limited to 140 characters.
Character set
The full Latin character set is supported, with restrictions on some symbols.
Only the Latin character set defined by the SEPA rulebook is allowed.
Value date and timing
Value dates follow correspondent and clearing cut off times across time zones.
Execution follows the SEPA maximum execution time of one business day, and instant payments settle in seconds.
Return and rejection codes
Returns use pacs.004 with the full ISO reason code list, for example AC04 for a closed account. Reject (pacs.002) is before settlement; return (pacs.004) is after settlement.
Returns and rejects follow the SEPA reason code list, with the same AC and MD codes for the common cases. Recall uses DUPL, TECH and FRAD only (EPC SCT bank-initiated recall).