The ultimate guide to ACH return codes

An overview of each of the ACH return codes, what they mean, and how you can reduce ACH returns through an innovative payment solution.

This guide explains what ACH return codes are
Headshot
Gary Ludorf

The popularity of ACH payments is growing, with the National Automated Clearing House Association (NACHA) reporting more than 8 billion direct deposits made via the technology in 2023 alone, an increase of 3.3% by volume and 7.4% by value. As anyone who uses ACH payments knows, however, if ACH payments are growing, so too are ACH return codes.

With this increase in activity comes an increase in potential returned payments. Returned ACH transactions negatively impact businesses by disrupting cash flow, damaging a company’s reputation, and putting them at risk of possible fines from NACHA. 

Fortunately, you can proactively manage ACH transactions to help reduce returns, including knowing each of the ACH return codes, what they mean, and how you can reduce ACH returns through an innovative payment solution.  

What are ACH return codes? 

When an ACH transaction can’t be completed, the Receiving Depository Financial Institution (RDFI) sends a notice to the Originating Depository Financial Institution (ODFI). This notice includes a code, called an ACH return code. 
The code includes an R and a 2-digit number, such as R01, R04, or R78. 
DESCRIPTION

The ACH return process 

The timing and specifics may vary depending on the agreement between the business and the customer, as well as the reasons for the return. Here is a general overview: 

  1.   You send an ACH payment request to your customer.
  2.   The customer’s bank initially funds the request.
  3.   The bank then takes money from the customer’s account.
  4.   If the request can’t be funded for any reason, the customer bank will take the money back and provide a return code explaining why. 

Returns can occur within a few days or even 30 days later (or longer), depending on the reason.

Frame 11 (2)

How do you identify ACH return codes?

The ACH return includes a 3-character code, which explains why the ACH payment didn’t go through. Each code has a name, a reason for return, and a timeline for when it may show up after the payment request has been processed or how long you have to respond.  

The most common ACH return codes

There are 85 different reasons for an ACH payment to be returned, which we share below. However, these reasons cover most instances.

R01 – Insufficient funds

This common return code indicates that the customer didn’t have enough money in their account at the time of the request to cover the full amount of the debit entry. This doesn’t mean you’re out of luck, but you do need to wait 30 days to try again.

R02 – Account closed

This is one of the simpler ACH return codes. If the customer’s bank account is no longer active, the request will be returned under this code.

R03 – No account/Unable to locate account

This return code indicates that the account number listed on the payment request is either a valid account that doesn’t match the customer or isn’t a valid and open account. It requires additional validation.

For example, if a customer tries to buy something online, they may miskey their account number. They fill out an actual account number, but it is not their own. Code R03 may appear on the return notice because the account and customer names don’t match. The retailer may choose to ask the customer to restate their account number or request a different payment method.

R04 – Invalid account number

In this instance, the account number isn’t correct at all. It’s not a mismatch, but rather, it’s invalid. It could be in the wrong format, have not enough numbers, or have too many numbers for the account type.

R05 – Unauthorized debit entry

A return code of R05 indicates that the account type didn’t match the payment request. For example, you could be attempting a B2B payment via ACH from a business account to another business account, but the customer provided a personal bank account number for the receiving bank. Because each ACH transaction needs to specify the proper account types ahead of time, the payment would be returned under an R05 code. 

R10 – Customer advises not authorized

The full description for code R10, as stated by NACHA, is “Customer Advises Originator is Not Known to Receiver and/or Originator is Not Authorized by Receiver to Debit Receiver’s Account.” It covers instances where the customer doesn’t recognize the originator of the ACH request, doesn’t have a relationship with them, or hasn’t authorized the transaction to occur. 

R16 – Account frozen

The R16 return code indicates that the customer account has been frozen and no debits or credits can occur. This may be due to a number of reasons, including a customer’s request or because the account is subject to legal review or asset seizure from the government. 

Best practices for managing ACH returns 

While some ACH returns are outside of your control, you can reduce the overall number by taking some additional care with your payment requests. 

Verify data 

Use payment gateways or checkout services that require some verification before submission. This could be by having customers type their account number in twice on the payment screen and making sure the entries match. 

Educate your customers

Insufficient funds returns happen when customers don’t fully understand the amount they will be charged or the frequency of the charges. Subscription billing, for example, can take customers by surprise, especially if the amount changes month-to-month due to usage. 

By educating the customer on the cost of services and how the billing works, they will be more likely to have the funds in their account at the time of payment. 

Make payment changes simple 

Some of the more common ACH return reasons involve an account being closed before payment can be processed. This may simply be a matter of a customer not being able to update their account information with your company. 

Consider more self-service options for account updates so customers can keep account info current and avoid having you try to charge a closed account. 

Partner with Astra 

Finally, integrating an Instant Payments API, like the one offered by Astra, gives you more control over your ACH payments (and, therefore, your return rates). 

Some of the benefits of Astra include: 

  • Accelerated ACH that makes ACH payments happen faster and reduces the time from initial request to payout
  • Enhanced fraud detection to help flag payment requests that are unlikely to be honored by the customer’s bank
  • Automated balance checking to ensure the customer can cover a payment request
  • Automated updates on the transfer status via webhooks, so you get real-time information and don’t have to wait days or weeks to learn about a returned payment 

Astra integrates into your existing product, helping you comply with industry and legal standards. 

At Astra, we build the infrastructure for instant transfers, but we also help companies manage traditional payments through the ACH system. In both instances, our customers get fast and secure payment support. We also take ACH returns seriously and work to improve the entire payment journey. Customers are instantly verified to ensure they match their identities, which prevents spammers, scammers, and bots from accessing your payment platform. 
DESCRIPTION

