Key takeaways

  • ACH return codes fall into three buckets: funds problems (R01, R09), account data problems (R02, R03, R04, R13, R20), and authorization problems (R05, R07, R08, R10, R11, R29).
  • Account-data returns are almost entirely preventable with pre-submission validation. Authorization returns are the ones Nacha watches most closely.
  • Most returns arrive within two banking days; unauthorized consumer returns can arrive up to 60 days later.
  • Nacha's thresholds — 0.5% unauthorized, 3% administrative, 15% overall — are calculated on exactly these codes.

What an ACH return code actually is

When you originate an ACH debit, your bank (the ODFI) sends it through the network to the customer's bank (the RDFI). If the RDFI can't or won't post it, it sends the entry back with a return reason code — "R" plus two digits, defined in the Nacha Operating Rules. The code is the RDFI's explanation. Your job is to read it, fix the underlying cause, and — critically — not re-present entries you're not allowed to.

Return codes matter beyond the individual payment because Nacha and your ODFI track your return rates. Exceed the thresholds and you'll get a call from your bank's ACH risk team, a remediation plan, and possibly the loss of origination privileges. We cover the math in How to reduce ACH return rates.

The ACH return codes you'll actually see

CodeMeaningReturn windowBucketPreventable before submission?
R01Insufficient funds2 banking daysFundsPartly — risk scoring, not data
R02Account closed2 banking daysAdministrativeOften — account validation
R03No account / unable to locate account2 banking daysAdministrativeYes — account validation
R04Invalid account number structure2 banking daysAdministrativeYes — format validation
R05Unauthorized debit to consumer account using corporate SEC code60 calendar daysUnauthorizedYes — correct SEC code
R07Authorization revoked by customer60 calendar daysUnauthorizedPartly — honor revocations promptly
R08Payment stopped2 banking daysOtherNo
R09Uncollected funds2 banking daysFundsPartly
R10Customer advises originator not known / not authorized to debit60 calendar daysUnauthorizedYes — identity + authorization
R11Customer advises entry not in accordance with terms of authorization60 calendar daysUnauthorizedYes — amount/date discipline
R13Invalid ACH routing number2 banking daysAdministrativeYes — routing validation
R16Account frozen / OFAC2 banking daysOtherPartly — OFAC screening
R20Non-transaction account2 banking daysAdministrativeOften
R29Corporate customer advises not authorized2 banking daysUnauthorized (corporate)Yes — authorization records

Return windows are the Nacha standard timeframes; the RDFI must transmit the return so it is available to the ODFI by the deadline. Always confirm against the current Nacha Operating Rules.

Funds problems: R01 and R09

R01 — Insufficient funds is the most common return code in the network. The account exists and the debit was authorized; the customer just didn't have the money. R09 — Uncollected funds is its cousin: the balance shows enough, but part of it is a recent deposit that hasn't finished clearing.

You can't validate a balance before origination, but you can score the risk. A payer with a brand-new account, a history of returns, or an amount out of pattern is more likely to bounce. Both R01 and R09 may be re-presented up to two more times within 180 days of the original settlement — which is why many originators automatically retry a few days after payday.

Account data problems: R02, R03, R04, R13, R20

These are the returns that should make you wince, because almost all of them were preventable before the file went out.

  • R04 — Invalid account number structure. The account number is the wrong length or format for that bank. This is pure data-entry error or fraud, and a format check would have caught it.
  • R03 — No account / unable to locate. The number is structurally fine, but the bank has no such account, or the name on the entry doesn't match. Typos, transposed digits, or a made-up account.
  • R02 — Account closed. The account used to exist. Common with recurring debits when the customer changes banks and forgets to update you.
  • R13 — Invalid routing number. The routing number doesn't correspond to a participating institution. There is no excuse for this one; routing validation against the FedACH directory is instant.
  • R20 — Non-transaction account. The account exists but can't accept ACH debits (some savings or loan accounts).

Nacha counts R02, R03 and R04 as administrative returns with a threshold of 3%. Since March 2021, Nacha's WEB Debit Account Validation Rule also requires originators of internet-initiated debits to use a "commercially reasonable" method to validate the account number the first time it's used — which is exactly the check that prevents R03 and R04.

Never re-present an R02, R03, R04 or R13 return with the same data. Correct the account information with the customer first, then originate a new entry.

Authorization problems: R05, R07, R10, R11, R29

These are the returns regulators and your ODFI care about most, because they mean a customer says you took money you weren't entitled to. Nacha's unauthorized return rate threshold is just 0.5%, and consumers have 60 calendar days to dispute.

  • R10 — Customer advises originator not known / not authorized. Since the 2021 rule change, R10 means the customer says they have no relationship with you or never authorized any debit. This is the code you see with identity fraud and account takeover.
  • R11 — Entry not in accordance with terms of authorization. The customer did authorize you, but the amount, date or frequency is wrong. Unlike R10, an R11 can be corrected and re-presented within 60 days.
  • R07 — Authorization revoked. The customer cancelled a recurring authorization and you debited anyway. Honor cancellations the day you receive them.
  • R05 — Unauthorized debit to a consumer account using a corporate SEC code. You coded a consumer debit as CCD or CTX. Get your SEC codes right.
  • R29 — Corporate customer advises not authorized. The business version of R10, with a two-banking-day window instead of 60 days.

Preventing authorization returns is about two things: verifying the identity of the person giving you authorization (so a fraudster can't sign up with someone else's account), and keeping clean, retrievable authorization records so you can respond to disputes.

Other codes worth knowing

  • R08 — Payment stopped. The customer placed a stop payment on the specific entry. Contact them before doing anything else.
  • R16 — Account frozen. The account is frozen by legal action or, notably, an OFAC match. If you're seeing R16s tied to sanctions, you should be screening payers against OFAC before origination — it's a compliance obligation, not just a returns issue.
  • R23 — Credit entry refused by receiver. Only applies to credits; the receiver declined the payment.
  • R24 — Duplicate entry. You sent the same entry twice. Fix your file generation.

Which returns you can stop before the file goes out

Look at the "preventable" column above. Every administrative return and most unauthorized returns trace back to something you could have checked at enrollment: is this a real routing number, is the account number structurally valid, does this person exist and are they who they say they are, and are they on a sanctions list. That's the job of pre-submission verification — the same routing validation, fraud scoring, OFAC screening and ID matching that catches bad paper checks, applied to your ACH file before origination.

See it on your payments: Check EFI validates routing and account data, scores fraud risk, and screens OFAC on ACH debits before you submit. How the pipeline works →

Frequently asked questions

What is the difference between R03 and R04?

R04 means the account number failed the receiving bank's structural check — wrong length or format — so no account could match it. R03 means the account number was structurally valid but the bank has no account with that number, or the name doesn't match. Both are preventable by validating account and routing data before origination.

How long does a bank have to return an ACH debit?

Most returns (R01, R02, R03, R04, R09, R16, R20 and others) must be sent so they reach the ODFI by the opening of the second banking day after settlement. Unauthorized consumer returns (R05, R07, R10, R11) can be sent up to 60 calendar days after settlement. R29 for corporate accounts follows the two-banking-day window.

Can I re-present an ACH debit that was returned?

An R01 (insufficient funds) or R09 (uncollected funds) return may be re-initiated up to two additional times within 180 days of the original settlement date. Returns for closed accounts, invalid accounts, or unauthorized debits must not be re-presented.

Check EFI logo mark
Check EFI TeamWe build AI check and ACH verification software for check cashing stores, ACH originators and payment processors. Talk to us about your workflow.