ACH return codes, explained
ACH return codes tell you why an ACH entry came back. Different returns need different responses, and blindly retrying every return can create more problems.
R01: Insufficient Funds
R01 means the available balance was not sufficient for the applicable entry.
The account itself may be valid. The issue is funds availability.
For a payout program sending credits, the relevant return profile can differ from a debit collection program. Interpret the code in the context of the entry type and your bank or processor rules.
R02: Account Closed
R02 means the account has been closed.
R02 Account closed Action: obtain a new destination
Sending the same instruction to the same account again will not solve it.
R03: No Account or Unable to Locate Account
R03 means the receiving institution could not locate the account using the information provided.
The next step is usually to verify the recipient’s account details.
R04: Invalid Account Number Structure
R04 points to a problem with the account number structure.
The destination should be corrected before another attempt.
R24: Duplicate Entry
R24 identifies a duplicate ACH entry.
This is one reason payout systems need duplicate protection before they submit payments.
The right question is not simply “Can we retry?”
It is “Do we know whether this obligation has already been paid?”
Turn codes into actions
Instead of showing this:
R03
show this:
Payout returned Reason Account could not be located Action Ask the recipient to update bank information Retry Only after the destination is corrected
Keep the return attached to the obligation
Obligation $750 owed Attempt 1 ACH Returned R03 Attempt 2 RTP Completed Result Obligation satisfied
Finance can now explain why two attempts exist without treating them as two separate amounts owed.
See returns handled automatically. We’ll show a returned payment update the ledger and queue its next action.
Book a demo