A rejected SWIFT payment returns a status of RJCT plus a structured reason code from the ISO 20022 external code list. Knowing the codes turns a frustrating rejection into a clear action item.
AC01 — IncorrectAccountNumber. The account number provided is wrong (failed bank validation). Fix: re-confirm with the beneficiary; typically a typo in IBAN or account number.
AC04 — ClosedAccountNumber. The account exists but is closed. Fix: get a new account from the beneficiary; cannot reuse a closed one.
AC06 — BlockedAccount. The account is blocked (compliance hold, court order). Fix: beneficiary must resolve with their bank.
BE01 — InconsistentWithEndCustomer. Name on the wire does not match the account holder. Fix: confirm exact legal name with beneficiary; common with abbreviations and given/family-name order.
CH09 — CombinationOfValuesNotPermitted. Field combination is invalid (e.g. charge code with destination). Fix: depends on which fields — usually formatting; ask your bank for specifics.
CUST — RequestedByCustomer. Customer requested return. Used when the beneficiary actively refuses the payment.
DUPL — DuplicatePayment. Detected duplicate of an earlier payment.
NARR — Narrative. Reason in free text — read the accompanying narrative field.
RR04 — RegulatoryReason. Blocked for regulatory cause — typically sanctions or AML. Recovery: contact the screening bank with beneficiary KYC; sometimes the funds are returned, sometimes blocked.
TM01 — InvalidCutOffTime. Sent after cut-off and rejected rather than queued. Fix: resend next business day.
Yes — it appears in the pacs.002 response message and your bank can share it. Some retail front-ends show only "rejected" without detail; ask for the technical reason.
For most rejects yes. RR04 (regulatory) may result in funds being frozen pending investigation.
RJCT = payment rejected before completing (no credit happened). RETN = funds were credited then returned. Different recovery process.
Yes — resubmit with a new UETR. The old UETR is consumed and cannot be reused.