Once verified, customers give a one-time authorization that makes future payments simple and secure. And, while Astra prides itself on efficient payments, ACH money doesn’t leave the account until the risk has been assessed. User verification and account resolution must happen first, as well as a check to see that there’s enough money in the account to cover the payment. We analyze the account and the user’s history to determine the appropriate settlement speed. 

Less risk and lower returns with Astra

With more assurance that an account is legit, fully funded, and approved by the customer, you can reduce the likelihood of an ACH return when using Astra’s Accelerated ACH services. This benefits businesses in terms of the costs to process payments. Astra also helps you comply with NACHA regulations, avoiding the risk of fines or even being removed from the ACH network altogether. 

Returns don’t have to diminish your growth or frustrate customers. Book a demo to find out how partnering with Astra can help you reduce returns and provide a better user experience.

Full list of every ACH return code

While this article breaks down some of the more common ACH return codes, we weren’t able to cover them all. Here’s a full list of every ACH return code.

Return Code Title Timeframe
R01 Insufficient Funds 2 Banking Days
R02 Account Closed 2 Banking Days
R03 No Account / Unable to Locate Account 2 Banking Days
R04 Invalid Account Number 2 Banking Days
R05 Unauthorized Debit to Consumer Account 60 Calendar Days
R06 Returned per ODFI’s Request Undefined
R07 Authorization Revoked by Customer 60 Calendar Days
R08 Payment Stopped 2 Banking Days
R09 Uncollected Funds 2 Banking Days
R10 Customer Advises Not Authorized 60 Calendar Days
R11 Check Truncation Entry Return 60 Calendar Days
R12 Branch Sold to Another DFI 2 Banking Days
R13 Invalid ACH Routing Number Next File Delivery Time Following Processing
R14 Representative Payee Deceased 2 Banking Days
R15 Beneficiary or Account Holder Deceased 2 Banking Days
R16 Account Frozen 2 Banking Days
R17 File Record Edit Criteria 2 Banking Days
R18 Improper Effective Entry Date Next File Delivery Time Following Processing
R19 Amount Field Error Next File Delivery Time Following Processing
R20 Non-Transaction Account 2 Banking Days
R21 Invalid Company Identification 2 Banking Days
R22 Invalid Individual ID Number 2 Banking Days
R23 Credit Entry Refused by Receiver RDFI Must Transmit Return Upon Receipt of Refusal
R24 Duplicate Entry 2 Banking Days
R25 Addenda Error Next File Delivery Time Following Processing
R26 Mandatory Field Error Next File Delivery Time Following Processing
R27 Trace Number Error Next File Delivery Time Following Processing
R28 Routing Number Check Digit Error Next File Delivery Time Following Processing
R29 Corporate Customer Advises Not Authorized 2 Banking Days
R30 RDFI Not Participant in Check Truncation Program Next File Delivery Time Following Processing
R31 Permissible Return Entry (CCD and CTX only) Undefined
R32 RDFI Non-Settlement Next File Delivery Time Following Processing
R33 Return of XCK Entry 60 Calendar Days
R34 Limited Participation DFI Next File Delivery Time Following Processing
R35 Return of Improper Debit Entry Next File Delivery Time Following Processing
R36 Return of Improper Credit Entry Next File Delivery Time Following Processing
R37 Source Document Presented for Payment 60 Calendar Days
R38 A stop payment was placed on the source document of the transaction 60 Calendar Days
R39 Improper Source Document 2 Banking Days
R40 Return of ENR Entry 2 Banking Days
R41 Invalid Transaction Code N/A
R42 Routing Number / Account Number Mismatch N/A
R43 Invalid DFI Account Number N/A
R44 Invalid Individual Identifier N/A
R45 Invalid Individual Name N/A
R46 Invalid Representative Payee Indicator 1 Banking Day
R47 Duplicate Enrollment 1 Banking Day
R50 State Law Affecting RCK Acceptance 2 Banking Days
R51 Item is Ineligible, Notice Not Provided 2 Banking Days
R52 Stop Payment on Item 60 Banking Days
R53 Item and ACH Entry Presented for Payment 60 Calendar Days
R61 Misrouted Return 60 Calendar Days
R62 Incorrect Trace Number 1 Banking Day
R63 Incorrect Dollar Amount 1 Banking Day
R64 Incorrect Individual Identification 1 Banking Day
R65 Incorrect Transaction Code 1 Banking Day
R66 Incorrect Company Identification 1 Banking Day
R67 Duplicate Return 1 Banking Day
R68 Untimely Return 1 Banking Day
R69 Multiple Errors 1 Banking Day
R70 Permissible Return Entry Not Accepted / Notice Not Provided 1 Banking Day
R71 Misrouted Dishonored Return 1 Banking Day
R72 Untimely Dishonored Return 1 Banking Day
R73 Timely Original Return 1 Banking Day
R74 Corrected Return 1 Banking Day
R75 Return Not a Duplicate 1 Banking Day
R76 No Errors Found Contested Return must be transmitted within 2 Banking Days
R77 Non-Acceptance of R62 Dishonored Return Contested Return must be transmitted within 2 Banking Days
R78 Non-Acceptance of R68 Dishonored Return 1 Banking Day
R79 Incorrect Data in Return Entry 1 Banking Day
R80 IAT Entry Contested Return must be transmitted within 2 Banking Days
R81 Non-Participant in IAT Program Contested Return must be transmitted within 2 Banking Days
R82 Invalid Foreign Receiving DFI Identification Contested Return must be transmitted within 2 Banking Days
R83 Foreign Receiving DFI Unable to Settle Contested Return must be transmitted within 2 Bnkg. Days
R84 Entry Not Processed by Gateway N/A
R85 Incorrectly Coded Outbound International Payment 2 Banking Days

DESCRIPTION