Skip to content

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.

RR04 at a glance
CodeRR04
NameRegulatory reason
ISO code listsExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason); ExternalPaymentCancellationRejection1Code (cancellation rejection reason)
WhereStsRsnInf/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):

pain.002.001.10 · a rejected transaction
<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).

REST · curl
curl -s 'https://iso20022-navigator.com/api/v1/explain?code=RR04&kind=status_reason'