ValidateFin

Payment rejection codes — SEPA & ACH

What every rejection code means, whether you can resubmit, and how to fix it. European SEPA and US ACH, side by side.

Payment rejection codes — SEPA & ACH

A payment rejection code is the reason a bank gives for not executing a payment. In Europe it arrives in a SEPA pain.002 status report (AC04 account closed, AM04 insufficient funds, MD01 no valid mandate); in the United States it arrives as an ACH return code in an Addenda 99 record (R01 insufficient funds, R02 account closed, R10 unauthorized). Some rejections are recoverable — correct the cause and resend — while others are final, and resending will simply fail again.

When a payment fails, the bank hands back a code and little else. Those codes are cryptic — AC04, AM04, R01, R10 — and the official lists give you a one-line English label, when they are not behind a paywall. Each page below tells you what the code means, why it typically happens, whether the payment can be fixed and resubmitted or is final, and exactly how to correct it.

SEPA — pain.002 rejection codes(36)

The reason a European bank gives, in a pain.002 status report, for not executing a SEPA credit transfer (pain.001) or direct debit (pain.008).

21 Recoverablefix the cause and resubmit
15 Finalresubmitting will fail again

Source: ISO 20022 External Code Sets — ExternalStatusReason1Code · Last verified: 2026-07-12

United States — ACH / NACHA return codes(70)

The reason a US bank (the RDFI) gives, in an Addenda 99 record, for returning an ACH entry. The official NACHA rulebook is a paid publication — this reference was assembled from public sources, and every code cites the ones it was checked against.

24 Recoverablefix the cause and resubmit
46 Finalresubmitting will fail again

Source: Nacha ISO 20022 mapping guide + Federal Reserve ACH Return Reason Report + US Treasury Green Book · Last verified: 2026-07-13

Tools for this code

Decode a real status report, or check a payment file before you send it — all in your browser, nothing uploaded.