
- What are ACH return codes?
- How do ACH return codes work?
- Why understanding ACH return codes is important for your business
- Why ACH payments get returned
- Complete ACH return codes list from R01 to R85
- Most common ACH return codes explained
- What happens when an ACH payment is returned?
- ACH returns vs. ACH reversals
- How to handle ACH returns
- How to prevent ACH returns
- Automate your AP with Ramp

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. These standardized codes provide a clear explanation for the failure, making it easier for your business to diagnose and resolve payment issues.
ACH return codes can be used by banks, financial institutions, businesses, and finance professionals. Understanding what they're for can help 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 the business that initiated the transaction.
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:
- 2 banking days: The RDFI must process standard returns such as R01, R02, R03, and R04 within 2 banking days of the settlement date.
- 60 calendar days: Returns for unauthorized or revoked authorization transactions, such as R05, R07, and R10, can occur up to 60 calendar days after the original transaction.
When a payment receives an ACH return code, take action to resolve the issue as quickly as possible. Delays can negatively affect your cash flow, which is why having ACH return code information at your fingertips is essential.
How are ACH return codes assigned?
Banks assign ACH return reason codes based on certain criteria—for example, if a sending account has insufficient funds to complete the transaction, or the receiving account has been closed. Incorrect payment information, from the account number to the dollar amount, may also trigger ACH return codes.
The regulatory body Nacha oversees this process, ensuring consistency in return codes across the ACH network. They also standardize 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 understanding ACH return codes is important for your business
Learning at least some of the most common ACH return codes will help you quickly determine why any issues with your ACH payments have occurred and figure out whether a larger problem needs addressing. By understanding these codes, you'll be able to:
- Identify payment issues: These codes provide a standardized reason for failed transactions so your business can address problems quickly
- Enhance communication: Return codes create transparency between banks and your business, helping resolve issues efficiently and reducing delays
- Improve transaction success rates: By analyzing return codes, your business can detect recurring issues, adjust payment methods, and take proactive steps to reduce failures
- Ensure Nacha compliance: Monitoring return codes helps your business stay within Nacha's 15% return rate threshold, avoiding penalties and maintaining uninterrupted ACH services
Knowing how ACH return codes work and how to respond to them is key to optimizing payment workflows, reducing failed transactions, and ensuring compliance with ACH network rules.
Why ACH payments get returned
ACH payments can be returned for several reasons, which generally fall into five main categories. Understanding these categories makes it easier to diagnose issues before you even look up the specific return code.
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.
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
There are 85 ACH return codes. This comprehensive reference is broken into logical groupings so you can quickly find the code you're looking for.
R01 to R10 Nacha return codes
These are the most frequently encountered ACH return codes. The first four—R01, R02, R03, and R04—may be worth memorizing.
| Code | Description | Common cause |
|---|---|---|
| R01 | Insufficient Funds | The account lacks the funds to cover the debit |
| R02 | Account Closed | The bank account is no longer active |
| R03 | No Account/Unable to Locate | The account number does not match the name or is incorrect |
| R04 | Invalid Account Number | The account number format is incorrect |
| R05 | Unauthorized Debit | A debit was made to a consumer account not authorized for ACH |
| R06 | Returned per ODFI Request | The originating bank requested the return of the entry |
| R07 | Authorization Revoked | The customer has revoked authorization for this payment |
| R08 | Payment Stopped | The customer has placed a stop payment on this transaction |
| R09 | Uncollected Funds | Funds are not yet available in the account to cover the debit |
| R10 | Customer Advises Not Authorized | The customer claims they did not authorize the transaction |
R11 to R20 return reason codes
| Code | Description | Common cause |
|---|---|---|
| R11 | Check Truncation Entry Return | Used to return a check truncation entry |
| R12 | Account Sold | The account has been sold to another financial institution |
| R13 | Invalid ACH Routing Number | The routing number is incorrect or does not exist |
| R14 | Representative Payee Deceased | The representative payee is deceased or unable to act |
| R15 | Beneficiary Deceased | The beneficiary of a government payment is deceased |
| R16 | Account Frozen | The account is frozen due to legal action or bank policy |
| R17 | File Record Edit Criteria | A field in the entry is invalid or not allowed |
| R18 | Improper Effective Entry Date | The effective date for the transaction is invalid |
| R19 | Amount Field Error | The amount field is non-numeric, zero, or exceeds the limit |
| R20 | Non-Transaction Account | The account is not set up for ACH transactions (e.g., some savings accounts) |
All payments in one place? Check.
Handle all domestic and global vendor payments on a single platform—by check, card, ACH, or international wire.

