pacs.002.001.12 — FI to FI Payment Status Report
Overview
The pacs.002 message reports the status of an earlier payment instruction. It tells another institution whether the payment was accepted, rejected, pending, or settled.
Reviewed 23 March 2026. ISO catalogue date: 2025-02-27.
Key data elements
- GrpHdr — Group Header with message identification and creation timestamp.
- OrgnlGrpInfAndSts — Original Group Information and Status for bulk-level reporting.
- TxInfAndSts — Transaction Information and Status for individual transaction outcomes.
- StsRsnInf — Status Reason Information with structured reason codes.
- OrgnlTxRef — Original Transaction Reference linking back to the source instruction.
Business context
- Confirms settlement or rejection of credit transfers, direct debits, and returns.
- Supports reconciliation between instructing and instructed agents.
- Used in CBPR+ flows for pacs.008 and pacs.009 status reporting.
- Supports group-level and transaction-level status reporting.
| Key data elements | Business context |
|---|---|
| GrpHdr — Group Header with message identification and creation timestamp | Confirms settlement or rejection of credit transfers, direct debits, and returns |
| OrgnlGrpInfAndSts — Original Group Information and Status for bulk-level reporting | Supports reconciliation between instructing and instructed agents |
| TxInfAndSts — Transaction Information and Status for individual transaction outcomes | Used in CBPR+ flows for pacs.008 and pacs.009 status reporting |
| StsRsnInf — Status Reason Information with structured reason codes | Supports group-level and transaction-level status reporting |
| OrgnlTxRef — Original Transaction Reference linking back to the source instruction | The instructed agent sends pacs.002 back to the instructing agent to confirm acceptance, settlement, or rejection of a payment instruction such as pacs.008 or pacs.009. |
CBPR+ and scheme context
- Replaces MT199 and field 79 status text in MT messages.
- CBPR+ mandates pacs.002 for all payment status communication.
- Structured reason codes replace free-text rejection explanations.
- SWIFT gpi tracking integration requires pacs.002 for end-to-end transparency.
Message flow
The instructed agent sends pacs.002 back to the instructing agent to confirm acceptance, settlement, or rejection of a payment instruction such as pacs.008 or pacs.009.
Version commentary
ISO 20022 last updated this business area on 2025-02-27. This site documents pacs.002.001.12. The latest catalogue version is pacs.002.001.15.
Use this page for the version that pacs008 implements today, and review the newer catalogue version for roadmap planning.
Version-diff table
| Version range | Why it matters | Implementation takeaway |
|---|---|---|
| pacs.002.001.12 | Current implementation in pacs008 | Use this when matching the current project templates and validation assets. |
| pacs.002.001.13-15 | Later catalogue revisions | Review later ISO revisions before new interoperability work. |
Scheme-specific notes
- In SEPA credit-transfer and instant-payment flows, pacs.002 is the main companion status message. See the EPC SCT rulebook and EPC SCT Inst rulebook.
- In CBPR+, pacs.002 sits alongside pacs.008, pacs.009, and pacs.004 in the Swift rollout. See Swift's CBPR+ ISO 20022 usage-guidelines announcement.
When to use this message
Use pacs.002 when the receiving institution needs to report the status of an earlier payment instruction.
When not to use this message
Do not use pacs.002 to alter settlement or reverse funds.
Implementation notes
- Map external statuses into pacs.002 reason and status codes early.
- Keep original message identifiers intact.
- Treat pending and rejected outcomes differently downstream.
Common failure modes
- Conflating technical acceptance with business acceptance.
- Dropping transaction-level status details when a group status exists.
- Using pacs.002 as a substitute for exception-management workflows.
Worked XML fragment
xml
<FIToFIPmtStsRpt>
<GrpHdr>
<MsgId>STS-2026-0001</MsgId>
<CreDtTm>2026-03-01T09:15:00Z</CreDtTm>
</GrpHdr>
<TxInfAndSts>
<OrgnlInstrId>PAY-2026-8841</OrgnlInstrId>
<TxSts>RJCT</TxSts>
<StsRsnInf>
<Rsn><Cd>AC01</Cd></Rsn>
</StsRsnInf>
</TxInfAndSts>
</FIToFIPmtStsRpt>Field commentary
MsgId: Use a new identifier for the status report itself.OrgnlInstrId: Keep the original instruction identifier intact.TxSts: Map this carefully to internal workflow states.StsRsnInf: Structured reason codes are more useful than free text.
Decision flow
text
Need to communicate status of an earlier instruction?
Yes -> Use pacs.002.
No -> Need to ask another institution for status?
Yes -> Consider pacs.028 instead.
No -> Stay in the payment or exception flow.Compare pacs.002 vs pacs.028
Implementation FAQ
Is pacs.002 a payment message?
No. It reports status for an earlier instruction rather than moving value itself.
Should pacs.002 replace internal workflow states?
No. It should inform them, but internal case states still need their own operational logic.
Primary references
- ISO 20022 message definitions catalogue for
pacs.002.001.12 - Swift CBPR+ ISO 20022 usage-guidelines announcement
- Swift CBPR+ migration roadmap PDF
- EPC SEPA Credit Transfer rulebook
- EPC SEPA Instant Credit Transfer rulebook