ZagTrader

Payments

What do pacs.002 status and reject reason codes mean?

Written and maintained by ZagTrader. Last reviewed . How this page is sourced and checked

A pacs.002 (FI to FI Payment Status Report) tells the previous bank in the chain what happened to its payment instruction: TxSts gives the status, such as RJCT for rejected, and StsRsnInf/Rsn/Cd gives the reason from the ISO 20022 external code list, such as AC01 (incorrect account number). For cross-border payments on Swift it replaced the MT103 reject. If the money has already settled, it comes back with a pacs.004 return instead.

What it means

The status sits in TxInfAndSts/TxSts for each transaction, or in OrgnlGrpInfAndSts/GrpSts for a whole message. The values come from the external code list ExternalPaymentTransactionStatus1Code. The ones you meet most: ACTC (Accepted Technical Validation: the message passed syntax and semantic checks), ACSP (Accepted Settlement In Process: all checks passed, the payment is being executed), ACSC (Accepted Settlement Completed: settlement on the debtor’s side is done), ACCC (Accepted Credit Settlement Completed: the creditor’s account has been credited), ACWC (Accepted With Change: accepted, but something such as the date was changed), PDNG (Pending: further checks or funds needed, a final status will follow) and RJCT (Rejected).

For a rejection the reason is in TxInfAndSts/StsRsnInf: Rsn/Cd holds a four-character code from ExternalStatusReason1Code, or Rsn/Prtry a proprietary one, AddtlInf can add free text, and Orgtr can name who raised the reason. The first two letters loosely show the area, for example AC account, AG agreement, AM amount, BE beneficiary or end customer, RC routing or bank identifier, RR regulatory, MS reason not specified, FF file format, TM time.

The pacs.002 points back to the original payment through OrgnlGrpInf/OrgnlMsgId and OrgnlMsgNmId, OrgnlInstrId, OrgnlEndToEndId, OrgnlTxId and OrgnlUETR. OrgnlTxRef can repeat key data of the original, such as amount and settlement date. Match on OrgnlUETR or OrgnlInstrId first; the end-to-end reference is not unique across payments.

Reject, return and recall are different events. A reject (pacs.002 RJCT) refuses an instruction before it is settled, so no money moves back. A return (pacs.004) sends back funds that already settled, with its reason in TxInf/RtrRsnInf/Rsn/Cd; many codes are the same (AC01, AC04, AC06, AG01, AM05, BE01, MS02, MS03, NARR, RR01 to RR04). A recall is a request by the sender to get a settled payment back: it goes out as camt.056 and is answered with camt.029, and if accepted the money returns in a pacs.004 with reason FOCR (following cancellation request).

Since the end of MT/MX coexistence on 22 November 2025, the MT103 and MT202 reject (an MT with /REJT/ in field 72) has its ISO 20022 equivalent in pacs.002, and the MT return (/RETN/) in pacs.004. Some reason codes are close cousins: AM05 (Duplication) is used to reject or return a payment that looks identical to one already processed, while DUPL (Duplicate Payment) is mostly seen when the sender itself recalls a duplicate it sent.

Common causes

  • Account problems at the creditor’s bank: the account does not exist (AC01), is closed (AC04) or blocked (AC06), or cannot receive this type of payment (AG01).
  • Name and account do not match at the creditor’s bank (BE01).
  • Missing or incomplete regulatory data: debtor account (RR01), debtor name or address (RR02), creditor name or address (RR03), or another regulatory or sanctions reason (RR04).
  • A wrong or unknown BIC or bank identifier (RC01), or a creditor bank that is not reachable in the clearing system used (CNOR).
  • A duplicate of a payment already received (AM05), insufficient funds for a debit (AM04), or an instruction received after the cut-off time (TM01).
  • A message that breaks the agreed file or message format (FF01), or a service level or local instrument the receiving bank does not accept (AG02).
  • A reason the bank may not or will not disclose (MS03), or a refusal on the creditor’s instruction (MS02).