R21 to R30 ACH reject codes
| Code | Description | Common cause |
|---|---|---|
| R21 | Invalid Company Identification | The company ID in the entry is incorrect |
| R22 | Invalid Individual ID Number | The individual ID number is incorrect |
| R23 | Credit Entry Refused by Receiver | The receiver has refused to accept a credit entry |
| R24 | Duplicate Entry | The transaction appears to be a duplicate of a previous one |
| R25 | Addenda Error | The addenda record contains incorrect information |
| R26 | Mandatory Field Error | A required field in the entry is missing or incorrect |
| R27 | Trace Number Error | The trace number is invalid or doesn't match the file |
| R28 | Routing Number Check Digit Error | The check digit for the routing number is invalid |
| R29 | Corporate Customer Advises Not Authorized | A corporate customer claims the debit was not authorized |
| R30 | RDFI Not Participant in Check Truncation | The receiving bank does not participate in the check truncation program |
R31 to R40 return codes
| Code | Description | Common cause |
|---|---|---|
| R31 | Permissible Return Entry | The RDFI is returning a permissible entry (CCD and CTX only) |
| R32 | RDFI Non-Settlement | The RDFI is unable to settle the entry |
| R33 | Return of XCK Entry | Used to return an XCK (destroyed check) entry |
| R34 | Limited Participation DFI | The RDFI's participation in the ACH network is limited |
| R35 | Return of Improper Debit Entry | A debit was sent to an account that only accepts credits |
| R36 | Return of Improper Credit Entry | A credit was sent to an account that only accepts debits |
| R37 | Source Document Presented for Payment | The original check was presented for payment |
| R38 | Stop Payment on Source Document | A stop payment was placed on the original check |
| R39 | Improper Source Document | The source document for an ACH entry is invalid |
| R40 | Return of ENR Entry by Federal Government Agency | A federal agency is returning an Automated Enrollment (ENR) entry |
R41 to R50 return codes
| Code | Description | Common cause |
|---|---|---|
| R41 | Invalid Transaction Code | The transaction code in the entry is invalid for the account type |
| R42 | Routing Number/Check Digit Error | The routing number and check digit are from a non-participant |
| R43 | Invalid DFI Account Number | The account number structure is invalid at the RDFI |
| R44 | Invalid Individual ID Number | The individual ID number is incorrect or missing |
| R45 | Invalid Individual Name/Company Name | The name provided does not match the account holder's name |
| R46 | Invalid Representative Payee Indicator | The representative payee indicator code is invalid |
| R47 | Duplicate Enrollment | The ENR entry is a duplicate of a previous enrollment |
| R50 | State Law Affecting RCK Acceptance | State law prohibits the acceptance of a Re-presented Check (RCK) entry |
R51 to R69 return codes
| Code | Description | Common cause |
|---|---|---|
| R51 | Item is Ineligible, Notice Not Provided | An RCK entry is ineligible (e.g., notice was not provided) |
| R52 | Stop Payment on Item | A stop payment was placed on the original check (RCK) |
| R53 | Item and ACH Entry Presented for Payment | Both the original check and the RCK entry were presented |
| R54 | Receivable Document Presented for Payment | The original receivable document has been presented for payment |
| R55 | Source Document Presented for Payment (BOC) | The source document for a BOC entry has been presented for payment |
| R56 | Source Document Presented for Payment (ARC) | The source document for an ARC entry has been presented for payment |
| R57 | RDFI Not Qualified to Participate | The RDFI is not qualified to participate in the BOC program |
| R58 | Payee Deceased | The payee is deceased |
| R59 | Payee Account Closed | The payee's account has been closed |
| R60 | Entry Settled Prior to Return | The entry has been settled and cannot be returned |
| R61 | Misrouted Return | The return was sent to the wrong ODFI |
| R62 | Incorrect Trace Number | The trace number in a return is incorrect |
| R63 | Incorrect Dollar Amount | The dollar amount in a return is incorrect |
| R64 | Incorrect Individual Identification | The individual ID in a return is incorrect |
| R65 | Incorrect Transaction Code | The transaction code in the return entry does not match the original |
| R66 | Incorrect Company Identification | The company identification in the return does not match the original |
| R67 | Duplicate Return | The return is a duplicate of a previously sent return |
| R68 | Untimely Return | The return was not sent within the required timeframe |
| R69 | Field Error(s) | Multiple fields in the return entry are incorrect |
R70 to R85 return codes
| Code | Description | Common cause |
|---|---|---|
| R70 | Permissible Return Entry Not Accepted | The ODFI has not agreed to accept a permissible return entry |
| R71 | Misrouted Dishonored Return | A dishonored return was sent to the wrong ODFI |
| R72 | Untimely Dishonored Return | A dishonored return was not sent within the required timeframe |
| R73 | Timely Original Return | The RDFI claims the original return was timely |
| R74 | Corrected Return | A previous return is being corrected |
| R75 | Original Return Not a Duplicate | The ODFI claims the original return was not a duplicate |
| R76 | No Errors Found | The RDFI found no errors in the original return |
| R77 | Non-Acceptance of R62 Dishonored Return | The ODFI is not accepting a dishonored return for an R62 |
| R78 | Non-Acceptance of R68 Dishonored Return | The ODFI does not accept the dishonored return for an R68 |
| R79 | Incorrect Data in Return Entry | The RDFI provided incorrect data in the return entry |
| R80 | IAT Entry Coding Error | An International ACH Transaction (IAT) has a coding error |
| R81 | Non-Participant in IAT | The gateway does not participate in the IAT network |
| R82 | Invalid Foreign Receiving DFI Identification | The foreign bank identification is invalid |
| R83 | Foreign Receiving DFI Unable to Settle | The foreign bank cannot settle the transaction |
| R84 | Entry Not Processed by Gateway | The IAT entry was not processed by the gateway operator |
| R85 | Incorrectly Coded Outbound International Payment | An outbound international payment was coded as a domestic transaction |
Most common ACH return codes explained
Finance teams most frequently encounter a specific set of codes. Understanding what triggered them and the immediate next steps is crucial for resolving payment issues quickly.
R01 ACH return code for insufficient funds
The account lacks adequate funds to cover the debit. This is the ACH equivalent of a declined credit card 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.
R02 return code for account closed
The account no longer exists. You need to contact the customer or vendor immediately to get updated banking information. Don't retry the payment to this account—it will fail again.
R03 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.
R04 ACH return code for 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.
R07 return code for authorization revoked
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.
R08 return code for payment stopped
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.
R10 ACH return code for customer advises unauthorized
The customer is claiming they never authorized the debit in the first place. This can indicate fraud or a miscommunication. Investigate immediately and have your authorization records ready for documentation.
R11 return code for check truncation entry return
The original check, which was converted into an electronic ACH entry, was returned by the bank. As a result, the converted ACH entry is also being returned. Review the original check details and contact the payer to resolve the issue.
R16 return code for account frozen
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.
R20 ACH return code for non-transaction account
The account type doesn't permit this kind of ACH transaction. This is common with certain savings accounts that have transfer limits. Request a different account number from the customer, such as a checking account.
R23 ACH return code for credit entry refused
The receiver has actively refused to accept the credit payment. This is common with corporate accounts that have strict payment controls or blocks in place. Verify the payment instructions with the recipient before resubmitting.
R29 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 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 the originator (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 will help 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 sending bank (ODFI) upon identifying a mistake |
| Common reasons | Insufficient funds, invalid account number | Duplicate payments, incorrect recipient, incorrect payment amount |
| Processing time | 2–60 days, depending on return code | Must be requested within 24 hours of identifying the error |
How to handle ACH returns
Responding to returns requires quick, practical action. Most require resolution within 2 banking days, so speed matters.
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.
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.
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), for unauthorized transactions (R07, R10), or with invalid account numbers (R04).
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.
How to prevent ACH returns
Taking proactive steps can significantly reduce return rates and protect your ACH processing privileges.
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.
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 can prevent a surprising number of returns.
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.
Automate payment approval workflows
Implement internal 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.
Automate your AP with Ramp
With manual AP processes, data entry mistakes can lead to returned ACH payments or the need for an ACH reversal. You can avoid these errors and more by automating your AP process.
Ramp Bill Pay lets you scan or upload documents such as invoices, purchase orders, vendor onboarding docs, and receipts instead of entering all that information manually.
And with the ability to automate the payment process with features such as automated workflows, two-way and three-way matching, and error alerts, you'll have complete visibility into your cash flow, too.
What else could Ramp do to simplify your AP process? Find out with a demo.
This post includes general information about ACH payments. For help with ACH functionality specific to Ramp, visit Ramp Support for more details.

