ACH return codes: Full R01 to R85 list and what to do

- What are ACH return codes?
- How do ACH return codes work?
- Why ACH payments get returned
- Complete ACH return codes list from R01 to R85
- Most common ACH return codes explained
- Nacha return rate thresholds and compliance
- Which ACH return codes indicate fraud?
- What happens when an ACH payment is returned?
- ACH returns vs. ACH reversals
- Notifications of change vs. ACH return codes
- How to handle ACH returns
- How to prevent ACH returns
- Stop bad payment data from turning into ACH returns with Ramp
AI Summary
ACH return codes are three-character codes, an "R" plus two digits, that the receiving bank sends back to explain why an ACH payment failed. Each one also tells you what to do next.
For example, an R01 means the account didn't have enough funds, and the bank has 2 banking days after settlement to send it back. You can retry an R01, but an R02 (closed account) needs new bank details first.
ACH return codes are standardized error messages that explain exactly why an ACH payment failed, whether due to insufficient funds, a closed account, or invalid account details. Understanding these codes helps your accounts payable team identify patterns, resolve failures faster, and improve transaction success rates.
What are ACH return codes?
ACH return codes, also called ACH return reason codes, are three-character error messages generated when an ACH transaction fails.
Each code begins with the letter "R" followed by a 2-digit number. For example, R01 is the ACH return code for insufficient funds, and R04 is the code for an invalid account number.
These codes apply to both ACH withdrawal and ACH credit transactions. They provide a clear explanation for the failure, making it easier for you to diagnose and resolve payment issues.
ACH return codes are used by banks, financial institutions, businesses, and finance professionals. Understanding what they're for helps you remain compliant with the rules around ACH payments and keep payment processing efficient.
How do ACH return codes work?
When an ACH payment fails, the receiving depository financial institution (RDFI) assigns a return code explaining the reason. This code is sent to the originating depository financial institution (ODFI), which then relays the information to you.
The RDFI is the bank or financial institution receiving the ACH payment. It can assign an ACH return reason code if the payment doesn't meet certain criteria or there's some other issue that prevents it from accepting the payment.
The ODFI is the bank or financial institution sending the ACH payment. If it feels a payment return was improper, it can assign dishonored return codes to challenge it.
There are two key timeframes to know, and both run on top of how long ACH transfers take to settle:
- Two banking days: The RDFI must process standard returns such as R01, R02, R03, and R04 within 2 banking days of the settlement date.
- Sixty calendar days: Unauthorized returns to consumer accounts, such as R05, R07, R10, and R11, can come back up to 60 calendar days after the settlement date.
When a payment receives an ACH return code, resolve it quickly. Delays affect your cash flow and can push you closer to Nacha's enforcement thresholds.
How are ACH return codes assigned?
Banks assign ACH return reason codes based on specific criteria, such as a sending account having insufficient funds to complete the transaction, or the receiving account having been closed. Incorrect payment information, from the account number to the dollar amount, may also trigger ACH return codes.
Nacha, the organization that writes the rules for the ACH Network, oversees this process, ensuring consistency in return codes across the ACH network. It also standardizes codes, which makes it easier to both issue and respond to them. Some codes are more common for consumer transactions, while others pertain to business transactions.
Why ACH payments get returned
ACH payments can be returned for several reasons, which generally fall into five main categories:
Insufficient funds and financial issues
These returns happen due to ACH NSF (non-sufficient funds) situations, uncollected funds, or other account balance problems. They're often temporary, and you may be able to retry the payment after a few days. Codes like R01 and R09 fall into this category.
Account problems and closures
These returns occur because of closed accounts, invalid account numbers, incorrect DFI account number errors, or accounts that have been sold to another financial institution. Codes like R02, R03, R04, and R12 are common examples.
Authorization and fraud concerns
This category includes unauthorized debits, revoked authorizations, and customer disputes. There's an important distinction between consumer authorization issues (like R10) and corporate authorization issues (like R29), which have different rules and timeframes. Proper ACH authorization forms help prevent these returns.
Administrative and formatting errors
These returns are caused by technical mistakes such as invalid routing numbers, duplicate entries, mandatory field errors in the payment file, or issues with file record edit criteria. Codes like R13, R17, R24, and R26 fall here.
Timing and processing constraints
These returns relate to processing rules, such as improper effective entry dates, untimely returns by the RDFI, or attempts to transact with a non-transaction account. Codes like R18 and R20 are typical examples.
Complete ACH return codes list from R01 to R85
Return codes run from R01 to R85, though not every number is assigned. These tables group Nacha return codes by number so you can scan to yours, with return windows drawn from CBS Bank's quick reference guide to Nacha return reason codes and time frames. Unassigned numbers, such as R48, R49, R54–R60, R63–R66, R78, and R79, are left out.
Some codes never come from the receiving bank. The ACH Operator uses codes like R13 and R25 to reject entries it can't process, federal agencies use R40–R47 for enrollment entries, and banks use R61–R77 to dishonor or contest a return.
R01 to R10 Nacha return codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R01 | Insufficient Funds | The available balance can't cover the debit | 2 banking days |
| R02 | Account Closed | The customer or the bank closed a previously active account | 2 banking days |
| R03 | No Account/Unable to Locate Account | The account number doesn't match the named person or an existing account | 2 banking days |
| R04 | Invalid Account Number Structure | The account number fails check digit or digit-count validation | 2 banking days |
| R05 | Unauthorized Debit to Consumer Account Using Corporate SEC Code | A business (CCD/CTX) entry was used to debit a consumer account | 60 calendar days |
| R06 | Returned per ODFI's Request | The originating bank asked the receiving bank to return an erroneous entry | Not defined; set by the ODFI and RDFI |
| R07 | Authorization Revoked by Customer | The consumer revoked an authorization they previously gave the originator | 60 calendar days |
| R08 | Payment Stopped | The account holder placed a stop payment on the debit | 2 banking days |
| R09 | Uncollected Funds | The ledger balance covers the debit, but the available balance doesn't | 2 banking days |
| R10 | Customer Advises Originator Is Not Known and/or Not Authorized | The account holder doesn't know the originator or never authorized the debit | 60 calendar days |
All payments in one place? Check.
Handle all domestic and global vendor payments on a single platform—by check, card, ACH, or international wire.