How to fix it

  1. Read TxSts. If it is not RJCT, the payment is not rejected: ACSP, ACSC and ACCC are positive, PDNG means wait for a final status.
  2. Find the original payment with OrgnlUETR or OrgnlInstrId, and stop any onward processing or customer confirmation that assumed it went through.
  3. Read StsRsnInf/Rsn/Cd and look it up in the table below. Read AddtlInf too: banks often name the missing or wrong element there.
  4. Decide who has to act: account and name codes (AC, BE) need new details from the beneficiary through your customer; RR codes need complete party data from your customer or your own records; RC and CNOR need a routing fix in your static data; FF and AG codes need a message or set-up fix on your side.
  5. Correct the data at its source and send a new pacs.008 with a new instruction reference and a new UETR. A rejected payment is finished; it cannot be repaired or resubmitted under the old references.
  6. Tell the ordering customer in plain words what was wrong and what you need from them, quoting the reason code.

Common reason codes in pacs.002 StsRsnInf (and pacs.004 RtrRsnInf). Codes and names from the ISO 20022 external code sets as published in public bank and EPC guidance; meanings are summarised and the fixes are our own.

CodeNameMeaningTypical fix
AC01Incorrect Account NumberThe account number or IBAN is invalid or does not exist at that bank.Get the correct IBAN from the beneficiary in writing. See IBAN and BIC errors.
AC03Invalid Creditor Account NumberThe creditor account identifier is wrong.Check how the IBAN was entered or selected; correct the beneficiary record.
AC04Closed Account NumberThe account has been closed.Ask the beneficiary for their new account.
AC06Blocked AccountThe account is blocked for postings.Ask the beneficiary for another account or way to pay.
AG01Transaction ForbiddenThis type of payment is not allowed on this account (for example a savings account).Agree another account or payment method with the beneficiary.
AG02Invalid Bank Operation CodeThe service level, local instrument or operation code is not valid for the receiver.Check the payment type information against the receiver’s or scheme’s rules.
AM04Insufficient FundsNot enough funds to cover the amount.Fund the account or reduce the amount, then send a new instruction.
AM05DuplicationThe payment looks identical to one already sent or processed.Check whether it really is a duplicate before sending again.
BE01Inconsistent With End CustomerThe customer identification does not match the account.Confirm the beneficiary’s exact name for that account.
BE04Missing Creditor AddressThe creditor address required for the payment is missing or incomplete.Add a structured address, at least town and country.
CNORCreditor Bank Is Not RegisteredThe creditor’s bank is not reachable under this identifier in the clearing system used.Use another route or ask how the beneficiary can receive the payment.
DUPLDuplicate PaymentThe payment duplicates another payment.Usually used when recalling your own duplicate; reconcile both payments.
FF01Invalid File FormatThe message or file is not correctly formed or filled.Validate against the schema and the usage guideline and fix the generator.
MS02Not Specified Reason Customer GeneratedRefused on the creditor’s instruction, without a reason.The payer and beneficiary must settle it between themselves.
MS03Not Specified Reason Agent GeneratedRefused by a bank without a stated reason (sometimes because the law forbids a more precise code).Contact the bank; check sanctions and compliance data on your side.
NARRNarrativeThe reason is given as text in AddtlInf.Read AddtlInf and act on it.
RC01Bank Identifier IncorrectThe BIC or bank identifier is wrong or badly formed.Correct the agent BIC in your routing data.
RR01Missing Debtor Account Or IdentificationThe debtor account or identification required by regulation is missing.Add the debtor account (IBAN) or identification.
RR02Missing Debtor Name Or AddressThe debtor name or address required by regulation is missing or insufficient.Send full debtor name and structured address.
RR03Missing Creditor Name Or AddressThe creditor name or address required by regulation is missing or insufficient.Send full creditor name and structured address.
RR04Regulatory ReasonRefused for another regulatory reason, for example sanctions or AML screening.Contact your compliance team; do not resend unchanged.
TM01Cut Off TimeReceived after the agreed cut-off time.Resend for the next business day or earlier in the day.

