Skip to content

ISO 20022 reason code

AGNT: Incorrect agent

An agent (bank) in the payment chain is wrong. In the answer to a cancellation or recall: a bank in the chain refused to cancel. AGNT is an ISO 20022 reason code used as a status reason, a return reason, a cancellation reason and a cancellation rejection reason: you will see it in pain.002, pacs.004, camt.053, camt.056 and camt.029.

AGNT at a glance
CodeAGNT
NameIncorrect agent
ISO code listsExternalStatusReason1Code (status reason); ExternalReturnReason1Code (return reason); ExternalCancellationReason1Code (cancellation reason); ExternalPaymentCancellationRejection1Code (cancellation rejection reason)
WhereStsRsnInf/Rsn/Cd; RtrRsnInf/Rsn/Cd (pacs.004), TxDtls/RtrInf/Rsn/Cd (camt); CxlRsnInf/Rsn/Cd; CxlStsRsnInf/Rsn/Cd

What AGNT means

AGNT has two meanings, depending on the message. As a status, return or cancellation reason, a bank in the payment chain is wrong: an intermediary or a creditor agent that cannot handle the payment or does not hold the payee’s account. In the answer to a recall (camt.029) it is the agent’s decision: a bank in the chain refused to cancel the payment, so the recall stops there.

Not to be confused with: As a routing reason AGNT is the wrong bank; RC01 is a bank identifier that is invalid, and CNOR one the clearing system cannot reach.

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

AGNT belongs to four 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).
  • 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, AGNT 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>AGNT</Cd>
      </Rsn>
      <AddtlInf>Free text from the bank, if any</AddtlInf>
    </StsRsnInf>
  </TxInfAndSts>
</OrgnlPmtInfAndSts>

What to do about AGNT

  • If you sent the payment or the collection: For a rejected or returned payment, check the routing (creditor agent and intermediary agents) against the payee’s instructions and pay through the right banks. For a refused recall, ask your bank which bank refused and why; the payee may still return the money directly.

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

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