Table of Contents
If your business sends or receives payments through ACH transfers, you’ve probably seen an ACH return code pop up now and then. These codes are like little messages from the banking system telling you why a payment didn’t go through. While they can be frustrating at first, they’re actually helpful once you know how to read them.
Let’s walk through what these codes are, why they show up, and how to handle them without losing your cool.
What Are ACH Return Codes?
ACH (Automated Clearing House) payments are a popular way to move money between bank accounts—things like direct deposits, bill payments, and recurring invoices often use this system. When a payment fails for any reason, the bank sends back a code starting with an “R” and a number. That’s an ACH return code.
Each one tells you why the payment didn’t go through. Some reasons are simple—like not enough funds in the account. Others might involve incorrect information, or the customer pulling their permission for the payment.
Knowing what these codes mean can save you time and help avoid repeat issues.
Why Do ACH Payments Get Returned?
There are a bunch of reasons, but some of the most common ones include:
- R01 – Insufficient Funds: The account didn’t have enough money to cover the charge.
- R02 – Account Closed: The account was closed before the transaction hit.
- R03 – No Account/Unable to Locate: The routing or account number doesn’t match anything on file.
- R04 – Invalid Account Number: The account number format is off or incorrect.
- R07 – Authorization Revoked: The customer said “nope” and canceled their authorization.
- R08 – Payment Stopped: The account holder placed a stop on that specific payment.
- R09 – Uncollected Funds: The money is there, but it’s not available yet.
- R10 – Customer Says It Wasn’t Authorized: This can happen if someone doesn’t recognize the charge or thinks it's a mistake.
These are just a few, but they cover a good chunk of the issues most businesses run into.
Full List of ACH Return Codes
Here’s a longer look at the full roster of ACH return codes. These are set by NACHA, the folks who manage the ACH network in the U.S.:
ACH Return Code | Meaning |
---|---|
R01 | Insufficient Funds |
RO2 | Account Closed |
RO3 | No Account/Unable to Locate Account |
RO4 | Invalid Account Number |
RO5 | Unauthorized Debit (using corporate code on a consumer account) |
RO6 | Returned per ODFI's request |
RO7 | Authorization Revoked by Customer |
RO8 | Payment Stopped |
RO9 | Uncollected Funds |
R10 | Customer Advises Not Authorized |
R11 | Error in transaction (wrong amount/date/duplicate) |
R12 | Branch Sold to Another DFI |
R13 | Invalid Routing Number Format |
R14 | Account Holder Deceased |
R15 | Beneficiary or Account Holder Deceased |
R16 | Account Frozen |
R17 | Needs More Info from RDFI |
R18 | Improper Effective Entry Date |
R19 | Amount Outside Allowed Limits |
R20 | Non-Transaction Account |
R21 | Invalid Company Identification |
R22 | Invalid Individual ID Number |
R23 | Credit Entry Refused by Receiver |
R24 | Duplicate Entry |
R25 | Addenda Error |
R26 | Invalid Company Name |
R27 | Trace Number Error |
R28 | Routing Number Check Digit Error |
R29 | Entry Refused by Receiver |
R30 | RDFI Not Participating |
R31 | Permissible Return (CCD/CTX only) |
R32 | RDFI Non-Settlement |
R33 | Return of XCK Entry |
R34 | Limited Participation DFI |
R35 | Return of Improper Debit |
R36 | Return of Improper Credit |
R37 | Source Document Presented for Payment |
R38 | Stop Payment on Source Document |
R39 | Improper Source Document |
What to Do When You See a Return Code
When a transaction fails, the first step is to find out what the code means. Once you know that, you can decide your next move. For example:
- If it’s a data issue (R03, R04) – Double-check the account and routing numbers with your customer.
- If the account is closed (R02) – Ask for a new payment method.
- If they say it wasn’t authorized (R10, R07) – Reach out and find out what happened. You might need a new authorization form.
Most of the time, it’s just a matter of cleaning up the details and reprocessing the payment.
How to Avoid ACH Returns in the Future
While you can’t prevent every return, there are some easy things you can do to keep them to a minimum:
- Double-check banking info before submitting a new payment.
- Make sure customers know what to expect, especially with recurring charges.
- Keep records of authorizations, whether that’s a signed form or a digital agreement.
- Use a trusted payment processor that helps flag common mistakes before they happen.
Debit Return Time Frame
The return window for ACH debit entries is usually two banking days from the settlement date. That means if you send a debit on a Monday and it settles the same day, you can expect to get a return (if there is one) by Wednesday morning.
There are exceptions. For example:
- Unauthorized transactions (like R10 or R11) can be returned up to 60 calendar days after settlement by the account holder.
- Administrative returns (wrong account info, closed accounts, etc.) follow the two-day rule.
- Financial institutions are responsible for processing these returns on time, and most banks follow the rules pretty strictly.
If you receive a late return outside of the allowed window, it could be challenged, but you’ll need to work with your processor or bank to dispute it.
Return Fees: What They Are and Who Pays
ACH return fees are pretty standard across the board. When a transaction gets bounced, your bank or payment processor may charge you a return fee, typically around $2 to $10 per transaction. This fee covers the time and resources it takes to process the return.
Some providers charge higher fees for specific return types—like unauthorized debits or repeated NSF (insufficient funds) returns. If you’re seeing a lot of returns, it’s worth looking at your processor’s pricing table to make sure you’re not bleeding money in hidden costs.
And don’t forget—if you try to reprocess the same payment multiple times and it keeps bouncing, those fees can add up quickly.
Rules Governing Valid Disputes to a Transfer
Not every ACH dispute is created equal. NACHA sets the rules for when and how a customer can legitimately dispute a payment:
- Consumer accounts have up to 60 days from the transaction’s settlement date to dispute an unauthorized debit. This includes situations where:
- They never gave permission in the first place.
- They revoked authorization before the debit happened.
- The transaction doesn’t match the terms of the original agreement.
- Business accounts have much less protection. If a business account is debited without approval, they typically need to flag it within 24 to 48 hours. After that, it becomes harder to reverse.
To protect yourself, always get clear authorization from the customer (written or digital) before debiting their account. Keep those records handy—especially for recurring payments—so you can show proof if a dispute comes up.
Wrapping It All Up
ACH return codes can feel like alphabet soup the first time you see one, but once you understand what they mean, you’re in a much better spot to fix the issue and move on. Whether you’re handling just a few payments a week or running a busy online store, getting a handle on returns will save you money, time, and plenty of frustration.
If you’re dealing with high-risk payments or recurring issues with your processor, Durango Merchant Services has tools and people ready to help. We work with all types of merchants, including those in industries that big processors shy away from—and we know how to navigate the quirks of ACH returns.
Let’s talk about how to make your payment system work better for your business.
📞 Call us at (970) 317-3587 or email sales@durangomerchantservices.com/ to get started.