ISO 20022 reason code
AG01: Transaction forbidden
This type of transaction is not allowed on the account (for example a savings account). AG01 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.
| Code | AG01 |
|---|---|
| Name | Transaction forbidden |
| ISO code lists | ExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason) |
| Where | StsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt) |
What AG01 means
The account cannot take this kind of transaction: for example a direct debit on a savings account, or an account its bank has closed to that payment type.
Not to be confused with: AG01 is about the kind of transaction on this account; AG02 is a wrong operation code in the payment itself, and AC06 a block on the account for everything.
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 AG01 appears
AG01 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, AG01 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>AG01</Cd>
</Rsn>
<AddtlInf>Free text from the bank, if any</AddtlInf>
</StsRsnInf>
</TxInfAndSts>
</OrgnlPmtInfAndSts>What to do about AG01
- If you sent the payment or the collection: Ask the counterparty for another account or another way to pay. Resending to the same account will not work.
Your bank’s implementation guide and the scheme’s rulebook (for SEPA, the EPC rulebooks) say exactly when it may use AG01; banks do not all apply a code the same way.
Look up AG01 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=AG01&kind=status_reason'