Skip to content

ISO 20022 reason code

AC03: Invalid creditor account number

The creditor account number is invalid or missing. AC03 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.

AC03 at a glance
CodeAC03
NameInvalid creditor account number
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 AC03 means

The creditor’s account is missing or invalid. As a cancellation reason it means the payer sent the money to the wrong account and wants it back.

Not to be confused with: AC03 points at the creditor’s side; AC02 is the debtor’s account and AC01 the general code. As a recall reason it means the payer chose the wrong payee account, not that the account is invalid.

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

AC03 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, AC03 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>AC03</Cd>
      </Rsn>
      <AddtlInf>Free text from the bank, if any</AddtlInf>
    </StsRsnInf>
  </TxInfAndSts>
</OrgnlPmtInfAndSts>

What to do about AC03

  • If you sent the payment or the collection: Correct the creditor account and pay again. If the money already went to the wrong account, ask your bank to recall it; the payee’s bank usually needs the payee’s consent before it can return the funds.

Under the SEPA Credit Transfer rulebook, a recall requested by the originator for a wrong beneficiary account uses AC03 (next to AM09 for a wrong amount and CUST for no stated reason).

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

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