Skip to content

ISO 20022 reason code

AM01: Zero amount

The amount is zero. AM01 is an ISO 20022 reason code used as a status reason and a return reason: you will see it in pain.002, pacs.004 and camt.053.

AM01 at a glance
CodeAM01
NameZero amount
ISO code listsExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason)
WhereStsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt)

What AM01 means

The instructed amount is 0.00. The ISO 20022 amount types accept zero, so the file passes a schema check, but banks and payment schemes refuse a payment of nothing. It usually comes from an export that kept an invoice already settled by a credit note, a line netted to zero, or an amount rounded down to nothing.

Not to be confused with: AM01 is only a zero amount; AM06 is an amount above zero but below a minimum, and AM02 one above a maximum.

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

AM01 belongs to two 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).

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

What to do about AM01

  • If you sent the payment or the collection: Remove zero-amount transactions before you send the file, and fix the export so it leaves them out. The Payment File Viewer flags them under the rule pain.amount.zero, and the SEPA XML Generator refuses them.

A SEPA credit transfer or direct debit must be between 0.01 and 999,999,999.99 EUR (EPC implementation guidelines), so a zero amount never reaches the scheme.

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

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