NACHA return codes are the two-character R-codes (R01 through R85) that an RDFI attaches to a returned ACH entry to explain why it bounced. The moment you see one, stop scheduling further debits against that account, pull the original authorization, and match the code to the right response window. Consumer-related returns carry rights that stretch up to 60 days; most administrative returns must be handled within two banking days.
TL;DR:
- Most common return codes (R01 to R04, R05, R07, R10, R11, R29) can be addressed with data correction, verification, and proper authorization records.
- Returns related to insufficient funds or incorrect account info are fixable with a single retry, while authorization disputes require thorough documentation and a paper trail.
- Response timeframes vary: most administrative returns must be handled within two banking days, but consumer disputes can be challenged up to 60 days later.
- Proper onboarding, real-time account verification, and ongoing monitoring are critical to prevent recurring returns and misuse of incorrect SEC codes.
- Merchant success depends on analyzing return patterns by code category, maintaining strong evidence, and proactively addressing root causes rather than just reacting to individual returns.
Table of Contents
- What Do the Most Common NACHA Return Codes Mean?
- The Full NACHA Return Code List and How Codes Are Organized
- How Fast Do You Have to Respond to an ACH Return?
- Unauthorized vs. Administrative Returns: What Merchants Must Do and Prove
- How to Prevent ACH Returns Before They Start
- Where to Verify NACHA Rules and Return Code Definitions
- Why Most Merchants Treat Return Codes Backward
- Sources
What Do the Most Common NACHA Return Codes Mean?
Most merchants only ever deal with a handful of codes. Learning these ten cold will resolve the vast majority of returns you see without ever opening the full Return Reason Code Guide.
- R01 (Insufficient Funds): The account didn’t have the money. You can typically retry once, but repeated R01s on the same account signal a bad customer, not a bad process.
- R02 (Account Closed): Stop debiting immediately. Reach out to the customer for updated payment details before any retry.
- R03 (No Account/Unable to Locate Account): The account number or combination doesn’t match RDFI records. Verify the account before resubmitting; a blind retry will bounce again.
- R04 (Invalid Account Number): A structural problem with the account number itself, often a typo at data entry. Correct it and get fresh verification before reinitiating.
- R05 (Unauthorized Debit to Consumer Account Using Corporate SEC Code): This is a compliance flag, not a bounced payment. It means you used the wrong SEC code on a consumer account. Stop, review your authorization, and fix the code before you touch that account again.
- R07 (Authorization Revoked by Customer): The customer told you, or their bank, that they no longer authorize the debit. Any further attempt without fresh authorization is a rules violation.
- R10 (Customer Advises Originator Is Not Known/Not Authorized): The customer is disputing the charge outright. This is grounds for an unauthorized-return claim and needs immediate documentation review.
- R11 (Customer Advises Entry Not in Accordance With the Terms of the Authorization): Something about the transaction, amount, timing, doesn’t match what the customer agreed to. Depending on the error type, some R11s can be corrected and reinitiated within 60 days.
- R29 (Corporate Customer Advises Not Authorized): The business equivalent of R10. Treat it with the same seriousness and pull your authorization file right away.
- R51 (Item Related to RCK Entry Is Ineligible or RCK Entry Is Improperly Prepared): Rare outside check-conversion contexts, but it demands a full review of the underlying item before you try again.
Pro Tip: Codes R01 through R04 and R51 are usually fixable with corrected data and a one-time retry. Codes R05, R07, R10, R11, and R29 require a paper trail before you touch the account again, not just a resend.
The Full NACHA Return Code List and How Codes Are Organized
NACHA groups its codes by what triggered the return, not by number sequence, which is why memorizing ranges helps more than memorizing individual digits. Codes in the R01–R33 band cover the bulk of day-to-day activity: insufficient funds, account errors, authorization disputes, and stop payments. The R34–R85 band is far less common in commercial use and mostly covers automated clearing house administrative functions, RDFI-specific processing issues, and specialized programs like international ACH transactions (IAT) and same-day ACH exception handling.
Within the common band, four broad categories cover almost everything a merchant will encounter:
| Category | Example codes | What it signals |
|---|---|---|
| Account or data errors | R02, R03, R04 | Wrong, closed, or unusable account information |
| Insufficient or frozen funds | R01, R09 | Funds unavailable at the time of settlement |
| Authorization disputes | R05, R07, R10, R11, R29 | Customer disputes consent, terms, or method |
| Administrative or bank-initiated | R31, R33 | RDFI or ODFI-initiated stop, request, or correction |
Every one of these codes has an official, current definition maintained by NACHA in its Return Reason Code Guide, which is updated whenever the operating rules change and remains the single authoritative source for exact wording, timeframes, and handling instructions tied to each code. Bank-issued quick references, including the 2024 ACH Quick Reference Guide, summarize the same codes for day-to-day operational use, but if a code’s meaning or deadline ever seems ambiguous, NACHA’s own guide is the tiebreaker.
A few structural facts make the list easier to navigate:
- Codes are always formatted as “R” followed by two digits, with no exceptions across the standard entry class codes.
- Consumer-initiated dispute codes (R05, R07, R10, R11, R29) are tracked separately by NACHA because they trigger the extended 60-day consumer window rather than the standard two-day return timeframe.
- Notification of Change codes (C01 through C09, a related but distinct family) aren’t returns at all. They tell you to correct account data before the next debit, not to stop debiting.
- Your ACH processor or gateway dashboard should surface the raw R-code on every returned transaction. If yours doesn’t show it, ask your provider. Guessing at “declined” without the code number is guessing blind.
If you originate ACH debits at any volume, bookmark the official guide rather than relying solely on a bank’s summarized version; summaries are convenient, but the source document is the one that matters if a dispute ever escalates.
How Fast Do You Have to Respond to an ACH Return?
Timing is where most merchants get tripped up, because ACH returns run on two very different clocks depending on who’s returning the money and why.
- Standard returns (most administrative codes) move within two banking days. The RDFI must return the entry to your ODFI within two banking days of the original settlement date for most codes, R01 through R04 among them. Your ODFI then relays that return to you, typically the same day or the next business day.
- Consumer unauthorized-debit returns get up to 60 days. Codes like R05, R07, R10, R11, and R29 fall under extended consumer protection windows, meaning a customer can dispute a debit well after the money has settled and cleared your books.
- The RDFI and ODFI split responsibility cleanly. The RDFI (the customer’s bank) identifies the return reason and sends the code. Your ODFI (your bank, the one that originated the debit on your behalf) passes that code to you and often requires a response before allowing further activity on the account.
- Notification of Change requests must be applied before the next debit attempt. An NOC isn’t a rejection, it’s corrected account data the RDFI is handing you. NACHA requires originators to make the correction within six banking days of receipt or before the next debit, whichever comes first, and failing to apply it before reinitiating is itself a rules violation.
Unauthorized vs. Administrative Returns: What Merchants Must Do and Prove
Not every return carries the same legal weight. An R03 means someone typo’d an account number. An R10 means a customer is telling their bank you never had permission to charge them at all, and that distinction changes your entire response.
Codes R05, R07, R10, R11, and R29 fall into the unauthorized-return category, and each one exposes you to reversed funds, potential fines, and, if the pattern repeats, scrutiny from your ODFI or NACHA itself. Here’s the workflow to run every time one lands in your queue:
- Stop all future debits on that account immediately. Don’t wait to investigate first; halt the schedule, then investigate.
- Pull your authorization record for that exact transaction. Not a generic terms-of-service page, the specific record showing what the customer agreed to, when, and how.
- Request a Written Statement of Unauthorized Debit (WSUD) process through your ODFI if the dispute needs formal documentation. Your ODFI can walk you through what the RDFI requires to close out the claim.
- Compare the authorization against “similarly authenticated” standards. For WEB-originated debits, NACHA guidance recommends process-linked evidence, IP address, timestamp, and session token, rather than a static screenshot that proves nothing about who actually clicked “agree.”
- Retain the full evidence file for two years past revocation or termination, exactly as NACHA’s retention rule requires, since the burden of proof sits with you, not the customer’s bank.
Pro Tip: Don’t wait for a dispute to check your evidence quality. Pull five random authorizations from the last 90 days once a month and ask: could I prove this held up in a WSUD review today? If the answer’s no, fix the intake flow before it becomes a pattern of R10s.
How to Prevent ACH Returns Before They Start
Every return code above is a symptom. The cure lives in onboarding, authorization capture, and ongoing monitoring, three controls most merchants set up once and never revisit.
Start with onboarding. Verify the account type (checking versus savings) before the first debit, use micro-deposit or instant account verification rather than trusting a typed-in number, and choose the correct SEC code for the transaction. Using a corporate code (CCD) on a consumer account, or vice versa, is precisely what triggers an R05.
Authorization capture is where most exposure actually lives. For WEB, TEL, PPD, and CCD transactions, record more than a checkbox: capture the IP address, timestamp, session identifier, and the exact authorization language the customer saw. For recurring ACH authorization specifically, disclose the schedule, amount (or how it will be calculated), and cancellation method in plain language, since ambiguity here is what NACHA consultants point to as the single biggest driver of unauthorized-return disputes.
Monitoring closes the loop:
- Track your return rate monthly and flag anything trending toward NACHA’s enforcement thresholds before your ODFI flags it for you.
- Categorize returns by code, not just by count, so you can see whether the problem is data entry, fraud, or a broken renewal flow.
- Escalate to your ODFI proactively if unauthorized-return codes cluster around a specific product, SEC code, or acquisition channel.
- Review authorization language annually against current NACHA operating rules, since the rules do get updated.
Pro Tip: A tool like Davincipay can help track return patterns and flag SEC code mismatches during onboarding, which catches the R05-style errors before they ever reach a customer’s bank.
Where to Verify NACHA Rules and Return Code Definitions
- Start with the Return Reason Code Guide for the definitive text on any individual code.
- Use RMAG Originator Essentials for retention rules, authorization content requirements, and compliance obligations.
- Reference the WEB proof of authorization guidance specifically for online debit authorization evidence.
- Onboarding teams should read the SEC code section first; compliance teams handling a dispute should start with RMAG Originator Essentials.
Why Most Merchants Treat Return Codes Backward
Most merchant guidance treats return codes as a fire to put out. That’s backward. A return code is a diagnostic result, and the merchants who actually reduce their return rate are the ones who audit codes monthly by category instead of firefighting one dispute at a time.
The conventional advice, “just resubmit and hope,” works fine for a stray R01 and fails badly for anything in the unauthorized bucket. If you’re seeing repeat R05s, that’s not a customer problem. That’s an onboarding problem, specifically a wrong SEC code getting assigned somewhere upstream. If you’re seeing repeat R10s or R29s, that’s an authorization language problem, not a fraud problem, in most cases.

Prioritize your evidence file before you prioritize your dispute count. A thin authorization record turns a routine R11 into a costly, drawn-out dispute. A solid one, timestamped, IP-linked, plainly worded, resolves most challenges before they escalate. For high-risk merchants specifically, that evidence discipline is what keeps your processing relationship intact when volume climbs and scrutiny climbs with it. If your current setup can’t produce that evidence on demand, that’s the gap to close first, not the next feature to add.
Merchants who need that infrastructure built in from the start, rather than bolted on after a return-rate warning, can apply for a Davincipay merchant account or review how Davincipay supports high-risk ACH processing across regulated verticals.
— Peter
.png)

.webp)
