Key takeaways

  • A routing number has three parts: a Federal Reserve district prefix, an institution identifier, and a check digit.
  • Validation has three levels: checksum (is it well-formed?), directory (is it assigned to a real bank?), and match (is it the bank on the check?).
  • The FedACH participant directory is the authoritative source. Third-party lists go stale after mergers.
  • A valid routing number does not mean a valid check — it's the first filter, not the last.

What the nine digits mean

Every U.S. bank routing number (also called an ABA routing transit number, or RTN) is nine digits printed in magnetic ink at the bottom-left of a check, between the ⑆ symbols. It was designed by the American Bankers Association in 1910 to route paper checks between banks and is still how the ACH network addresses financial institutions today.

The structure is XXXX YYYY C:

  • Digits 1–4: Federal Reserve routing symbol. The first two digits identify the Federal Reserve district (01–12 for banks; 21–32 for thrifts, historically; 61–72 for electronic-only). The next two identify the Fed office or processing center.
  • Digits 5–8: ABA institution identifier. The specific bank within that district.
  • Digit 9: Check digit. A single digit computed from the first eight so that transposition and single-digit errors are caught.

Large banks have many routing numbers — often one per state or acquired institution. That's normal. What's not normal is a routing number whose district prefix doesn't fit the bank at all.

Level 1: The ABA checksum

The check digit lets you test whether a routing number is even possible without looking anything up. The formula:

3(d₁ + d₄ + d₇) + 7(d₂ + d₅ + d₈) + 1(d₃ + d₆ + d₉) must be evenly divisible by 10.

Worked example with the routing number 021000021:

Position123456789
Digit021000021
Weight371371371
Product01410000141

Sum of products = 0 + 14 + 1 + 0 + 0 + 0 + 0 + 14 + 1 = 30. 30 ÷ 10 = 3 with no remainder, so the number passes. Change any single digit and it fails; swap two adjacent digits and it almost always fails.

The checksum is fast and catches typos, OCR misreads and lazy counterfeits. What it can't catch: a fabricated number that happens to pass (about one in ten random nine-digit strings does), or a real routing number copied from a real check.

Level 2: The FedACH directory

The Federal Reserve publishes the FedACH Participant RDFI directory — the list of every routing number currently able to receive ACH entries, with the institution's name, city, state, and status. It's updated regularly as banks merge, close and are acquired. This is the source of truth.

Directory validation answers a different question from the checksum: is this number assigned to a live institution right now? A routing number from a bank that was absorbed in a merger may still pass the checksum and appear in an old third-party list but be retired in FedACH. Checks from those banks are a favorite of counterfeiters because the logo still looks familiar.

Watch for stale data. Free online routing-number lookup sites often work from a copy of the directory that's months old. If you're validating at any volume, use a live or frequently refreshed FedACH feed.

Level 3: Does the routing number match the bank on the check?

This is where most counterfeits fall apart. The fraudster prints a check with a well-known bank's name and logo but uses a routing number from another institution — either because they copied the MICR line from a different check or generated a number that passes the checksum. The directory lookup returns "First National Bank of Somewhere" while the check says "Bank of America."

Compare the institution name from the directory with the bank name printed on the check. Allow for legitimate variations (a regional brand owned by a larger bank, a recent merger) but treat an outright mismatch as a decline.

What routing validation can't tell you

A routing number that passes all three levels tells you the check is drawn on a real bank and the MICR line is consistent with the face of the check. It does not tell you:

  • whether the account number exists or is open,
  • whether there are funds in the account,
  • whether the check was altered after it was written (the MICR line survives check washing untouched),
  • whether the check has been presented before, or
  • whether the person presenting it is the payee.

That's why routing validation is the first check in a verification pipeline, not the only one. Image analysis for tampering, duplicate detection, OFAC screening and ID matching cover the rest. See the full step-by-step process for verifying a check →

Routing validation for ACH

Everything above applies to ACH debits too, with one extra reason to care: an invalid routing number on an ACH entry comes back as an R13 return, and a routing number that's valid but paired with a bad account number comes back as R03 or R04. All three count toward your administrative return rate. Validating routing numbers at enrollment is the cheapest ACH-return reduction there is. ACH return codes explained →

Doing it automatically

Check verification software performs all three levels on every check without anyone reading the MICR line: OCR extracts the routing number from the image, the checksum runs instantly, the FedACH directory is queried live, and the returned bank name is compared to the bank printed on the check. The result is a pass/fail on routing plus the bank's name and location — one of the six findings that make up the fraud score.

Try it: upload a check to Check EFI and see the routing validation result alongside fraud scoring, OFAC and ID match — three verifications free. How the pipeline works →

Frequently asked questions

Can a routing number be valid but the check still be fake?

Yes. Counterfeiters often copy a genuine routing number from a real check. Routing validation proves the bank exists and matches the check; it does not prove the account exists, the funds are there, or the check was issued by the account holder. It is one check of several.

What is the ABA routing number checksum?

Multiply the nine digits by the weights 3, 7, 1, 3, 7, 1, 3, 7, 1 in order, add the results, and the sum must be evenly divisible by 10. A number that fails this test is not a routing number.

Is the routing number on a check the same as for wire transfers?

Not always. Some banks use one routing number for paper checks and ACH and a different one for wires. The number printed in the MICR line at the bottom of a check is the one to validate for check and ACH purposes.

Check EFI logo mark
Check EFI TeamWe build AI check and ACH verification software for check cashing stores, ACH originators and payment processors. Talk to us about your workflow.