Sort codes, routing numbers, and IBANs all serve the same basic purpose: identifying a bank account for transfers. But each format was developed independently, in different countries, at different points in banking history. Understanding how they compare — and when you need which one — is essential for anyone who sends or receives money domestically or across borders. This guide provides a detailed comparison of all three systems, explains the validation mechanisms behind each, and helps you decide which format you need for any given payment.
| Feature | Sort Code | Routing Number | IBAN |
|---|---|---|---|
| Region | UK & Ireland | United States | 80+ countries |
| Length | 6 digits | 9 digits | 15–34 characters |
| Format | XX-XX-XX | XXXXXXXXX | CC + check + BBAN |
| Identifies | Bank + branch | Bank + district | Country + bank + account |
| Checksum | None | 3-7-1 weighted | MOD-97 |
| Includes account number | No | No | Yes |
A sort code is a 6-digit number written as three pairs separated by hyphens (e.g., 20-00-00 for Barclays). It identifies the bank and branch for UK domestic transfers via Faster Payments, BACS, and CHAPS. Sort codes do not include a checksum — validation relies on format rules and bank data lookup.
The sort code system was introduced in the 1960s as UK banking moved towards automation. Before sort codes, bank branches were identified by name and location alone, making processing slow and error-prone. The Bankers' Automated Clearing Services (BACS) system, launched in 1968, was the primary driver behind the creation of sort codes. Today, Pay.UK maintains the Industry Sorting Code Directory (ISCD), the authoritative registry of all valid sort codes.
The first two digits of a sort code typically identify the bank, while the remaining four identify the branch. For example, sort codes beginning with 20 belong to Barclays, 60 to NatWest, and 09 to Santander. However, mergers and acquisitions have made this mapping less predictable over the decades. A sort code alone is never enough to send a payment — you always need the 8-digit account number as well.
For international transfers to the UK, the sort code is embedded within the 22-character UK IBAN. For example, in the IBAN GB29 NWBK 6016 1331 9268 19, the sort code is 60-16-13 (positions 9–14) and the account number is 31926819 (positions 15–22). This means that anyone with a UK IBAN can extract the sort code and account number from it.
A routing number (also called an ABA RTN or routing transit number) is a 9-digit code used for US domestic payments. It was introduced in 1910 by the American Bankers Association to facilitate the sorting, bundling, and delivery of paper checks to the correct bank. Over a century later, it remains the backbone of the US domestic payment system.
The structure of a routing number is more complex than it first appears. The first two digits indicate the Federal Reserve district (01–12), the next two identify the Federal Reserve bank or branch, digits 5–8 identify the specific financial institution, and the ninth digit is a check digit calculated using the 3-7-1 weighted algorithm. For example, in the routing number 021000021 (JPMorgan Chase, New York), the check digit is calculated as: (0×3 + 2×7 + 1×1 + 0×3 + 0×7 + 0×1 + 0×3 + 2×7 + 1×1) mod 10 = 0, which confirms the ninth digit of 1 is... actually, the sum must result in a multiple of 10. The algorithm multiplies each digit by 3, 7, or 1 in sequence, and the total must be divisible by 10.
Large banks often have multiple routing numbers — one per state or region. JPMorgan Chase alone has over 20 different routing numbers. This means a customer in California and a customer in New York at the same bank may have different routing numbers on their checks. Routing numbers are used for ACH direct deposits, wire transfers, bill payments, and tax refunds. You can typically find yours on the bottom left of a personal check or in your bank's online portal.
An IBAN (International Bank Account Number) is the most comprehensive format. It combines the country code, check digits, bank code, and account number into a single string. The IBAN standard was developed by the European Committee for Banking Standards (ECBS) and later adopted as ISO 13616 by the International Organization for Standardization. SWIFT acts as the formal registration authority for the IBAN standard.
Every IBAN starts with a two-letter country code (e.g., DE for Germany, FR for France), followed by two check digits, and then the Basic Bank Account Number (BBAN). The BBAN structure varies by country. A German IBAN is always 22 characters: DE89 3704 0044 0532 0130 00. A French IBAN is 27 characters. A Norwegian IBAN is just 15 characters. This variation is by design — each country's BBAN reflects its existing domestic account numbering system.
IBANs are validated using the MOD-97 algorithm (ISO 7064), which catches over 99% of transcription errors including single-digit mistakes and most transposition errors. This makes IBANs significantly more reliable for error detection than either sort codes or routing numbers. IBANs are mandatory for all cross-border payments in the SEPA zone (European Economic Area) and are widely used across the Middle East, Africa, and parts of Asia and South America.
One of the most important differences between these three formats is how they detect errors. Validation is what prevents typos from turning into misdirected payments.
Sort Code: Format-Only Validation
Sort codes have no built-in checksum. Validation consists of confirming the number is exactly 6 digits and, optionally, looking it up in the Industry Sorting Code Directory to confirm it corresponds to an active bank branch. This means a random 6-digit number could pass format validation even if it does not correspond to a real bank. For stronger verification, a database lookup is essential.
Routing Number: 3-7-1 Weighted Checksum
The US routing number uses a checksum where each digit is multiplied by 3, 7, or 1 in a repeating pattern. The sum of all nine weighted digits must be divisible by 10. This catches most single-digit errors and some transposition errors, but it is not as robust as MOD-97. Roughly 1 in 10 random 9-digit numbers will pass the checksum by chance.
IBAN: MOD-97 Checksum (ISO 7064)
The IBAN's two check digits are calculated using modular arithmetic over the entire number. The algorithm rearranges the IBAN, converts letters to numbers, and computes a remainder that must equal 1 when divided by 97. This catches 99.97% of all errors, including all single-character mistakes and nearly all transpositions. It is the gold standard for bank number validation.
The existence of three separate bank identification systems is a product of history rather than design. Each system was created to solve the same problem — routing payments accurately — but in different countries at different times, with no coordination between them.
The US routing number (1910) was the earliest, designed for the era of paper checks. The UK sort code (1960s) followed as British banks adopted computer-based clearing. Both were domestic systems with no thought to international interoperability. The IBAN (1997) was created precisely because the proliferation of incompatible domestic systems was causing errors and delays in cross-border payments within Europe. The European Union mandated IBAN usage for cross-border euro payments in 2008, and SEPA (Single Euro Payments Area) payments became IBAN-only in 2014.
Today, the US remains the largest economy that has not adopted the IBAN standard. American banks continue to use routing numbers domestically and rely on the SWIFT network (with SWIFT/BIC codes) for international transfers. The UK uses IBANs for international payments but retains sort codes for domestic ones. This patchwork of systems is unlikely to change soon, as migrating millions of bank accounts to a new numbering system would be enormously expensive and disruptive.
Choosing the right format depends entirely on where you are sending money and whether the payment is domestic or international. Here is a simple decision tree:
Sending to a UK account domestically?
Use the recipient's sort code + 8-digit account number. This is used for Faster Payments (instant, free transfers up to £1 million), BACS (next-day payments including direct debits), and CHAPS (same-day high-value transfers).
Sending to a US account?
Use the recipient's routing number + account number for domestic payments (ACH or wire). For international transfers to the US, you will also need the bank's SWIFT/BIC code since the US does not use IBANs.
Sending to Europe or another IBAN country?
Use the recipient's IBAN. For SEPA transfers within the EEA, the IBAN alone is sufficient. For non-SEPA international transfers, you may also need the bank's SWIFT/BIC code. Read more in our guide to sending money internationally.
Sending to the UK from abroad?
Use the recipient's UK IBAN (which embeds the sort code and account number). The recipient can obtain their IBAN from their bank's online portal or a printed statement.
The UK is unique in that it uses all three concepts. A UK bank account has a sort code and an account number for domestic payments. For international payments, these are wrapped into an IBAN. The relationship is deterministic: given a sort code and account number, you can construct the IBAN, and given a UK IBAN, you can extract the sort code and account number.
A UK IBAN has the structure GBcc BBBB SSSS SSAA AAAA AA, where cc is the check digits, BBBB is the bank identifier (BIC bank code), SSSSSS is the sort code, and AAAAAAAA is the account number. This means UK customers do not need to memorise a separate IBAN — it can always be derived from their existing sort code and account number.
When money crosses borders, the different numbering systems must be bridged. This is where the SWIFT network comes in. SWIFT (Society for Worldwide Interbank Financial Telecommunication) provides a global messaging layer that connects banks regardless of which domestic system they use. Each bank has a SWIFT/BIC code (8 or 11 characters) that identifies it on the network.
For a payment from the UK to the US, the sender's bank uses the SWIFT network to route the payment to the recipient's bank, identified by its SWIFT code. The routing number and account number are then used for the final "last mile" delivery within the US domestic system. Similarly, a payment from the US to Germany requires the recipient's IBAN for delivery within the SEPA network. The SWIFT network acts as the translator between these incompatible domestic systems.
Processing times for cross-border payments vary significantly. SEPA transfers within Europe typically settle within one business day. International wire transfers via SWIFT can take 1–5 business days depending on the number of intermediary (correspondent) banks involved. Learn more in our guide to international transfer times.
Many people search for terms like "US IBAN" or "UK routing number" because they assume these systems are universal. Here are the most common misconceptions:
BankCheck validates all three formats for free: IBAN, routing number, and sort code. All validation runs client-side — your data never leaves the browser. Whether you are comparing formats or just need to check a number before making a payment, paste it into BankCheck and get instant results.
Back to all guides.