Table of Contents
When a Simple Typo Stops an ACH Payment
ACH payments are fast, secure, and ideal for everything from payroll to customer billing. But as automated as they are, ACH transactions rely on precision—especially when it comes to the routing number. If just one digit is off, the entire transaction can fail.
That’s exactly what happens when you get ACH Return Code R28—a sign that there’s a problem with the check digit in the routing number. This isn’t a fraud issue or a customer dispute—it’s a formatting error that’s easy to fix once you know what went wrong.
Let’s break down what R28 – Routing Number Check Digit Error means, what causes it, and how to correct it quickly.
What Does ACH Return Code R28 Mean?
ACH Return Code R28 stands for:
“Routing Number Check Digit Error.”
According to NACHA’s official definition:
R28 – Routing Number Check Digit Error: The routing number entered in the transaction failed the mathematical check used to validate it. It may be mistyped or contain an incorrect check digit.
In simple terms: the routing number doesn’t pass the check digit formula used by banks to verify its accuracy. So even if the number looks right at a glance, it’s rejected because it doesn’t add up behind the scenes.
What Is a Routing Number Check Digit?
U.S. bank routing numbers are nine digits long. The first eight digits identify the bank or financial institution. The ninth digit is a check digit, calculated using a specific formula to ensure the number is valid.
If the check digit doesn’t match the expected result from the formula, the transaction is rejected—because the system assumes the routing number is either mistyped or invalid.
Common Reasons for R28 Returns
ACH Return Code R28 is most often caused by:
A typo in the routing number (especially in the last digit)
Copy-paste errors when pulling routing numbers from documents
Using a wire routing number instead of the correct ACH routing number
Entering a routing number that doesn’t exist or isn’t part of the Federal Reserve system
An outdated or incorrect bank identifier after a bank merger or acquisition
These errors typically happen during the initial account setup or data entry.
How to Fix ACH Return Code R28
Here’s how to fix a check digit error and get your payment moving:
1. Review the Routing Number
Double-check the 9-digit routing number entered in the payment file. Make sure:
It has exactly 9 digits
There are no extra characters or formatting issues
You didn’t accidentally use a wire or paper check routing number instead of the ACH version
2. Use a Routing Number Lookup Tool
There are many online tools that can validate routing numbers in real time. These tools use the same check digit algorithm that the ACH network does—so they’re great for confirming accuracy before resubmitting a payment.
3. Contact the Customer or Bank (If Needed)
If you’re unsure which routing number is correct, ask your customer to confirm their ACH routing number, or contact their bank directly for clarification.
4. Update the Information and Resubmit
Once the correct routing number is confirmed and entered, resubmit the payment through your ACH processor.
How to Prevent R28 ACH Returns in the Future
These small formatting issues are easy to avoid with the right systems in place:
Use software that validates routing numbers automatically before submission
Avoid manual data entry when possible—use verified forms or bank account linking tools
Train your team to collect and double-check routing numbers from customers carefully
Don’t assume all routing numbers from checks are valid for ACH—some institutions use different codes for wires, checks, and ACH
A little extra care up front can prevent a lot of backtracking later.
Get ACH Processing With Durango
ACH Return Code R28—“Routing Number Check Digit Error”—means the routing number entered didn’t pass the mathematical validation required for ACH processing. While it’s a technical issue, it’s an easy one to fix—and usually the result of a simple typo.
At Durango Merchant Services, we help businesses reduce ACH return rates by offering smart payment tools, validation processes, and ongoing support. Whether you’re processing a handful of transactions a month or thousands, we’ll help you get them right the first time.