R11 to R20 return reason codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R11 | Customer Advises Entry Not in Accordance with the Terms of the Authorization | An authorization exists, but the amount, date, or other terms are wrong | 60 calendar days |
| R12 | Account Sold to Another DFI | The account moved to another financial institution, often after a merger | 2 banking days |
| R13 | Invalid ACH Routing Number | The routing number isn't a valid ACH routing number | Not applicable (ACH Operator reject) |
| R14 | Representative Payee Deceased or Unable to Continue in That Capacity | The person receiving payments on a beneficiary's behalf died or can't serve | 2 banking days |
| R15 | Beneficiary or Account Holder (Other Than a Representative Payee) Deceased | The beneficiary or account holder died | 2 banking days |
| R16 | Account Frozen/Entry Returned per OFAC Instruction | The bank or a legal action restricted the account, or OFAC ordered the return | 2 banking days |
| R17 | File Record Edit Criteria | The bank can't process a field, or suspects invalid account details were sent under questionable circumstances | 2 banking days |
| R18 | Improper Effective Entry Date | The effective entry date falls outside the allowed processing window | Not applicable (ACH Operator reject) |
| R19 | Amount Field Error | The amount is non-numeric, zero when it shouldn't be, or over a limit | Not applicable (ACH Operator reject) |
| R20 | Non-Transaction Account | The entry went to a non-transaction account where activity is prohibited or limited | 2 banking days |
R21 to R30 ACH reject codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R21 | Invalid Company Identification | The company ID in the entry isn't valid | 2 banking days |
| R22 | Invalid Individual ID Number | The receiver says the ID number used to identify them is wrong | 2 banking days |
| R23 | Credit Entry Refused by Receiver | The receiver declined a credit, such as an overpayment or a payment from an unknown originator | 2 banking days after the bank learns of the refusal |
| R24 | Duplicate Entry | The trace number, date, amount, or other data matches another entry | 2 banking days |
| R25 | Addenda Error | The addenda record indicator, type code, or sequence number is wrong | Not applicable (ACH Operator reject) |
| R26 | Mandatory Field Error | A mandatory field is missing or contains bad data | Not applicable (ACH Operator reject) |
| R27 | Trace Number Error | The original entry trace number is missing or doesn't match | Not applicable (ACH Operator reject) |
| R28 | Routing Number Check Digit Error | The check digit for the routing number is invalid | Not applicable (ACH Operator reject) |
| R29 | Corporate Customer Advises Not Authorized | A business account holder says it didn't authorize the debit | 2 banking days |
| R30 | RDFI Not Participant in Check Truncation Program | The receiving bank doesn't take part in check truncation | Not applicable (ACH Operator reject) |
R31 to R40 return codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R31 | Permissible Return Entry (CCD and CTX Only) | The ODFI agreed to accept a business entry return after the 2-banking-day deadline | Not defined; set by the ODFI and RDFI |
| R32 | RDFI Non-Settlement | The receiving bank can't settle the entry | Not applicable (ACH Operator reject) |
| R33 | Return of XCK Entry | The receiving bank is returning a destroyed check (XCK) entry | 60 calendar days |
| R34 | Limited Participation DFI | A federal or state supervisor limited the receiving bank's participation | Not applicable (ACH Operator reject) |
| R35 | Return of Improper Debit Entry | A debit was sent where debits aren't allowed, such as a loan account | Not applicable (ACH Operator reject) |
| R36 | Return of Improper Credit Entry | A credit was sent on an entry type that doesn't allow credits, such as ARC or BOC | Not applicable (ACH Operator reject) |
| R37 | Source Document Presented for Payment | The check behind an ARC, BOC, or POP entry was also presented for payment | 60 calendar days |
| R38 | Stop Payment on Source Document | A stop payment was placed on the check behind an ARC or BOC entry | 60 calendar days |
| R39 | Improper Source Document/Source Document Presented for Payment | The source document is improper, or both the entry and the check posted | 2 banking days |
| R40 | Return of ENR Entry by Federal Government Agency | The federal agency doesn't participate in automated enrollment | Not applicable (federal agency enrollment return) |
R41 to R50 return codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R41 | Invalid Transaction Code | The enrollment entry's transaction code doesn't conform to Nacha formats | Not applicable (federal agency enrollment return) |
| R42 | Routing Number/Check Digit Error | The enrollment entry's routing number or check digit is invalid | Not applicable (federal agency enrollment return) |
| R43 | Invalid DFI Account Number | The account number is missing, exceeds 17 positions, or has invalid characters | Not applicable (federal agency enrollment return) |
| R44 | Invalid Individual ID Number/Identification Number | The ID number doesn't match the agency's records | Not applicable (federal agency enrollment return) |
| R45 | Invalid Individual Name/Company Name | The name doesn't match the agency's records | Not applicable (federal agency enrollment return) |
| R46 | Invalid Representative Payee Indicator | The representative payee indicator is missing or inconsistent with agency records | Not applicable (federal agency enrollment return) |
| R47 | Duplicate Enrollment | The agency received duplicate enrollment entries from the same bank | Not applicable (federal agency enrollment return) |
| R50 | State Law Affecting RCK Acceptance | State law or the bank's customer agreement doesn't allow electronic presentment of the check | 2 banking days |
R51 to R69 return codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R51 | Item Related to RCK Entry Is Ineligible or RCK Entry Is Improper | Notice wasn't provided, the signature wasn't genuine, or the check was altered | 60 calendar days |
| R52 | Stop Payment on Item Related to RCK Entry | A stop payment was placed on the check behind the RCK entry | 60 calendar days |
| R53 | Item and RCK Entry Presented for Payment | Both the check and the RCK entry were presented for payment | 60 calendar days |
| R61 | Misrouted Return | The receiving bank put the wrong routing number on the return | Dishonored return deadline |
| R62 | Return of Erroneous or Reversing Debit | A reversal left the receiver with an unintended credit | Dishonored return deadline |
| R67 | Duplicate Return | The ODFI received more than one return for the same entry | Dishonored return deadline |
| R68 | Untimely Return | The return wasn't sent within the time frame the rules allow | Dishonored return deadline |
| R69 | Field Error(s) | One or more fields in the return are incorrect | Dishonored return deadline |
R70 to R85 return codes
| Code | Description | Common cause | Return window |
|---|---|---|---|
| R70 | Permissible Return Entry Not Accepted/Return Not Requested by ODFI | The ODFI didn't agree to or request an R06 or R31 return | Dishonored return deadline |
| R71 | Misrouted Dishonored Return | The ODFI put the wrong routing number on a dishonored return | Contested dishonor deadline |
| R72 | Untimely Dishonored Return | The dishonored return wasn't sent within the designated time frame | Contested dishonor deadline |
| R73 | Timely Original Return | The receiving bank certifies its original return was on time | Contested dishonor deadline |
| R74 | Corrected Return | The receiving bank is fixing a return dishonored for field errors (R69) | Contested dishonor deadline |
| R75 | Return Is Not a Duplicate | The receiving bank contests an R67 duplicate-return dishonor | Contested dishonor deadline |
| R76 | No Errors Found | The receiving bank says the original return didn't contain the cited errors | Contested dishonor deadline |
| R77 | Non-Acceptance of R62 Dishonored Return | The receiving bank returned both entries or can't recover the funds | Contested dishonor deadline |
| R80 | IAT Entry Coding Error | An international (IAT) entry has an invalid country, currency, or other code | 2 banking days |
| R81 | Non-Participant in IAT Program | The gateway has no agreement to transmit IAT entries | 2 banking days |
| R82 | Invalid Foreign Receiving DFI Identification | The foreign bank identifier is invalid | 2 banking days |
| R83 | Foreign Receiving DFI Unable to Settle | The foreign payment system had a settlement problem | 2 banking days |
| R84 | Entry Not Processed by Gateway | The gateway declined to process the entry due to risk or system limits | 2 banking days |
| R85 | Incorrectly Coded Outbound International Payment | An outbound international payment was sent without the IAT code the gateway needs for OFAC compliance | 2 banking days |
Most common ACH return codes explained
Finance teams most frequently encounter a specific set of codes. Here's what triggers each one, how long the bank has to send it back, and what to do next.
R01 ACH return code for insufficient funds
The account lacks adequate funds to cover the debit. This is the ACH equivalent of a declined transaction and is often a temporary issue. You may be able to retry the payment after a few days once the account holder has replenished their balance.
- What to do: Confirm with the account holder that funds are available, then reinitiate. Contact the account holder if the issue recurs.
- Retry eligible? Yes. Nacha lets you reinitiate an R01 or R09 return up to two times within 180 days of the original settlement date, labeled "RETRY PYMT"
- Initiated by: RDFI
- Return window: 2 banking days
R02 ACH return code for a closed account
The account no longer exists. Contact the customer or vendor immediately to get updated banking information. Don't retry the payment to this account; it will fail again.
- What to do: Contact the payee to collect new bank account details. Update your records before resubmitting.
- Retry eligible? No. The account is permanently closed.
- Initiated by: RDFI
- Return window: 2 banking days
R03 ACH return code for no account or unable to locate account
The account number provided doesn't match the records at the receiving bank. Verify the account and routing numbers with the account holder before attempting the payment again. This is one of the most common ACH return codes and typically indicates a data entry error during account setup.
- What to do: Verify routing and account numbers with the account holder. Check for transposed digits or outdated information.
- Retry eligible? No. Retrying with the same incorrect details will produce the same result.
- Initiated by: RDFI
- Return window: 2 banking days
R04 ACH return code for an invalid account number
The account number's structure is incorrect. It may have the wrong number of digits or an invalid format. Collect the corrected account details from the customer before resubmitting the payment.
- What to do: Request corrected account information from the payee. Validate the format before resubmitting.
- Retry eligible? No. The account number format itself is invalid.
- Initiated by: RDFI
- Return window: 2 banking days
R05 ACH return code for an unauthorized debit to a consumer account
A debit was made to a consumer account without proper authorization. R05 specifically means a business entry type, a corporate Standard Entry Class (SEC) code such as CCD, was used to debit a consumer account. This is a serious compliance issue that can trigger Nacha enforcement if your unauthorized return rate exceeds 0.5%. Review your authorization process immediately.
- What to do: Cease all debits to this account and investigate your authorization records. If authorization documentation is insufficient, update your process.
- Retry eligible? No. You can't retry without obtaining proper authorization.
- Initiated by: RDFI
- Return window: 60 calendar days
R07 ACH return code for authorization revoked by customer
The customer has officially canceled their authorization for this specific recurring debit. You must stop all future debits and contact the customer to discuss the cancellation. Retrying this payment without new authorization violates Nacha rules.
- What to do: Stop all future debits to this account immediately. Contact the customer to discuss alternatives or obtain new authorization.
- Retry eligible? No. Retrying without new authorization is a Nacha violation.
- Initiated by: RDFI
- Return window: 60 calendar days
R08 ACH return code for a stopped payment
The account holder has instructed their bank to place a stop payment on this specific transaction. Reach out to the customer to understand why and resolve the underlying issue before attempting another payment.
- What to do: Contact the account holder to understand the reason for the stop payment. Resolve the underlying dispute before initiating a new transaction.
- Retry eligible? No. The stop payment is a deliberate action by the account holder.
- Initiated by: RDFI
- Return window: 2 banking days
R09 ACH return code for uncollected funds
Funds exist in the account but aren't yet available for withdrawal (e.g., a recent deposit hasn't cleared). This is similar to R01 but specifically relates to uncollected rather than insufficient funds.
- What to do: Confirm with the account holder that funds are available, then reinitiate.
- Retry eligible? Yes. Like R01, you can reinitiate up to two times within 180 days of the original settlement date.
- Initiated by: RDFI
- Return window: 2 banking days
R10 ACH return code for originator not known or not authorized
The customer says they don't recognize the company taking the payment, or never gave them permission to debit their account at all. This is different from a billing mistake. It means no valid authorization exists. Investigate immediately and have your authorization records ready.
Note: Nacha narrowed R10's definition in a rule that took effect in April 2020. It used to be a catch-all for anything unauthorized, including simple errors like the wrong amount or date. Now those billing-error cases go through R11 instead. R10 is reserved specifically for cases where the customer doesn't know the originator, has no relationship with them, or never authorized them to debit the account.
- What to do: Pull your authorization records for this customer and prepare documentation. If authorization is missing, cease all debits and update your process.
- Retry eligible? No. Retrying without valid authorization is a serious Nacha violation.
- Initiated by: RDFI
- Return window: 60 calendar days for consumer accounts
R11 ACH return code for an entry not in accordance with the authorization
The customer authorized this payment, but something about it didn't match what they agreed to, usually the wrong amount or the wrong date. Review the original authorization and the entry details, then contact the payer to sort out the discrepancy.
Note: Nacha changed what R11 means in a rule that took effect in April 2020. It used to stand for "Check Truncation Entry Return" (used when a converted paper check was rejected). It now means "Entry Not in Accordance with the Terms of the Authorization" and gives banks up to 60 calendar days to return it. This longer window gives originators time to fix genuine billing errors without needing a new authorization from the customer.
- What to do: Compare the entry against the original authorization to confirm what went wrong, then contact the payer to resolve it.
- Retry eligible? Yes. Once the error is corrected (e.g., the right amount or date), you can submit a new entry within 60 days of the return without getting a new authorization.
- Initiated by: RDFI
- Return window: 60 calendar days
R16 ACH return code for a frozen account
The account has been frozen by the bank or a legal order, preventing any transactions. Contact the account holder to understand the situation and obtain an alternative payment method or account details.
- What to do: Reach out to the account holder for alternative payment details. Don't attempt further transactions to this account until the freeze is resolved.
- Retry eligible? No. The freeze must be lifted by the bank or court before the account can transact.
- Initiated by: RDFI
- Return window: 2 banking days
R20 ACH return code for a non-transaction account
The entry went to a non-transaction account, an account where Regulation D or the bank's policies prohibit or limit transactions. Ask the payee for a checking account or another account that accepts ACH.
- What to do: Collect a different account that accepts ACH entries.
- Retry eligible? No. The same account will reject the entry again.
- Initiated by: RDFI
- Return window: 2 banking days
R23 ACH return code for a credit entry refused by the receiver
The receiver declined an ACH credit, for example because it was an overpayment, the wrong amount, or from an originator they don't recognize. Confirm the amount and account details with the payee before sending the payment again.
- What to do: Confirm the correct amount and destination with the payee.
- Retry eligible? Only after you resolve the reason for the refusal.
- Initiated by: RDFI
- Return window: 2 banking days after the RDFI learns of the refusal
R29 ACH return code for corporate customer advises not authorized
This is similar to an R10 return but applies specifically to corporate accounts. The company is claiming the debit was not authorized. Review your service agreements and contact their accounts payable team to resolve the dispute.
- What to do: Review your service agreement and authorization documentation with this corporate customer. Contact their AP team to resolve the dispute.
- Retry eligible? No. Retrying without resolving the authorization dispute risks Nacha enforcement.
- Initiated by: RDFI
- Return window: 2 banking days (R29 applies to business accounts, so it doesn't get the 60-day consumer window)
Nacha return rate thresholds and compliance
Nacha sets three return rate thresholds measured on a rolling 60-day basis. Crossing the 3% administrative or 15% overall level triggers a Nacha review of your origination practices. Crossing the 0.5% unauthorized threshold puts you in Nacha's enforcement process, which can lead to fines.
If you process a high volume of ACH transactions, understanding these thresholds is critical to maintaining your origination privileges. For the full rule set behind these numbers, see Ramp's guide to Nacha operating rules.
Here's how the math works for the unauthorized rate:
Unauthorized return rate = Unauthorized debit returns / Total ACH debits originated
For example, say you originate 10,000 ACH debits over 60 days and 40 come back as unauthorized returns:
Unauthorized return rate = 40 / 10,000 = 0.4%
That's under the 0.5% threshold, but close enough to investigate.
Unauthorized return threshold (0.5%)
- Applies to codes R05, R07, R10, R11, R29, and R51
- These indicate the account holder disputes authorizing the transaction.
- Exceeding 0.5% triggers Nacha's enforcement process, which can lead to fines.
- Most serious threshold; signals potential fraud or poor authorization practices
Administrative return threshold (3%)
- Applies to codes R02, R03, and R04
- Indicates data quality issues: wrong account numbers, closed accounts, or unlocatable accounts
- Exceeding 3% signals poor data hygiene in your payment operations.
- Often fixable through better account verification during onboarding
Overall return rate threshold (15%)
- Applies to all ACH debit return codes combined
- Broadest threshold covering every return reason
- Typically only triggered by businesses with systemic payment processing issues
- Exceeding this level triggers a Nacha review of your origination practices.
How to monitor your return rates
- Calculation: Total returns divided by total originations over a rolling 60-day window
- Dashboards: Most payment processors provide real-time return rate monitoring.
- Segmentation: Track rates by return code category (unauthorized vs. administrative vs. other) to pinpoint problem areas.
- Internal alerts: Set warning thresholds below Nacha's limits (e.g., alert at 0.3% unauthorized, 2% administrative) so you can course-correct before triggering enforcement.
Which ACH return codes indicate fraud?
Some ACH return codes indicate routine errors, while others signal potential fraud or unauthorized activity requiring different handling and compliance steps. Knowing which codes are which is the first step in preventing ACH fraud.
Codes that indicate unauthorized activity
Four codes signal a disputed authorization: R07 (Authorization Revoked by Customer), R10 (Customer Advises Originator Is Not Known/Not Authorized), R11 (Entry Not In Accordance with the Terms of the Authorization), and R29 (Corporate Customer Advises Not Authorized).
These codes, along with R05 and R51, count toward Nacha's 0.5% unauthorized return rate threshold. Exceeding that threshold triggers Nacha's enforcement process.
The difference between R07, R10, R11, and R29
- R07: The consumer previously authorized the debit but has since revoked authorization (e.g., canceled subscription). Prior authorization existed at some point.
- R10: The customer says they don't recognize the company taking the payment, or never gave them permission to debit their account at all. This is the strongest dispute type and a potential fraud indicator.
- R11: The customer says the payment doesn't match the original authorization. This is also a potential fraud indicator.
- R29: Same as R10 but for corporate/business accounts. The company claims no authorization was ever given.
The key distinction: R07 implies prior authorization that was later revoked. R11 also implies prior authorization. However, R10 and R29 imply no authorization ever existed, making them more serious from a compliance perspective.
Written Statement of Unauthorized Debit
When a consumer disputes an ACH debit as unauthorized (R10, R11), the RDFI must obtain a Written Statement of Unauthorized Debit (WSUD) before processing the return. This is a signed statement from the account holder confirming they did not authorize the transaction.
For businesses receiving WSUDs: Treat each one as a serious compliance signal requiring investigation. Multiple WSUDs may indicate a process failure in how you capture and store customer authorizations.
How Nacha's 2026 fraud monitoring rules affect returns
Nacha's 2026 rules require every non-consumer originator, regardless of volume, to run documented, risk-based processes to identify ACH entries initiated due to fraud. Phase 1 took effect Mar 20, 2026, and Phase 2 followed on Jun 22, 2026.
Unauthorized return codes are one of the clearest signals your fraud monitoring should watch. For the phase-by-phase requirements, see Ramp's breakdown of the 2026 Nacha rule changes.
What happens when an ACH payment is returned?
When a payment is returned, the RDFI sends an ACH return file back to the ODFI, which then notifies you. This notification explains why the payment failed via the return code.
This process is distinct from an ACH reversal, which is initiated by the originator to correct an error. Depending on your payment processor, you may also be charged a fee for each returned transaction.
If you regularly experience failed ACH payments, the return codes tell you exactly why. Resolving failed ACH payments costs time, puts you at risk of paying invoices late, and costs money. When troubleshooting payment issues, your bank can use the ACH trace number to locate and investigate the transaction within the ACH network.
ACH returns vs. ACH reversals
ACH returns and ACH reversals are similar-sounding terms with very different meanings. Understanding the difference helps you manage transactions more effectively and avoid confusion.
For example, if you make an ACH payment by mistake and want to reverse it, reading about ACH returns won't be helpful. Likewise, if you experience an ACH payment failure, researching ACH reversals will only cause confusion.
| Criteria | ACH return | ACH reversal |
|---|---|---|
| Definition | A failed payment when an ACH transaction can't be processed successfully | A request to reverse a completed ACH payment due to an error |
| Initiator | The receiving bank (RDFI) when an issue is detected | The originator or its bank (ODFI) |
| Common reasons | Insufficient funds, invalid account number | Duplicate payments, incorrect recipient, incorrect payment amount |
| Processing time | 2–60 days, depending on return code | Must reach the receiving bank within 5 banking days of the original settlement date |
Notifications of change vs. ACH return codes
A notification of change (NOC) isn't a failed payment. The payment posted, but the receiving bank is telling you that a detail, like the account or routing number, needs updating before your next entry.
NOC codes start with "C," while return codes start with "R." Common examples include C01 (incorrect DFI account number), C02 (incorrect routing number), and C03 (incorrect routing number and DFI account number), all listed in CBS Bank's Nacha code reference. Under Nacha rules, you must make the requested change within 6 banking days of receiving the NOC or before your next entry, whichever is later.
| Criteria | Notification of change (NOC) | ACH return |
|---|---|---|
| What it means | The payment went through, but a detail needs correcting | The payment failed and is coming back |
| Did money move? | Yes | No, the funds are returned |
| Code prefix | C (e.g., C01, C02) | R (e.g., R01, R03) |
| What you do | Update the record before future entries | Fix the cause, then reinitiate only if the code allows it |
How to handle ACH returns
Responding to returns requires quick, practical action. Most require resolution within 2 banking days, so speed matters.
1. Verify bank account information
Cross-check the routing number, account number, and account type against the information provided by the customer or vendor. Look for common errors such as typos or transposed digits.
2. Contact the customer or vendor
Reach out promptly to explain that the payment was returned. Be specific about the return code and what you need to resolve it, such as a new account number or confirmation of authorization.
3. Retry the payment when appropriate
Only certain return codes are appropriate for a retry. Codes like R01 (insufficient funds) or R09 (uncollected funds) may resolve themselves in a few days. Never retry payments to closed accounts (R02), with invalid account numbers (R04), or after unauthorized returns (R05, R07, R10, R29). An R11 can be resubmitted only after you correct the error that caused it.
4. Document and track return patterns
Keep detailed records of all returns, including the code, customer, and date. High return rates can negatively affect your ability to process ACH payments and may indicate deeper issues with your data collection or authorization processes.
Track your return rates by category. If unauthorized returns (R05, R07, R10, R11, R29, R51) exceed 0.5% or administrative returns (R02, R03, R04) exceed 3% over a 60-day window, you risk Nacha enforcement action.
How to prevent ACH returns
Taking proactive steps significantly reduces return rates and protects your ACH processing privileges.
1. Validate account details before sending payments
Use account verification services to confirm that routing and account numbers are valid and that the account is active before you initiate any transactions. This catches errors like R03 and R04 before they happen.
Micro-deposit verification (sending two small deposits for the account holder to confirm) is one option, though it takes a few days. Instant account verification services connect directly to the account holder's bank to confirm details in real time, making them a faster alternative for high-volume payment operations.
2. Use prenote transactions for new accounts
Send a zero-dollar test transaction (a "prenote") to verify new account information before processing actual payments. This confirms the account details are correct without moving any money, a simple step that helps prevent returns.
Nacha requires you to wait 3 banking days after a prenote before sending live entries, so build this timeline into your vendor onboarding process. For new vendors or customers, initiate the prenote as soon as you collect banking details rather than waiting until the first payment is due.
3. Maintain clear authorization records
Strong authorization documentation prevents the most damaging returns: R05, R07, R10, R11, R29, and R51.
- Store signed authorization forms or electronic consent records for every customer.
- Use Nacha-compliant authorization language that clearly states the amount, frequency, and terms of the debit.
- Build a process for handling revocation requests promptly; when a customer revokes authorization, stop debits immediately.
- Audit authorization records quarterly to ensure documentation exists for every active recurring debit.
4. Set up payment alerts and monitoring
Configure notifications for returns so your team can respond quickly. Monitor your return rates by code type to identify trends, such as a high number of R04s indicating a problem with your data entry process.
Beyond individual return alerts, track your aggregate return rates against Nacha's thresholds (0.5% unauthorized, 3% administrative, 15% overall). Set internal warning alerts below these limits so you can take corrective action before triggering enforcement.
5. Automate payment approval workflows
Implement internal controls and approval processes that catch errors before payments are sent. Automation reduces the manual entry mistakes that often lead to administrative returns like R13, R17, and R26. When you capture invoices with OCR instead of rekeying them, you remove the typos behind R03 and R04 returns; Ramp Bill Pay reads invoice headers and line items with 99% OCR accuracy.
Stop bad payment data from turning into ACH returns with Ramp
Many ACH returns start in AP: a vendor's account number gets rekeyed wrong, bank details change without anyone noticing, or a payment goes out before anyone checks it. You can stop those errors before they reach the ACH Network by taking manual steps out of your payables workflow with Ramp Bill Pay.
With Bill Pay, you process bills 2.4x faster with 86% fewer clicks than legacy software. AI invoice processing captures and auto-codes every bill, so you're not retyping the details behind R03 and R04 returns.
Approval workflows route each payment by your own custom rules, with AP Agent recommending approvals so the right people review vendor changes before money moves. When a bill is ready, you pay it by ACH, check, card, or wire from the same place.
Two-way ERP sync keeps your books aligned with what actually went out. Try an interactive demo to see how Ramp Bill Pay keeps payment errors out of your AP workflow.
This post includes general information about ACH payments. For help with ACH functionality specific to Ramp, visit Ramp Support for more details.

FAQs
Most ACH returns are processed within 2 banking days of settlement. However, unauthorized returns to consumer accounts (R05, R07, R10, R11) can come back up to 60 calendar days after settlement; R29, for business accounts, follows the 2-banking-day window.
It depends on the return code. R01 (Insufficient Funds) and R09 (Uncollected Funds) are retry-eligible, and you can reinitiate up to two times within 180 days of the original settlement date. Codes like R02 (Account Closed), R04 (Invalid Account Number), and R10 (Not Authorized) aren't retry-eligible and require updated information or alternative payment arrangements.
R01 (Insufficient Funds) is one of the most common ACH return codes. It means the account holder didn't have enough available balance to cover the debit, and you can reinitiate it within Nacha's retry limits.
An ACH return is initiated by the receiving bank (RDFI) when a payment can't be processed for reasons like insufficient funds or a closed account. An ACH reversal is initiated by the originator to correct an erroneous transaction, such as a duplicate payment or wrong amount.
Crossing the 3% administrative or 15% overall level triggers a Nacha review of your origination practices. Crossing the 0.5% unauthorized threshold can lead to Nacha enforcement, including fines.
“I want to trust the people at our sites to buy what they need, when they need it. With everything in Ramp, they have one place to go and one set of rules to follow. And I can see how all of their spending ties back to the contracts that fund their work.”
Marina Peterson
CFO, Wu Yee Children’s Services

“I assumed I would have to choose between speed and control. What I found is that you can have both. A well-designed system takes friction out, for the finance function and for everyone else.”
Justin Webster
CFO, Denver Broncos

“A well-run district should not have to choose between getting work done at the school site and keeping control of the dollars behind it. We're not hiring more people to do more jobs, so we have to be smarter about the process. With Ramp, the purchase, the receipt, and the record stay together from the start. ”
Nick Brizeno
Director of Purchasing, San Marcos Unified School District

“In senior living, scale only works if the communities still feel personal. We needed the back office to carry more of the complexity, not the people serving residents. Ramp helped us build that infrastructure, so the experience in the community could stay human.”
Ryan Cole
CFO, Agemark Senior Living

“AI is moving faster than the finance context around it. Prices change, models change, and the value is not always obvious from an invoice. We needed enough detail to know which bets deserved more investment — and which ones did not.”
Greg Cooley
Controller, AngelList

“Invoices, cards, tokens. The categories change but the principle doesn't: know where the money is going, remove the work around it, and make sure the spend is worth it.”
Maciej Mylik. Finance
ElevenLabs

“We weren’t trying to retrofit an old finance system. We had a blank canvas, and Ramp gave us the foundation to build a global finance function of the future.”
Justin Dourado
Director of Finance, Othership

“There's just no surprises anymore. No more waiting two months to find out how a job did. We know how it's doing as it's happening.”
Erich Kuss
Financial Systems Manager, Infinity Home Services



