Whenever a customer’s payment is refused by your bank, you get an ACH return code. These are strings of numbers following the letter R, each signifying a different reason why the payment couldn’t come through.
These are some of the most common ACH return codes and what they mean for your business.
What are ACH return codes, and why should you care about them?
ACH return codes are short three-character codes that banks use to explain why an ACH payment was rejected or reversed. Every time an ACH debit or credit fails, the receiving bank sends back a code that tells you exactly what happened, from insufficient funds to an invalid account number. These codes come from NACHA rules, so they’re standardized across all US banks.
You should care about them because they tell you what action to take next. Some codes mean a simple data entry mistake. Others point to fraud, closed accounts, or authorization problems. If you’re a business that relies on ACH payments, understanding these codes helps you reduce failed payments, avoid extra fees from your processor, and fix customer issues before they snowball.
It also gives you better visibility into your cash flow since you can quickly see why money did not settle when expected.
The most common ACH return codes and what they mean
Here are some of the most common ACH return codes you’ll encounter, along with their meanings and the next steps you should take.
| ACH code | Explanation | Recommended action |
| R01 | Not enough money in the customer account to cover the debit. | Ask the customer to confirm their balance or retry the debit later after they add funds. |
| R02 | The account is closed. | Contact the customer for a new bank account and update their payment details. |
| R03 | The account number is not valid. | Reconfirm the customer account number and routing number before retrying. |
| R04 | The account does not exist at the receiving bank. | Verify both routing and account details with the customer and resubmit once corrected. |
| R05 | The transaction type was not authorized. | Check whether the entry should be consumer or business and obtain a proper authorization. |
| R06 | The bank refused the transaction for a general reason. | Contact the bank or payment processor for clarification because this is bank-driven. |
| R07 | The customer revoked their authorization. | Get a new authorization form before trying again. |
| R08 | The customer requested a stop payment. | Ask the customer why the stop was placed and get approval before attempting another debit. |
| R09 | Funds were available earlier, but not at settlement time. | Retry at a different time or communicate with the customer about timing. |
| R10 | The customer claims they did not authorize the debit. | Pause further debits, investigate the claim, and collect a new authorization if the payment is still needed. |
| R11 | The transaction was authorized but had an error in processing. | Correct the issue, such asthe amount or formatting, then resubmit. |
| R16 | The account is frozen or restricted. | Contact the customer because they must resolve the freeze with their bank. |
| R20 | The account cannot accept ACH debits. | Request a different bank account that supports ACH. |
| R29 | A business declined the debit because they did not authorize it. | Get written authorization from the business before another attempt. |
| R31 | The receiving bank cannot accept the entry at the moment. | Wait for the bank to resolve the issue or ask your processor if you should retry. |
Other ACH return codes you may run into
There are over 80 return codes in total, and the full list changes with time as NACHA adds new codes to the list. Here are some of the other codes you may see in your business operations.
| ACH code | Explanation | Recommended action |
| R12 | The branch listed in the transaction is not valid. | Verify routing information and update the entry with the correct branch details. |
| R13 | The ACH entry is not allowed for this account type. | Ask the customer for a different checking or savings account that accepts ACH. |
| R14 | The payee is deceased. | Stop future debits and follow legal or estate procedures. |
| R15 | The account holder is deceased. | Discontinue transactions and request new authorized account details. |
| R17 | A general error in the file or entry. | Review formatting, addenda content, or account data, then correct and resubmit. |
| R18 | The account number structure is not supported by the receiving bank. | Confirm the official account format with the customer. |
| R19 | The amount is not valid. | Correct invalid amounts such as too many decimal places and resubmit. |
| R21 | The entry contains an invalid or missing authorization for an ARC, BOC, or POP item. | Obtain correct authorization or switch to a transaction type that fits the situation. |
| R22 | Invalid credit item or credit authorization. | Verify the authorization and edit the item before submitting again. |
| R23 | The credit entry was refused by the customer. | Contact the customer to understand why they refused it and resend if approved. |
| R24 | Duplicate entry. | Do not retry. Adjust records to avoid double posting. |
| R25 | The addenda record has errors. | Fix formatting or data inside the addenda record and re submit. |
| R26 | The mandatory field in the record is missing or invalid. | Correct formatting errors then send again. |
| R27 | Trace number mismatch between entry and addenda. | Update trace numbers to match and resend. |
| R28 | The routing number in the entry does not match the check. | Confirm the customer routing number and update records. |
| R30 | RDFI, meaning the receiving bank, is not able to accept an ACH entry. | Ask the customer for an alternate bank account. |
| R32 | RDFI credit entry refusal by the receiving bank for corporate accounts. | Contact the business customer to resolve the issue. |
| R33 | Return of an extended return entry. | Work with your processor to understand the extended return reason before retrying. |
| R34 | Limited participation by RDFI in ACH credit entries. | Request a different bank account or payment method. |
| R35 | Invalid date in the authorization. | Update the authorization with correct dates. |
| R36 | Wrong identification code or company ID. | Correct the company ID before resubmitting. |
| R37 | Source document presented for payment is not acceptable. | Obtain valid authorization or a different payment form. |
| R38 | Stop payment on a source document. | Contact the customer for permission to debit again. |
| R39 | Improper source document. | Replace with a compliant check or authorization. |
| R40 | Improper transaction code for a specific format. | Correct the entry class or transaction code. |
| R41 | Invalid transaction code for an ARC entry. | Adjust transaction code and re submit. |
| R42 | Invalid routing number for an ARC entry. | Verify routing number with the customer. |
| R43 | Invalid account number for an ARC entry. | Confirm the correct account number. |
| R44 | Invalid individual name or item number for ARC. | Fix the payee information and resend. |
| R45 | Invalid amount for ARC. | Correct the amount and resubmit. |
| R46 | Invalid check serial number for ARC. | Correct the check info and retry. |
| R47 | Duplicate ARC entry. | Do not retry. Remove the duplicate from your system. |
| R50 | State law prohibits the transaction. | Use a permitted payment method or seek legal guidance. |
| R51 | Item is incomplete or lacks proper authorization. | Re collect a valid authorization. |
| R52 | Stop payment on a source document for BOC. | Speak with the customer and obtain approval to retry. |
| R53 | Improper source document for BOC. | Obtain a compliant check or authorization. |
| R61 | Misrouted return. | Correct the routing number and resend. |
| R62 | Incorrect trace number in the return. | Update trace numbers and resubmit. |
| R67 | Duplicate return. | Do not resend. Clean up duplicate data. |
| R68 | Untimely return. | Check timing windows and decide if a corrected file is allowed. |
| R69 | Field error in the return file. | Fix formatting errors and resubmit. |
| R70 | Permissible return entry, but requires authorization. | Get the required authorization before reattempting. |
| R71 | Error specific to addenda information in a return. | Correct addenda data. |
| R72 | Return not processed because of incomplete data. | Add missing data and resubmit. |
| R73 | Not enough information for the receiving bank. | Provide complete entry details. |
| R74 | Duplicate return for corrected return. | Remove duplicates from your system. |
| R75 | Return filed after the correction window. | Work with your processor on next steps. |
| R76 | Return does not match the original entry. | Correct the mismatch and resubmit if allowed. |
| R80 | Foreign or international transaction is not permitted. | Use an approved international payment method. |
| R81 | Invalid foreign routing number. | Confirm correct international routing details. |
| R82 | Invalid foreign account. | Verify account details with the customer. |
| R83 | Foreign source transaction refused. | Request an alternative payment method. |
| R84 | Entry is not eligible for processing because of foreign involvement. | Switch to a supported payment channel. |
| R85 | Incorrect extended return information. | Correct extended return formatting before resubmitting. |
Let us worry about ACH return codes while you take care of your customers
Understanding ACH return codes is not just a technical detail. These codes tell you why a payment failed, how serious the issue is, and what you should do next. When you can read them quickly, you protect your cash flow, reduce disputes, and avoid extra fees that sneak up on many high-risk merchants.
This is where TailoredPay makes a real difference.
TailoredPay monitors every ACH response, highlights the exact code, and shows clear next steps so you are not guessing why a payment bounced. You also get support from a team that knows high-risk industries and helps you prevent repeat returns through better account validation and authorization guidance. The result is fewer failed payments and a smoother payout cycle for your business.
If you want payment processing that handles ACH issues with clarity instead of confusion, TailoredPay is the partner that helps you stay ahead of every code that comes your way.