By: Mariah Young,

There are complexities  with every payments system—for ACH payments, return codes are one of those potentially complex items. In this post we’ll explore some reasons for why an ACH payment may go bad and then tell you what you can do about it.

First, the basics. If you’re brand new to dealing with ACH payments, here’s a quick overview. ACH stands for the Automated Clearing House—it’s an electronic network allowing banks and their customers to send funds between one another in the US. Think about when you pay a bill online using your bank account, here your payment is being processed using ACH.

For more explanation, check out ACH for beginners.

Common ACH Reject Codes

There are hundreds of ACH return codes, but some common codes are R01, R02, R03, R04, R10, and R20. We’ll explain those below, but head here for a full list of the possible ACH return codes in the system.

R01 –  Insufficient funds
The available and/or cash reserve balance is not sufficient to cover the dollar value of the debit entry. Basically, there were insufficient funds to complete a debit transaction.

R02 – Account closed
A previously active account has been closed by action of the customer or the RDFI. In other words, the bank account is closed, and this transaction should not be re-submitted.

R03 –  No account or unable to locate account
The account number structure is valid and it passes the C heck digit validation, but the account number does not correspond to the individual identified in the entry, or the account number designated is not an existing account.

Essentially, the routing or account number got fudged or mistyped, therefore it couldn’t be used. This is a simple, yet common mistake—on the bright side it’s easily avoidable (see tips for avoiding return codes below).

R04 – Invalid account number
The account number structure is not valid. The entry may fail the Check digit validation or may contain an incorrect number of digits. This means that the account number entered is definitely not valid, for instance your customer may have entered only half of the digits needed for a routing number.

R10 – Customer advises unauthorized, improper, ineligible, or part of an incomplete transaction
The financial institution has been notified by the receiver (ie. customer) that the entry is unauthorized, improper or ineligible. Someone has contacted their bank and taken action to stop the transaction.

R20 – Non-transaction account
The ACH entry destined for a non-transaction account, for example an account against which transactions are prohibited or limited. Basically, the bank account entered can’t be used for ACH transactions.

Tips for avoiding return codes

Now that you have a grasp of some of the reasons ACH transactions can go bad, here are quick and easy tips to avoid receiving ACH return codes.

If you receive a return code, contact your bank to find out why they issued a return and what you can do to remedy the situation.

Dwolla, for better ACH payments

Dwolla is here every step of the way to get you up and running with ACH payments. Whether you’re a developer, product manager, or someone with very little tech know-how, we can help you understand when and where to build ACH into your payments process.

If you’re dealing with several of ACH return codes, check out Dwolla’s Instant Bank Account Verification process (IAV)—great for platforms. Just reach out below to learn more!

Learn more about ACH for business

Reach out to one of our specialists for how you can tap the ACH network.


Thank you

A Dwolla representative will reach out to you within one business day.


There was an error and your the form was not submitted.

Financial institutions play an important role in the Dwolla network.

Dwolla, Inc. is an agent of Veridian Credit Union and Compass Bank and all funds associated with your account in the Dwolla network are held in pooled accounts at Veridian Credit Union and Compass Bank. These funds are not eligible for individual insurance, including FDIC insurance and may not be eligible for share insurance by the National Credit Union Share Insurance Fund. Dwolla, Inc. is the operator of a software platform that communicates user instructions for funds transfers to Veridian Credit Union and Compass Bank.