ACH and Credit Card Reject Codes: How They Work in Biller Genie

How ACH and credit card rejects work in Biller Genie. Full NACHA return code reference, which codes automatically disable Autopay, how rejects affect invoices and reminders, where to find rejects in the reports section, and how to reconcile a reject that arrives after a payment has already settled.

Written by Ellis Roe ()

Updated

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:

  1. Removes the stored ACH payment method from the customer's profile.
  2. Turns off the customer's Autopay flag.
  3. 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.

Important: Once an ACH transaction is reported as Paid, Biller Genie stops polling your gateway for further status updates on it. If your processor later notifies you of a post-settlement reject (typically by email or in your processor's portal), Biller Genie won't know automatically — your invoice will still show Paid in Biller Genie and in your accounting software even though the funds have been pulled back from your bank.

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:

  1. In your accounting software, find the payment that matched the original ACH transaction.
  2. Void or delete that payment.
  3. 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:

  1. 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.
  2. 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.
  3. 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