PreciseBankFlowPreciseBankFlow home

ACH Return Reconciliation and Return Codes

By PreciseBankFlowPublished March 23, 2025Updated March 23, 2025

ACH return reconciliation is the work of matching each returned ACH entry on the bank statement to the original payment, reading its return code, and reversing the receipt or payment in the books. A return puts the customer's invoice back open, or a vendor's bill back unpaid. Returns that arrive after month-end are tracked so the period stays correct.

Which ACH return codes appear most, and what does each mean?

An ACH return code is the short reason, such as R01, that the receiving bank attaches when it sends an entry back. The code tells you whether to retry, ask for new bank details or stop collecting. Most small businesses see a handful of codes again and again.

The table below covers the codes a bookkeeper meets most often. The accounting actions are suggestions for a typical receivables process, not network rules.

Code Meaning Likely cause Accounting action
R01 Insufficient funds Customer's account was short Reopen the invoice; re-present if your process allows
R02 Account closed Customer moved banks Reopen the invoice; get new bank details
R03 No account or unable to locate Wrong account or name Reopen; confirm details before any new debit
R04 Invalid account number Typo in the account number Reopen; fix the record, then debit again
R10 Not known or not authorized by the account holder Debit disputed as unauthorized Reopen; stop debiting; contact the customer
R11 Not in line with the authorization Wrong amount or date Reopen; correct the entry before any new debit
R29 Corporate customer says not authorized Business account rejects the debit Reopen; get a fresh authorization

Nacha, the body that writes the ACH rules, explains the split between R10 and R11 in its note on differentiating unauthorized return reasons. R10 means the account holder does not know you or never authorized you to debit. R11 means an authorization exists but the entry did not follow it, for example the wrong amount or an early date.

Return timing depends on the code. Returns for funds or account problems tend to come back within days. Nacha's page states that R11 returns have a 60-day return timeframe. A debit you collected weeks ago can still come back.

Reversing the original receipt after an ACH return

An ACH return reversal is the entry that undoes the payment you recorded when the money first arrived. Debit accounts receivable for the customer, credit the bank account for the returned amount, and add any return fee the bank charged as bank charges. The invoice is then open again with its original due date.

Record the return as its own transaction, dated the day the bank posted it. Do not edit or delete the original receipt. The original deposit really happened, and the bank statement shows both lines. Deleting the receipt would leave a deposit on the statement with nothing to match it.

For payments you sent, the logic runs the other way. If a vendor's bank returned your ACH payment, credit the bank account back up and reopen the bill in accounts payable. Then ask the vendor for correct bank details through a known contact before paying again.

Customer receipts that came through a bank's lockbox service follow the same pattern. The guide to lockbox reconciliation covers how returned items show up in the lockbox file.

Re-presenting a debit after an ACH return

Re-presenting a debit means sending the same ACH debit again after a return, usually after an R01 for insufficient funds. Record the retry as a new receipt when it settles, not as a reversal of the return. If the retry also fails, you get a second return line to match.

Nacha's page on ACH network risk and enforcement topics sets two limits worth knowing. A retried entry must carry "RETRY PYMT" in its company entry description. And reinitiating any entry that was returned as unauthorized is an improper practice. An R10 debit cannot be retried; you need a new authorization first. Ask your bank or payment provider whether a cap on retries applies to your account.

In the ledger, keep three lines visible: the first receipt, the return and the retry. Tag them with the same invoice number. When someone reviews the account later, they can follow the money without guessing which deposit replaced which.

What about ACH returns that land after month-end?

An ACH return that posts in the next month belongs to that month, because the bank posted it then. At month-end the original receipt was valid, so nothing is adjusted in the closed period. You record the return on the date it posts, and the invoice reopens in the new month.

The closed month's bank reconciliation does not change. The original receipt matched the deposit, and the return was not on that statement. The effect shows up in receivables instead. If many collections are recent ACH debits from consumer accounts, a material share could still be returned during the 60-day window.

Two habits help:

  1. At month-end, list ACH debits collected in the last few weeks above a set amount. That list is your exposure to late returns.
  2. When a late return arrives, note which period the original receipt was booked in. A pattern of late returns tells you the allowance for doubtful accounts may be too low.

Businesses that run money through several linked accounts should check which account the return actually posted to. With sweeps between sub-accounts and a master, a return can land in an account you did not expect. The guide to zero balance account reconciliation covers following those sweeps.

ACH return mistake: netting the return against new receipts

The common ACH return mistake is subtracting a return from the day's new deposits and booking one net figure. The bank shows the return as a separate debit, so the net figure matches nothing on the statement. The customer's invoice also stays marked paid when the money is gone.

Netting usually happens when a payment processor or bank sends a single settlement that already has the returns taken out. Even then, book the parts. Record the gross receipts, record each return against its own customer, and let the net match the bank credit. The approach in reconciling cash receipts to bank deposits applies here: every receipt in the books traces to a deposit, and every deposit traces back to receipts.

A second mistake is booking the return to a suspense account and leaving it there. If a return cannot be matched to a customer on the day it posts, park it briefly, but clear it within the week. Old returns in suspense hide unpaid invoices.

The bank statement is the record of truth for returns. PreciseBankFlow checks that each statement foots from opening to closing balance and lines up statement items with the ledger, so a return debit that was never booked shows up as an unmatched item on the exception report.

All posts in Payment and deposit reconciliations