Example

BANKGB2LXXX rejects a GBP 18,400.00 pacs.008 from ZagTrader Test Bank because the creditor’s address had no town and country. The pacs.002 carries TxSts RJCT, reason RR03 and the references of the original payment.

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.10">
  <FIToFIPmtStsRpt>
    <GrpHdr>
      <MsgId>BKGB26102200412</MsgId>
      <CreDtTm>2026-10-22T10:42:00+01:00</CreDtTm>
    </GrpHdr>
    <TxInfAndSts>
      <StsId>RJ2610220412</StsId>
      <OrgnlGrpInf>
        <OrgnlMsgId>ZT26102200058</OrgnlMsgId>
        <OrgnlMsgNmId>pacs.008.001.08</OrgnlMsgNmId>
      </OrgnlGrpInf>
      <OrgnlInstrId>ZT2610220058</OrgnlInstrId>
      <OrgnlEndToEndId>PO-2026-55120</OrgnlEndToEndId>
      <OrgnlUETR>e7c4a1f2-3b6d-4e8a-9c05-6d2f8b1a7e34</OrgnlUETR>
      <TxSts>RJCT</TxSts>
      <StsRsnInf>
        <Orgtr>
          <Id>
            <OrgId>
              <AnyBIC>BANKGB2LXXX</AnyBIC>
            </OrgId>
          </Id>
        </Orgtr>
        <Rsn>
          <Cd>RR03</Cd>
        </Rsn>
        <AddtlInf>CREDITOR TOWN AND COUNTRY MISSING</AddtlInf>
      </StsRsnInf>
      <InstgAgt>
        <FinInstnId>
          <BICFI>BANKGB2LXXX</BICFI>
        </FinInstnId>
      </InstgAgt>
      <InstdAgt>
        <FinInstnId>
          <BICFI>ZAGTAEADXXX</BICFI>
        </FinInstnId>
      </InstdAgt>
      <OrgnlTxRef>
        <IntrBkSttlmAmt Ccy="GBP">18400.00</IntrBkSttlmAmt>
        <IntrBkSttlmDt>2026-10-22</IntrBkSttlmDt>
      </OrgnlTxRef>
    </TxInfAndSts>
  </FIToFIPmtStsRpt>
</Document>
Open this example in the parser

OrgnlUETR, OrgnlInstrId and OrgnlEndToEndId identify the rejected pacs.008; OrgnlMsgNmId says which message type it was.

StsRsnInf/Orgtr names the bank that raised the reason; AddtlInf says what exactly is missing.

No money moved: a rejected payment is not settled, so nothing comes back in a pacs.004.

BICs, references and UETR are made up.

Questions

What is the difference between ACSC and ACCC?
ACSC (Accepted Settlement Completed) means settlement on the debtor side is complete. ACCC (Accepted Credit Settlement Completed) goes further: the creditor’s account has been credited.
What is the difference between a pacs.002 reject and a pacs.004 return?
A pacs.002 with RJCT refuses the instruction before settlement, so no money moves back. A pacs.004 sends back money that was already settled. Both use reason codes from similar ISO lists.
What does reason code MS03 mean?
Not Specified Reason Agent Generated: a bank refused the payment without giving a precise reason. It is sometimes used where data protection rules do not allow codes such as AC04 or RR04. Contact the bank and check your compliance data.
What is the difference between AM05 and DUPL?
Both mean duplicate. AM05 (Duplication) is typically used by a receiving bank to reject or return a payment identical to one already processed. DUPL (Duplicate Payment) is typically used by the sender when recalling a payment it sent twice.
Can I resend a rejected payment with the same UETR?
No. A rejected payment is final, and only a bank passing a payment on keeps the UETR it received. After fixing the cause, send a new pacs.008 with a new instruction reference and a new UETR.

Messages involved

All troubleshooting · Guides · Codes