Slash raises $100M Series C at a $1.4B valuation

Learn more
R20

ACH Return Code R20: Non-Transaction Account

Non-Transaction Account

R20: Non-Transaction Account Explained

The R20 return code can be returned on either consumer or non-consumer accounts. ACH R20 indicates that the ACH entry was directed to an account that does not support transactions — such as a savings account, money market, certificate of deposit, or loan account. The Receiving Depository Financial Institution (RDFI) must return an R20 entry within 2 banking days of settlement.

The standard in finance

Slash goes above with better controls, better rewards, and better support for your business.

The standard in finance

What is an ACH Return Code?

An ACH return code is a standardized code used to explain why an Automated Clearing House (ACH) transaction was returned by the receiving bank.

Codes are issued by the RDFI and maintained by Nacha, the organization that governs the ACH Network. Certain codes may apply to consumer accounts, non-consumer (business) accounts, or both. These codes help banks, payment processors, and originators understand what went wrong during an ACH transaction so they can determine the appropriate next steps, such as retrying the payment, correcting information, or contacting the customer.

What Does R20 Mean?

ACH return code R20 means that the account is open and the number is valid, but the account type is not set up to receive or send ACH transactions. The issue is not with the account holder's identity, balance, or authorization — it's with the fundamental nature of the account. ACH is specifically desinger for transaction (checking) accounts.

Account Types That Trigger R20

Below are the account types that cause ACH R20:

  • Savings accounts with transaction restrictions
  • Money market accounts with limited ACH access
  • Certificates of deposit (CDs)
  • Loan accounts and lines of credit
  • Investment and brokerage accounts
  • Bank-specific restricted accounts (trust, custodial, escrow)

It is important to note that each bank has its own policies on which account types accept ACH.

When a Previously Working ACH Starts Returning R20

A common and underreported scenario: a customer provided a valid checking account, the ACH worked fine for months, then R20 returns begin.

This would have happened if the customer converts their account to a money market for better interest rates. Meaning, the account number is the same, but the account type would have changed.

To prevent this, always re-verify the account type when a R20 appears on a previously healthy payment relationship.

R20 vs Regulation D

Before 2020, Regulation D limited savings account transactions to 6 per month. The Fed suspended this limit in 2020, but many banks retained internal restrictions on ACH activity in savings accounts. R20 can still occur on savings accounts even though the federal 6-transaction cap no longer applies.

How to Fix an R20 Return

Tips to fix an R20 Return:

  • Contact the customer and explain that the account type can't accept ACH
  • Ask specifically for a checking account number
  • Request a voided check to confirm account type
  • Submit a new ACH entry
  • Do not re-present the original against the non-transaction account

How to Prevent R20 Returns

Key preventative tips against R20 returns:

  • At payment setup, explicitly ask customers to confirm they are providing a checking account (not a savings or an investment account)
  • Include the account type as a field in your enrollment form
  • Use instant account verification (IAV) to confirm account type before the first ACH submission

Sending ACH Payments with Slash

Slash's vendor onboarding workflow explicitly captures and validates account type at setup, flagging savings or non-checking accounts before they generate R20 returns.¹ When an R20 does occur, Slash automatically pauses future ACH attempts and notifies the AP team to collect checking account details.

You can send domestic or international ACH payments using Slash by following these steps:

  1. Navigate to the Payments dashboard and click Transfer Funds in the top-right corner.
  2. Select a recipient using saved contact and banking information, or add a new recipient by entering their contact and bank details.
  3. Choose the Slash account you want to use as the payment source, select ACH Transfer as the payment method, choose the destination bank account, and enter the payment amount (in USD).
  4. Optionally, send the recipient an email confirmation with a payment description. You can also add a memo with internal notes that are visible only to you and other Slash account administrators.
  5. Review the recipient's bank name, account number, and ACH routing number to ensure the payment details are correct.
  6. Once all information is confirmed, click Send Payment.

Slash offers 24/7 support by phone and email to help resolve any issues with sending payments. You can also improve how you manage ACH transfers by scheduling recurring ACH payments, receiving low-balance notifications, and tracking returned payments alongside other transactions. With Slash, you can view all account balances, ACH activity, and transfers in one centralized dashboard.

Apply in less than 10 minutes today

Join the 10,000+ businesses already using Slash.

How to resolve this return code

Follow these steps to address and prevent this ACH return.

1

Contact the recipient.

Confirm whether the account is eligible for ACH transactions and understand any restrictions on the account.

2

Request alternative payment details.

If the account does not support ACH, ask for a different account that permits electronic debits or credits.

3

Update your records and retry.

Once you have valid ACH-eligible account information, update your payment system and resubmit the transaction.

Send ACH payments with confidence

Slash provides real-time account validation, intelligent retry logic, and comprehensive analytics to help you minimize ACH returns and optimize your payment operations.

Apply in less than 10 minutes today

Join the 10,000+ businesses already using Slash.