FAQs
An ACH return is initiated by the receiving bank (RDFI) when a payment can't be processed for a specific reason, such as insufficient funds or a closed account. An ACH reversal is initiated by the payment originator (ODFI) to correct an erroneous transaction they sent, such as a duplicate payment or incorrect amount.
Most standard ACH returns must be processed by the receiving bank within 2 banking days of the settlement date. However, returns for unauthorized transactions (like R07 or R10) can occur up to 60 calendar days after the original transaction.
Yes. If you believe a return code was issued in error, you can dispute it by contacting the receiving bank through your originating bank. You'll need to provide documentation to support your case, such as proof of authorization.
A returned mobile ACH payment means a payment initiated through a mobile banking app or service was rejected by the receiving bank for one of the standard return reasons, such as insufficient funds (R01) or invalid account information (R04). The same return codes and resolution steps apply regardless of how the payment was initiated.
ACH stands for Automated Clearing House, a US electronic payment network managed by Nacha. It processes large batches of transactions between financial institutions, handling both direct deposits (credits) and direct payments (debits).
You can learn more about Ramp Bill Pay and how it helps automate accounts payable at our official page: https://ramp.com/accounts-payable
“In the public sector, every hour and every dollar belongs to the taxpayer. We can't afford to waste either. Ramp ensures we don't.”
Carly Ching
Finance Specialist, City of Ketchum

