ISO 20022 reason code
RR04: Regulatory reason
Refused for regulatory reasons (sanctions, AML/KYC). RR04 is an ISO 20022 reason code used as a status reason, a return reason and a cancellation rejection reason: you will see it in pain.002, pacs.004, camt.053 and camt.029.
| Code | RR04 |
|---|---|
| Name | Regulatory reason |
| ISO code lists | ExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason); ExternalPaymentCancellationRejection1Code (cancellation rejection reason) |
| Where | StsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt); CxlStsRsnInf/Rsn/Cd |
What RR04 means
The payment was stopped for regulatory reasons, such as sanctions screening or anti-money-laundering checks. Banks usually cannot say more. In the answer to a recall it means the funds cannot be returned for regulatory reasons.
Not to be confused with: RR04 is the general regulatory refusal, often after sanctions or anti-money-laundering screening; RR01 to RR03 name the missing data instead.
A reason code always comes with a status or an action: on its own it says why, not what happened. In a status report look at the status next to it (RJCT means the payment will not be executed); on a statement the returned entry tells you the money has come back.
Where RR04 appears
RR04 belongs to three of the ISO 20022 reason code lists, so it can arrive in these places:
- Status reason (ExternalStatusReason1Code): in a payment status report (pain.002 from a bank to its customer, pacs.002 between banks) that rejects or holds a payment.
- Return reason (ExternalReturnReason1Code): in a payment return (pacs.004) after the money has moved, and the returned entry on the account statement (camt.053) or notification (camt.054).
- Cancellation rejection reason (ExternalPaymentCancellationRejection1Code): in the answer to a cancellation or recall request that is refused (camt.029 resolution of investigation).
In a status report, RR04 explains a status such as RJCT, at transaction level here (the same StsRsnInf block can sit under the group or a payment block):
<OrgnlPmtInfAndSts>
<OrgnlPmtInfId>PMT-20261028-03</OrgnlPmtInfId>
<TxInfAndSts>
<OrgnlEndToEndId>INV-2026-0042</OrgnlEndToEndId>
<TxSts>RJCT</TxSts>
<StsRsnInf>
<Rsn>
<Cd>RR04</Cd>
</Rsn>
<AddtlInf>Free text from the bank, if any</AddtlInf>
</StsRsnInf>
</TxInfAndSts>
</OrgnlPmtInfAndSts>What to do about RR04
- If you sent the payment or the collection: Contact your bank. Do not send the payment again until the question is settled.
Your bank’s implementation guide and the scheme’s rulebook (for SEPA, the EPC rulebooks) say exactly when it may use RR04; banks do not all apply a code the same way.
Look up RR04 from a script or an AI agent
Scripts and AI agents get this code’s name, definition, where it sits and the address of this page from GET /api/v1/explain, keyless, or from the explain_code tool of the MCP server (API and MCP docs; add it to Claude, Cursor or VS Code).
curl -s 'https://iso20022-navigator.com/api/v1/explain?code=RR04&kind=status_reason'