pacs.028 — FI to FI Payment Status Request
A bank queries another bank on the status of a prior payment (pacs.008 or pacs.009) that has not received its expected pacs.002 on time. Inseparable from SWIFT gpi UETR tracker for cross-border transparency.
Purpose: query the status
When a pacs.008 departs to a correspondent and the expected pacs.002 doesn't
arrive (10 min CBPR+, or D+1 on other rails), the ordering bank emits a
pacs.028 to wake up the chain. The OrgnlUETR tag is the key: it
allows each crossed bank to instantly locate the state in its SWIFT gpi
Tracker.
XML structure
Wrapped in <FIToFIPmtStsReq>. GrpHdr + TxInf (repeatable).
| Element | Role |
|---|---|
StsReqId | Request identifier. |
OrgnlGrpInf | MsgId + nmid of investigated message. |
OrgnlInstrId / OrgnlEndToEndId | Individual identifiers. |
OrgnlUETR | UUIDv4 of original payment — cross-correspondent matching key. |
AcctSvcrRef | Servicer internal reference (useful for trace in internal logs). |
Example: investigation request
BNP Paribas queries Citi US on the status of the pacs.008 sent 5 hours earlier — no pacs.002 received:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.028.001.04">
<FIToFIPmtStsReq>
<GrpHdr>
<MsgId>STSREQ-CBPR-20260518-001</MsgId>
<CreDtTm>2026-05-18T15:00:00+02:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<InstgAgt>
<FinInstnId><BICFI>BNPAFRPP</BICFI></FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId><BICFI>CITIUS33</BICFI></FinInstnId>
</InstdAgt>
</GrpHdr>
<TxInf>
<StsReqId>STSREQ-001</StsReqId>
<OrgnlGrpInf>
<OrgnlMsgId>BNPP-CBPR-20260518-001</OrgnlMsgId>
<OrgnlMsgNmId>pacs.008.001.10</OrgnlMsgNmId>
</OrgnlGrpInf>
<OrgnlInstrId>BNPP-INSTR-2026001</OrgnlInstrId>
<OrgnlEndToEndId>INV2026-187</OrgnlEndToEndId>
<OrgnlUETR>1a2b3c4d-5e6f-7890-abcd-ef1234567890</OrgnlUETR>
<AcctSvcrRef>BNPP-SVCREF-001</AcctSvcrRef>
</TxInf>
</FIToFIPmtStsReq>
</Document> Common pitfalls
- Empty or wrong OrgnlUETR: renders the request useless — UETR is the unique identifier carried across the SWIFTNet gpi chain.
- pacs.028 before the gpi delay: spamming the chain by sending pacs.028 < 10 min after pacs.008 is frowned on (SWIFT SLA counters).
- Multiple pacs.028 on same tx: some stacks deduplicate, others respond to every request — needless opex.
- Confusion with camt.027: camt.027 (Claim Non Receipt) is used between customer and bank ; pacs.028 is strictly interbank.