Home › Developer Tools › Routing Number Validator

Routing Number Validator

Type a 9-digit US bank routing number (ABA routing transit number) to check its format and checksum instantly. The tool shows which Federal Reserve district the prefix belongs to, the corrected check digit if there is a typo, and the full calculation. Bulk mode checks whole lists and exports CSV.

Last updated:

Spaces and dashes are ignored. The routing number is the 9-digit number at the bottom left of a US check.

Try:

Checks the format and checksum only, in your browser. A valid checksum does not prove that a bank or account exists; confirm payment details with the bank.

Advertisement
Advertisement

How to use the Routing Number Validator

  1. Type or paste the routing number; the result updates as you type.
  2. Read the verdict: valid or invalid, with the reason when it fails.
  3. Check the details: prefix type, Federal Reserve district and the digit breakdown.
  4. Look at the step-by-step checksum to see exactly why the number passes or fails.
  5. For many numbers, open Bulk check, paste one per line and download the CSV.

Anatomy of an ABA routing number

The American Bankers Association introduced routing transit numbers in 1910 so that checks could be sorted and sent to the right bank. Every routing number has nine digits in the pattern XXXX YYYY C:

DigitsNameMeaning
1–2PrefixFederal Reserve district (01–12) and institution type (see below)
3–4Fed office codeTogether with the prefix forms the Federal Reserve routing symbol; it identifies the Federal Reserve office/check-processing center the number was originally assigned to
5–8ABA institution identifierIdentifies the bank, credit union or thrift within that Fed area
9Check digitCalculated from the first eight digits so the 3-7-1 weighted sum is a multiple of 10

Routing number prefixes and Federal Reserve districts

DistrictLetterFederal Reserve BankBank prefixThrift prefixElectronic prefix
1ABoston012161
2BNew York022262
3CPhiladelphia032363
4DCleveland042464
5ERichmond052565
6FAtlanta062666
7GChicago072767
8HSt. Louis082868
9IMinneapolis092969
10JKansas City103070
11KDallas113171
12LSan Francisco123272

Prefix 00 is used by the US Government and 80 by traveler's checks. Banks that merge or move often keep their original routing number, so the district shows where the number was first issued, not necessarily where the bank is today.

Worked example and validation tips

Take 021001208: 3×(0+0+2) + 7×(2+0+0) + 1×(1+1+8) = 6 + 14 + 10 = 30. Thirty is a multiple of 10, so the checksum passes. Change any single digit and the total stops being a multiple of 10.

  • Validate on input, not just on submit. In payment forms, check length, digits only, prefix range and checksum before the user continues.
  • Store routing numbers as text. Many start with 0, and saving them as integers silently drops the leading zero.
  • Don't confuse the MICR line order. On a check the routing number is printed between ⑆ transit symbols; the account number and check number follow.
  • Use the official directory for bank names. A passing checksum is a typo filter, not proof that the bank exists.

Frequently asked questions

How is a routing number checksum calculated?

Multiply the nine digits by the repeating weights 3, 7, 1, 3, 7, 1, 3, 7, 1 and add the results: 3×(d1+d4+d7) + 7×(d2+d5+d8) + (d3+d6+d9). The routing number is valid only if that total is a multiple of 10. The ninth digit is the check digit chosen to make this true.

Does a valid checksum mean the bank exists?

No. The checksum only catches typing mistakes such as a single wrong digit and most swapped neighboring digits. A number can pass the check and still not be assigned to any bank, or belong to a different bank than you expect. Confirm with the bank or your payment provider before sending money.

What do the first two digits of a routing number mean?

They show the Federal Reserve district and the institution type. 01–12 are the 12 Federal Reserve districts for banks, 21–32 are the same districts for thrift institutions (add 20), 61–72 are electronic-only numbers (add 60), 00 is the US Government and 80 is for traveler's checks. Other prefixes are not valid.

Which Federal Reserve districts are there?

There are 12: 1 Boston, 2 New York, 3 Philadelphia, 4 Cleveland, 5 Richmond, 6 Atlanta, 7 Chicago, 8 St. Louis, 9 Minneapolis, 10 Kansas City, 11 Dallas and 12 San Francisco. Each also has a letter from A to L, printed on paper currency.

Where do I find my routing number?

On a US personal check it is the 9-digit number printed first at the bottom left, before the account number. It is also in your online banking app or on the bank's website. Some banks use a different routing number for wire transfers than for ACH direct deposits.

