Understanding ACH Return Codes: A Developer's Guide
When an Automated Clearing House (ACH) transaction fails, the system doesn't offer a vague "payment declined" message. Instead, the National Automated Clearing House Association (Nacha) provides a specific two-character code. This code pinpoints the exact reason for the rejection. For developers managing payouts, disbursements, or recurring payments, understanding these codes and implementing logic to handle them is not optional—it's essential.
Unlike credit card networks, ACH operates on a delayed settlement model. A debit entry can be returned for up to five business days after its origination date. When a return occurs, your system must be able to decode the reason, determine if a retry is appropriate, and potentially alert the end user or reroute funds through an alternative payment channel.
Common ACH Return Codes and Their Meanings
The ACH network categorizes return codes into distinct groups, each signaling a different type of issue. These codes are critical for diagnosing payment failures and implementing appropriate corrective actions. Understanding these categories provides a framework for managing a wide array of potential transaction problems.
Unauthorized Debits (R01-R02)
- R01: Insufficient Funds - The most common return code, indicating the account holder did not have enough money to cover the transaction.
- R02: Bank Offered, Not Accepted - The RDFI (Receiving Depository Financial Institution) has returned the entry because it has been notified by the ODFI (Originating Depository Financial Institution) that the account is no longer valid.
Authorization Issues (R03-R05)
- R03: Authorization Revoked by Customer - The customer has explicitly revoked authorization for the transaction or for future debits from the originator.
- R04: Account Frozen or Restricted - The account is subject to legal order, such as a levy or garnishment, or is otherwise restricted by the financial institution.
- R05: Administrative/Delinquent Account - The account is administrative or delinquent, meaning it may be closed or subject to internal bank holds.
Improper Identification (R07-R12)
- R07: Authorization Required - The transaction requires pre-authorization, which was not obtained or is no longer valid.
- R08: Authorization Revoked by ODFI - The Originating Depository Financial Institution has revoked its authorization for the transaction.
- R09: Transaction Not Authorized - Similar to R07, but implies a more general lack of authorization for this specific transaction.
- R10: Customer Advises Not Authorized - The customer has informed their bank that they did not authorize the transaction. This often triggers an investigation by the bank.
- R11: Bank-Customer Relationship Denied - The bank denies that a valid relationship exists with the customer for the transaction.
- R12: Account Name/Number Mismatch - The name on the account does not match the account number provided.
Return of Original Entry (R13-R15)
- R13: Invalid Account Number Structure Only - The account number format is incorrect.
- R14: Invalid ABA Routing Number - The provided ABA routing number is not valid or does not exist.
- R15: Invalid Record Type Indicator - The record type indicator in the ACH file is incorrect.
Duplicate Entries (R16-R17)
- R16: Transaction Already Redeemed - The transaction has already been processed or settled.
- R17: Transaction Previously Returned - The transaction was previously returned and cannot be re-presented.
Returned Due to ODFI Issues (R18-R20)
- R18: Incorrect Routing Number/Unable to Locate Bank - The routing number provided is incorrect or the bank cannot be located.
- R19: Invalid Transaction Code - The transaction code used is not valid for the transaction type.
- R20: Non-Transaction Account - The account is not a transaction account (e.g., a savings account not eligible for certain types of debits).
Account Ownership and Status (R21-R23)
- R21: Invalid/Missing Corporate Customer ID - For business accounts, a required Corporate Customer ID is missing or invalid.
- R22: Invalid Authorization Information on Entry per Return Rules - Authorization details provided with the entry are invalid according to return rules.
- R23: Returned per agreement from RDFI - The RDFI has returned the entry based on a prior agreement.
Contested Debits (R24-R31)
- R24: BOC Entry Recipient Advises Not Authorized - For Back-Office Conversion (BOC) entries, the recipient states they did not authorize it.
- R25: BOC Entry Received/Processed with Incorrect Data - A BOC entry was received or processed with errors.
- R26: MTE Entry Recipient Advises Not Authorized - For Machine-Readable Transaction Entry (MTE) entries, the recipient states they did not authorize it.
- R27: MTE Entry Received/Processed with Incorrect Data - An MTE entry was received or processed with errors.
- R28: ODFI Advises Not Authorized - The ODFI indicates the entry was not authorized.
- R29: Contested Return Entry Not Supported per Return Reason - A contested return entry is not supported by the provided reason.
- R30: Wire Transfer to Wrong Account - The funds were sent to the wrong account via wire transfer instead of ACH.
- R31: Permissible Objective Not Met by Receiver - The receiver of the transaction did not meet a permissible objective required for the transaction.
ACH-Specific Returns (R32-R43)
- R32: RDFI Bank Operations Issues - The RDFI experienced technical or operational issues preventing processing.
- R33: RDFI Non-Settlement Issues - The RDFI has non-settlement issues affecting the transaction.
- R34: Returned Batch Request (Old Code) - An old code for returning a batch request.
- R35: Return of Information to Receiver - Information related to the transaction is being returned to the receiver.
- R36: Returned Item - Missing Info - The returned item is missing required information.
- R37: Returned Item - Incorrect Info - The returned item contains incorrect information.
- R38: Stopped Payment on Recurring Entry - A stop payment order has been placed on a recurring ACH payment.
- R39: Garnishment Entry Not Supported per Return Rules - A garnishment entry is not supported by the return rules.
- R40: Garnishment Entry - RDFI Does Not Offer Garnishment Service - The RDFI does not provide garnishment services.
- R41: Garnishment Entry - No Record of Specified Account Owner - The RDFI has no record of the account owner specified in the garnishment.
- R42: Garnishment Entry - Account Frozen/Levied per Legal Order - The account is frozen or levied due to a legal order.
- R43: Garnishment Entry - Account Not Eligible for Garnishment - The account is not eligible for garnishment.
Re-presented Entries (R44-R59)
- R44: Returned Mail/Unable to Locate Account - The mail was returned, or the account could not be located.
- R45: Account Title/Number Mismatch - Similar to R12, but specifically for re-presented entries.
- R46: Account Frozen/Restricted - Similar to R04, but for re-presented entries.
- R47: Invalid Account Number Structure - Similar to R13, but for re-presented entries.
- R48: Invalid ABA Routing Number - Similar to R14, but for re-presented entries.
- R49: Invalid Transaction Code - Similar to R19, but for re-presented entries.
- R50: Returned per Agreement from RDFI - Similar to R23, but for re-presented entries.
- R51: Original Entry Not Found - The original entry that is being re-presented cannot be found.
- R52: Bank Operation Issues - Similar to R32, but for re-presented entries.
- R53: Bank Non-Settlement Issues - Similar to R33, but for re-presented entries.
- R54: Invalid Authorization Information on Entry per Return Rules - Similar to R22, but for re-presented entries.
- R55: Contested Return Entry Not Supported per Return Reason - Similar to R29, but for re-presented entries.
- R56: ODFI Advises Not Authorized - Similar to R28, but for re-presented entries.
- R57: RDFI Advises Not Authorized - The RDFI indicates the entry was not authorized.
- R58: Returned Item - Missing Info - Similar to R36, but for re-presented entries.
- R59: Returned Item - Incorrect Info - Similar to R37, but for re-presented entries.
ODFI/RDFI Agreement Returns (R60-R69)
- R60: Account Not Eligible for Rep-ayment - The account is not eligible for re-payment.
- R61: Business Day Error - An error occurred related to business days in the transaction processing.
- R62: Rejected by RDFI System - The RDFI's system rejected the transaction.
- R63: Rep-ayment Amount Error - An error occurred with the amount in the re-payment.
- R64: Rep-ayment Batch Error - An error occurred with the batch in the re-payment.
- R65: Rep-ayment Invalid Routing Number - The routing number in the re-payment is invalid.
- R66: Rep-ayment Invalid Account Number - The account number in the re-payment is invalid.
- R67: Rep-ayment Invalid Transaction Code - The transaction code in the re-payment is invalid.
- R68: Rep-ayment Authorization Error - An authorization error occurred in the re-payment.
- R69: Rep-ayment Stop Payment - A stop payment was placed on the re-payment.
Other Returns (R70-R85)
- R70: Negative Balance Adjustment - An adjustment for a negative balance.
- R71: Corporate Customer Advises Not Authorized - A corporate customer advises they did not authorize the transaction.
- R72: Field Error - Improper Data Entry - An error in field data entry.
- R73: Field Error - Missing Essential Data - Essential data is missing from a field.
- R74: Field Error - Incorrect Data Entry - Incorrect data was entered into a field.
- R75: Field Error - Invalid Data Entry - Invalid data was entered into a field.
- R76: Field Error - Unusable Addenda Record - The addenda record is unusable.
- R77: Field Error - Incorrect Trace Number - The trace number is incorrect.
- R78: Field Error - Incorrect Payment Related Information - Payment-related information is incorrect.
- R79: Field Error - Incorrect Receiver Information - Receiver information is incorrect.
- R80: Field Error - Incorrect Debtor Information - Debtor information is incorrect.
- R81: Field Error - Incorrect Original Entry Information - Original entry information is incorrect.
- R82: Field Error - Incorrect Authorization Information - Authorization information is incorrect.
- R83: Field Error - Incorrect Routing Information - Routing information is incorrect.
- R84: Field Error - Incorrect account number - The account number is incorrect.
- R85: Field Error - Invalid Account Number Structure - The account number structure is invalid.
Handling ACH Returns in Production
Effective handling of ACH return codes in a production environment requires a robust strategy that balances automation with manual oversight. The first step is to ensure your payment processing system can correctly parse and interpret each return code. This involves maintaining an up-to-date mapping of codes to their meanings and associated actions.
For common returns like R01 (Insufficient Funds), automated retries may be appropriate after a set waiting period, provided your business logic allows for it. However, for more critical or potentially fraudulent returns, such as R03 (Authorization Revoked) or R10 (Customer Advises Not Authorized), manual review and direct customer communication are often necessary. Implementing a tiered response system, where different codes trigger different automated or manual workflows, is crucial.
Furthermore, consider the frequency of specific return codes. A sudden spike in a particular code might indicate a systemic issue, either with your data input, your customer base's financial health, or even a problem with the RDFI. Establishing monitoring and alerting for unusual return patterns is key to proactive management. Finally, ensure your customer communication strategy is clear and informative when a payment fails. Providing the customer with the reason for the return (translated from the code into user-friendly language) and guidance on how to resolve it can significantly improve the customer experience and reduce future returns.
The complexity of ACH return codes means that a one-size-fits-all approach to handling them is insufficient. Developers must build flexible systems capable of distinguishing between temporary issues (like insufficient funds) and fundamental problems (like account closures or fraud). This requires ongoing vigilance, clear internal processes, and a commitment to understanding the nuances of each Nacha-defined return reason.
