When an ACH payment is rejected, the receiving bank sends back a standardized NACHA return code (R01, R02, R29, etc.) that tells the originating bank why. Credit card transactions have their own decline reasons and chargeback codes from the card brands. This article explains how rejects work, how Biller Genie handles them, which return codes trigger Biller Genie to automatically remove a payment method, where to find rejected transactions in your account, and how to reconcile a reject that arrives after a payment has already settled.
How ACH works (in brief)
ACH transactions move through the ACH network operated by NACHA (the National Automated Clearing House Association). Each transaction passes between two banks — the ODFI (Originating Depository Financial Institution, where the merchant deposits) and the RDFI (Receiving Depository Financial Institution, where the customer's account lives). NACHA defines fixed daily settlement windows when transactions clear between those two banks.
Most ACH returns happen within 72 hours of the transaction being submitted. The receiving bank checks the account, the routing number, and the authorization, then either accepts the entry or returns it with an R-code. A smaller set of "consumer-authorization" returns — primarily R05, R07, R10, R11, and R51 — can be returned up to 60 calendar days after the original transaction because they're tied to a customer disputing authorization rather than an account-mechanics check. Corporate returns (R29) must be returned within two banking days.
The specific return code you see is gateway- and processor-specific. Different gateways report the same underlying NACHA return code with slightly different code strings or short descriptions. Biller Genie maps each gateway's raw code to the standard NACHA code before recording it, but if a code in your gateway's portal doesn't match the table below exactly, that's the reason. The category and behavior are the same.
How Biller Genie handles an ACH reject
When Biller Genie receives a reject from your gateway:
- The associated invoice automatically reopens for collection.
- Automated reminders resume on the invoice's normal schedule.
- Late fees resume, if you have them enabled.
- A history entry is added to the invoice noting the return code and reason.
- For a specific set of return codes (see the next section), Biller Genie also removes the stored ACH and disables Autopay on the customer to prevent the same reject from happening on the next scheduled charge.
Return codes that automatically disable Autopay
Some return codes mean the customer's stored bank account is no longer usable — the account is closed, the number is invalid, the account holder has died, the bank flagged it, or the corporate account holder has formally revoked authorization. When Biller Genie receives any of the codes below, it automatically:
- Removes the stored ACH payment method from the customer's profile.
- Turns off the customer's Autopay flag.
- Sends an email to the merchant and an in-app notification with the return code so you know which customer needs follow-up.
The autopay-disabling codes are:
| Code | Why we disable autopay |
|---|---|
| R02 | Account Closed |
| R03 | No Account / Unable to Locate Account |
| R04 | Invalid Account Number Structure |
| R13 | Invalid ACH Routing Number |
| R14 | Representative Payee Deceased or Unable to Continue |
| R15 | Beneficiary or Account Holder Deceased |
| R16 | Account Frozen / Returned per OFAC |
| R20 | Non-Transaction Account |
| R28 | Routing Number Check Digit Error |
| R29 | Corporate Customer Advises Not Authorized |
| R30 | RDFI Not a Participant in Check Truncation Program |
| R44 | Invalid Individual ID Number (ENR) |
Other return codes (such as R01 Insufficient Funds, R07 Authorization Revoked, R08 Stop Payment, R10 Originator Not Authorized) don't auto-disable Autopay. Those rejects are often recoverable — the customer may have funds the next time the charge runs, the stop payment may have been temporary, etc. — so Biller Genie leaves Autopay on. If you want to disable Autopay manually for a specific customer after one of these rejects, see Turn Off Auto Pay.
Full NACHA return code reference
The complete list of NACHA ACH return codes. Codes prefixed with the autopay-disable icon in the table above are repeated here for context.
| Code | Title | Description |
|---|---|---|
| R01 | Insufficient Funds | Account did not have enough funds to cover the debit. |
| R02 | Account Closed | The receiving bank has closed the account. |
| R03 | No Account / Unable to Locate | The account number doesn't match any account at the receiving bank. |
| R04 | Invalid Account Number Structure | The account number format is invalid for this bank. |
| R05 | Unauthorized Consumer Debit | Consumer did not authorize the debit. |
| R06 | ODFI Requested Return | The originating bank requested the return. |
| R07 | Authorization Revoked | Consumer withdrew prior authorization. |
| R08 | Stop Payment | Consumer placed a stop payment on the transaction. |
| R09 | Uncollected Funds | Insufficient collected funds available. |
| R10 | Originator Not Authorized | Originator is not known or not authorized to debit the receiver's account. |
| R11 | Customer Advises Not Within Terms | Payment falls outside the authorization parameters. |
| R12 | Account Sold to Another DFI | Account transferred to a different financial institution. |
| R13 | Invalid ACH Routing No. | The routing number is incorrect. |
| R14 | Representative Payee Deceased | Account representative has died. |
| R15 | Beneficiary Deceased | Account holder is deceased. |
| R16 | Account Frozen / OFAC Return | Account is frozen or flagged by OFAC. |
| R17 | File Record Edit Criteria Error | Suspicious entry with invalid account information. |
| R18 | Improper Effective Date | The transaction effective date is invalid. |
| R19 | Amount Field Error | Dollar amount contains errors. |
| R20 | Non-Transaction Account | Account type can't process this kind of transaction. |
| R21 | Invalid Company ID | Company identification is incorrect. |
| R22 | Invalid Individual ID | Individual identification is incorrect. |
| R23 | Receiver Refused Credit | Recipient refused the payment. |
| R24 | Duplicate Entry | Payment is a duplicate of a previous entry. |
| R25 | Addenda Error | Additional-data section contains errors. |
| R26 | Mandatory Field Error | Required field is missing or invalid. |
| R27 | Trace Number Error | Trace number is incorrect. |
| R28 | Routing No. Check Digit Error | Check digit in the routing number is wrong. |
| R29 | Corporate Customer Advises Not Authorized | Corporate account holder did not authorize the debit. |
| R30 | RDFI Not in Check Truncation Program | Receiving bank not participating in check truncation. |
| R31 | Permissible Return | Allowed return under specific circumstances. |
| R32 | RDFI Non-Settlement | Receiving bank unable to settle. |
| R33 | Return of XCK | Returned check-related entry. |
| R34 | Limited Participation DFI | Bank has limited participation status. |
| R35 | Improper Debit | Debit entry is improper. |
| R36 | Improper Credit | Credit entry is improper. |
| R37 | Source Document Presented | Original document was presented for payment. |
| R38 | Stop Payment on Source Document | Stop payment issued on the source document. |
| R39 | Improper Source Document | Source document is invalid. |
| R40 | Return of ENR | Enrollment entry returned. |
| R41 | Invalid Transaction Code | Transaction code is incorrect. |
| R42 | Routing No. / Check Digit Error | Routing information contains errors. |
| R43 | Invalid DFI Account No. | Account number format is invalid. |
| R44 | Invalid Individual ID No. | Individual ID is incorrect. |
| R45 | Invalid Individual / Company Name | Name on the account is invalid. |
| R46 | Invalid Representative Payee Indicator | Payee designation is incorrect. |
| R47 | Duplicate Enrollment | Entry is a duplicate enrollment. |
| R50 | State Law Affecting RCK Acceptance | State law prevents check conversion. |
| R51 | Ineligible / Improper Item Related to RCK | Check conversion entry is ineligible. |
| R52 | Stop Payment on Item Related to RCK | Stop payment on a check conversion item. |
| R53 | Item and RCK Presented for Payment | Both versions presented simultaneously. |
| R61 | Misrouted Return | Return sent to the wrong financial institution. |
| R62 | Erroneous / Reversing Debit | Entry incorrectly reverses a prior debit. |
| R67 | Duplicate Return | Return is a duplicate of a prior return. |
| R68 | Untimely Return | Return submitted outside the allowed timeframe. |
| R69 | Field Error | Data field contains processing errors. |
| R70 | Permissible Return Not Accepted | Allowed return rejected by originator. |
| R71 | Misrouted Dishonored Return | Dishonored return sent incorrectly. |
| R72 | Untimely Dishonored Return | Dishonored return submitted late. |
| R73 | Timely Original Return | Original return submitted within the deadline. |
| R74 | Corrected Return | Return corrects an earlier return. |
| R75 | Return Not Duplicate | Return is legitimate, not duplicate. |
| R76 | No Errors Found | Bank found no errors in the transaction. |
| R77 | Non-Acceptance of R62 | Originator rejected the R62 reversal entry. |
| R80 | IAT Coding Error | International transfer code is incorrect. |
| R81 | Non-Participant in IAT Program | Bank not participating in the international program. |
| R82 | Invalid Foreign RDFI Identification | Foreign bank identification is invalid. |
| R83 | Foreign RDFI Unable to Settle | Foreign bank cannot complete settlement. |
| R84 | Not Processed by Gateway | Gateway did not process the payment. |
| R85 | Incorrectly Coded Outbound Int'l Payment | International payment contains coding errors. |
For NACHA's authoritative documentation, see the NACHA Operating Rules.
Credit card declines and chargebacks
Credit card transactions don't use the NACHA return codes above. Card transactions have two separate kinds of negative outcomes:
- Declines — the gateway rejects the transaction at the moment of charging (insufficient credit, do-not-honor, expired card, fraud-rule trigger, etc.). The customer can usually retry with a different card or after the issue is resolved. The exact decline reason text comes from your processor and varies — see Troubleshooting Declined Transactions for the most common ones.
- Chargebacks — a customer disputes a charge with their card issuer after the fact. The issuer reverses the funds while the dispute is investigated. Chargebacks are handled in your processor's chargeback portal (not Biller Genie); Biller Genie does not get a real-time signal that a chargeback occurred.
Biller Genie's autopay behavior on credit cards is narrower than on ACH:
- If an Autopay attempt fails because the stored card is expired (Biller Genie detects this locally from the stored expiration date), Autopay is automatically disabled for that customer and an invoice timeline entry is added.
- Other decline reasons (insufficient credit, do-not-honor, etc.) do not auto-disable Autopay. Biller Genie leaves Autopay on so the next scheduled run can attempt again.
- Chargebacks do not auto-disable Autopay either. If you decide a chargebacked customer shouldn't be billed again, turn off their Autopay manually.
Finding rejects in the Reports section
Three reports in Biller Genie help you track ACH transactions and their outcomes:
- Pending Transactions report — ACH transactions that have been submitted but not yet settled. This is the queue of in-flight payments where a reject could still arrive. See Pending Transactions Report for a full walkthrough.
- Rejected Transactions report — every ACH transaction that came back with a return code, along with the code itself. See Rejected Transactions for the report walkthrough.
- All Transactions report — every transaction (CC and ACH, all statuses) in one place if you want a full audit view. See All Transactions Report.
Rejects that happen after a payment has already settled
Some ACH rejects can arrive after the initial Paid status — this is most common with the consumer-authorization return codes (R05, R07, R10, R11, R51) that can come back up to 60 days later, but it can happen on other codes too if the originating or receiving bank reports late.
When this happens, you need to manually reconcile your books and your Biller Genie account. The steps below cover the two common cases.
Reconciling a post-settlement reject in your accounting software
Before either method below, if the customer has Autopay on with the failed payment method, turn off Autopay for that customer so the next scheduled charge doesn't re-fail.
Method 1 — If the original period is still open
The cleanest fix when your accounting period hasn't been closed yet:
- In your accounting software, find the payment that matched the original ACH transaction.
- Void or delete that payment.
- Let Biller Genie sync. The original invoice automatically reopens, and your accounting books are corrected within the same period.
Method 2 — If the original period is closed or locked
If your accounting period is locked (a common GAAP practice), don't go back and void the original payment — it'll break your books for that month. Instead, leave the original alone and record the reversal in the current period:
- Create an expense (or vendor check) in your accounting software that reflects the bank pulling the funds back. Date it the day you're performing the action. Use an appropriate clearing account or A/R category for the line item, with the original invoice number in the memo so it's traceable.
- Duplicate the original invoice as a new invoice for the same customer, same amount, dated today, marked Due on Receipt. Add a memo line like "Re-bill for original Invoice #<number> — post-settlement ACH return on <date> (code <Rxx>)" so the customer (and you) know what it's for.
- Sync. The new invoice flows back into Biller Genie as Open / Unpaid and can be collected like any other invoice.
If you're managing many post-settlement rejects across multiple customers in the same period, our internal process for reconciling them in batch involves a clearing account that nets to zero once you've processed every reject from a given bank-statement debit. Reach out to Biller Genie support if you'd like guidance setting that up.
Still having trouble?
If you're trying to reconcile a reject you don't understand or you're seeing reject codes that don't match the table above, contact support@billergenie.com and include:
- The customer name and invoice number
- The reject code and reason text reported by your gateway
- Whether the reject arrived before settlement or after
- The current status of the invoice in Biller Genie