“Compared to our previous vendor, Ramp gave us true transaction-level granularity, making it possible for me to audit thousands of transactions in record time.”
Lisa Norris
Director of Compliance & Privacy Officer, ABB Optical

“We chose Ramp because it replaced several disparate tools with one platform our teams actually use—if it’s not in Ramp, it’s not getting paid.”
Michael Bohn
Head of Business Operations, Foursquare

“Ramp gives us one structured intake, one set of guardrails, and clean data end‑to‑end— that’s how we save 20 hours/month and buy back days at close.”
David Eckstein
CFO, Vanta

“Ramp is the only vendor that can service all of our employees across the globe in one unified system. They handle multiple currencies seamlessly, integrate with all of our accounting systems, and thanks to their customizable card and policy controls, we're compliant worldwide. ”
Brandon Zell
Chief Accounting Officer, Notion

“When our teams need something, they usually need it right away. The more time we can save doing all those tedious tasks, the more time we can dedicate to supporting our student-athletes.”
Sarah Harris
Secretary, The University of Tennessee Athletics Foundation, Inc.

“Ramp had everything we were looking for, and even things we weren't looking for. The policy aspects, that's something I never even dreamed of that a purchasing card program could handle.”
Doug Volesky
Director of Finance, City of Mount Vernon

“Switching from Brex to Ramp wasn't just a platform swap—it was a strategic upgrade that aligned with our mission to be agile, efficient, and financially savvy.”
Lily Liu
CEO, Piñata



