Skip to content

ISO 20022 reason code

CURR: Incorrect currency

The currency is wrong. CURR is an ISO 20022 reason code used as a status reason, a return reason and a cancellation reason: you will see it in pain.002, pacs.004, camt.053 and camt.056.

CURR at a glance
CodeCURR
NameIncorrect currency
ISO code listsExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason); ExternalCancellationReason1Code (cancellation reason)
WhereStsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt); CxlRsnInf/Rsn/Cd

What CURR means

The payment is in the wrong currency: not the one the payee invoiced, or one the receiving account or service cannot take. AM03 is close to it; CURR is also a cancellation reason, so a payer can use it to recall a payment sent in the wrong currency.

Not to be confused with: CURR is the wrong currency for the payment; AM03 is a currency the service or the account does not accept.

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 CURR appears

CURR 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 reason (ExternalCancellationReason1Code): in a request to cancel or recall a payment (camt.055 from a customer, camt.056 between banks).

In a status report, CURR 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>CURR</Cd>
      </Rsn>
      <AddtlInf>Free text from the bank, if any</AddtlInf>
    </StsRsnInf>
  </TxInfAndSts>
</OrgnlPmtInfAndSts>

What to do about CURR

  • If you sent the payment or the collection: Check which currency the payee invoiced and the account accepts, and pay in that currency. To get back a payment already sent in the wrong currency, ask your bank to recall it with CURR.

Your bank’s implementation guide and the scheme’s rulebook (for SEPA, the EPC rulebooks) say exactly when it may use CURR; banks do not all apply a code the same way.

Look up CURR 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=CURR&kind=status_reason'