Exception handling
NextGenPSD2 XS2A FrameworkRejection: reading a pacs.002 RJCT
A payment refused before settlement. The reason code tells you whether to retry, fix data, or stop entirely.
Why read this
The reject taxonomy is the most useful thing to internalise in payments. AC01 is a data bug you can fix; AM04 is a customer problem; MS03 tells you nothing on purpose.
Try editor — open message samples →
Samples in this flow
Try in live showcase
Technical view of SEPA Credit Transfer
Messages · pacs.008 → pacs.002
Transaction flow
pacs.008 submitted
Clearing layerNothing looks wrong yet — the debtor bank accepted the instruction.
Messagepacs.008Full detail →
The interbank credit transfer. Everything a PISP initiates eventually becomes one of these. SWIFT and ISO publish successive schema versions (…001.08, …001.10, …001.13); each market picks one via its usage guideline (EPC SEPA, CBPR+, SIC…).
Also used in
- SEPA credit transfer with decoupled SCA
- Clearing leg: initiation to settlement
- SCT Inst happy path (≤10s)
- SCT Inst reject inside the window
- SCT Inst with Verification of Payee
- SCT Inst timeout & investigation
- SIC CHF customer credit (Regular Payment)
- SIC Instant Payment (SIC IP)
- TARGET2 / T2 regular credit transfer
- SIC IP timeout and enquiry
- euroSIC EUR clearing leg
- A2A overlay payment (Wero sample)
- Instant Payment (IP) flow via Payment Hub & ILM
- Non-Instant Payment (Standard Batch) flow via Payment Hub & ILM
aspspcsm
ISO 20022 payload· XML
pacs.008 interbank credit transfer
The same payment on the interbank leg. InstdAmt became IntrBkSttlmAmt, an IntrBkSttlmDt appeared, and TxId is now the identifier the CSM quotes in every response.