Can this tool tell me the bank name?

No. Bank names come from the official routing number directory, which this offline tool does not include. It checks the structure and checksum and identifies the Federal Reserve district from the prefix, without sending your number anywhere.

Is it safe to enter my routing number here?

Yes. All checks run in your browser and nothing is uploaded or stored. A routing number identifies a bank, not your account, but the tool never asks for an account number.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

IBAN ValidatorCheck an IBAN's mod-97 checksum, country and length, and see its bank code and account parts.Barcode GeneratorCreate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes as PNG or SVG.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.JSON FormatterBeautify, minify and validate JSON, with a collapsible tree view.SQL Formatter & BeautifierFormat, beautify or minify SQL queries for MySQL, PostgreSQL and more.JavaScript BeautifierFormat and beautify messy or minified JavaScript, or minify it.HTML FormatterBeautify and indent HTML code with a live preview.CSS FormatterBeautify CSS with indent controls and optional property sorting.XML FormatterBeautify, validate and minify XML with a collapsible tree view.ZIP File CreatorCompress files and folders into a ZIP.YAML Validator & FormatterValidate, format and minify YAML, and convert YAML to JSON or back.HTML MinifierMinify HTML: strip comments and whitespace safely and see how many bytes you save.CSS MinifierMinify CSS with csso or a built-in engine and see the size saved instantly.JavaScript MinifierMinify JavaScript with Terser: compress, mangle and see how many bytes you save.JSON MinifierMinify and validate JSON, sort keys and see exactly how many bytes you save.Code Diff CheckerCompare two code files side by side or unified, with syntax colors and changes highlighted.IPv6 Expander & CompressorExpand IPv6 addresses to full form or compress them per RFC 5952, one or many at once.GraphQL FormatterPretty-print and indent GraphQL queries, mutations and schemas, or minify them, instantly.CSS ValidatorValidate CSS: syntax errors, unknown properties and invalid values by line, plus auto-fix.Gzip Compress / DecompressGzip or deflate text and files, get Base64 output, and decompress Base64 or .gz files.JavaScript Syntax CheckerCheck JavaScript for syntax errors with line and column, for any ES version, script or module.JSON Schema ValidatorValidate JSON against a JSON Schema (draft-07, 2019-09, 2020-12) with clickable error paths.Markdown FormatterBeautify Markdown with Prettier: list markers, prose wrap, aligned tables and live preview.PHP FormatterBeautify PHP code with Prettier PHP: PSR-12 style, indent and brace options, syntax errors.TypeScript FormatterFormat TypeScript and TSX code with Prettier: width, tabs, semicolons and quotes options.XML MinifierMinify and validate XML: strip whitespace and comments, keep CDATA, see the size savings.C# FormatterBeautify C# code online: Allman or K&R braces, indent size and line width, clang-format option.HTML ValidatorCheck HTML for errors and warnings with line numbers, locally or with the W3C Nu checker.Java FormatterBeautify Java code online: indent size, brace style and line width, with clang-format option.JavaScript ObfuscatorObfuscate JavaScript with string encoding, renaming and control-flow flattening presets.Phone Number FormatterFormat and validate lists of phone numbers to E.164, international or national style.Python FormatterFormat Python code in Black/Ruff style: line length, quote style, indent, copy or download.Responsive Design CheckerPreview any website at phone, tablet, laptop and desktop sizes side by side, with rotate and zoom.Browser Compatibility CheckerSearch CSS, JavaScript and HTML features and see which browser versions support them.Core Web Vitals CheckerCheck real-user LCP, INP and CLS for any URL or site and see if it passes Core Web Vitals.Heading Structure CheckerPaste HTML to see its H1-H6 outline and catch missing H1s, multiple H1s and skipped levels.Website Hosting CheckerFind out who hosts a website: hosting provider, IP addresses, ASN, network owner and location.Check Digit CalculatorCalculate or validate check digits for UPC, EAN, GTIN, SSCC, ISBN, ISSN and mod 11 codes.Luhn Algorithm CheckerValidate numbers with the Luhn mod 10 check or calculate the missing check digit, step by step.XSD ValidatorValidate XML against an XSD schema in your browser and see each error with its line number.Strftime Format BuilderBuild Python and C strftime format strings by clicking tokens, with a live preview and reference.Spam Word CheckerScan an email subject and body for spam trigger words, excess caps, exclamation marks and risky links.
See all 41 Code Formatters & Validators →