Skip to content
Learn

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