IBAN Validator & Formatter
Validate IBANs with the ISO 13616 mod-97 algorithm. Format, decode, and look up country lengths.
How to Use the IBAN Validator
- Validate mode — paste any IBAN (with or without spaces) and click Validate / Format. The tool checks the mod-97 checksum and reports the country, check digits, BBAN, and bank code.
- Format mode — same input; the tool also displays the IBAN in paper/print format with spaces every 4 characters (e.g.,
GB82 WEST 1234 5698 7654 32). - Reference tab — a complete table of IBAN lengths and BBAN formats for every country that has adopted the standard.
- Try Example — loads the canonical test IBAN
GB82WEST12345698765432from the ISO 13616 specification.
What Is an IBAN?
The International Bank Account Number (IBAN) is a globally standardized format for identifying bank accounts, defined by ISO 13616 and maintained by SWIFT. It was introduced to simplify international wire transfers within Europe and is now mandatory across the 36-country SEPA zone. An IBAN is not a new account number — it is a way to express your existing account number in a format that can be processed automatically by any bank in the world.
IBAN Structure
An IBAN consists of three components:
- Country Code (2 letters) — the ISO 3166-1 alpha-2 country code of the country where the account is held (e.g.,
GBfor United Kingdom,DEfor Germany). - Check Digits (2 digits) — a mod-97 checksum that allows the recipient bank's system to verify the IBAN has not been mistyped or corrupted in transit.
- BBAN (variable length) — the Basic Bank Account Number, which is country-specific. In Germany the BBAN is 18 digits; in the UK it is 18 alphanumeric characters encoding a 4-character bank identifier, a 6-digit sort code, and an 8-digit account number.
The Mod-97 Validation Algorithm
IBAN validation uses a modular arithmetic check defined in ISO 7064:
- Remove any spaces from the IBAN string and convert all letters to uppercase.
- Move the first four characters (country code + check digits) to the end:
WEST12345698765432GB82. - Replace each letter with its integer value: A=10, B=11, …, Z=35. This produces a long numeric string.
- Interpret the entire string as a large integer and compute
number mod 97. - If the remainder equals exactly 1, the IBAN is valid. Any other result means the IBAN contains an error.
This tool performs the mod-97 calculation using JavaScript's BigInt type to avoid floating-point precision loss on the large integers that arise from long IBANs (up to 34 digits after letter substitution).
IBAN vs. Account Number
Your IBAN does not replace your domestic account number — it extends it with the country code and check digits. When transferring money domestically, you typically use your sort code and account number as before. When receiving an international transfer, you provide your IBAN and your bank's SWIFT/BIC code. The IBAN uniquely identifies your account globally without the recipient needing to know local routing formats.
SEPA and Global Adoption
Within the Single Euro Payments Area (SEPA), IBANs are mandatory for all credit transfers and direct debits. SEPA covers all 27 EU member states, plus Iceland, Liechtenstein, Norway, Switzerland, and the United Kingdom (post-Brexit). Outside SEPA, over 80 countries have adopted IBANs voluntarily, including Jordan, Saudi Arabia, Brazil, and most of the Caribbean. The United States, Canada, Australia, China, Japan, and India do not use IBANs for domestic transfers; international payments to these countries still require SWIFT routing numbers or equivalent local identifiers.
Common IBAN Errors
- Transposed digits — swapping two adjacent digits is the most common data-entry error. The mod-97 check catches this reliably.
- Wrong country length — German IBANs are always 22 characters; UK IBANs are always 22 characters; French IBANs are 27 characters. If the length does not match the country's specification, the IBAN is wrong.
- Missing check digits — some systems strip leading zeros or special characters from the check digit field. Always transmit IBANs as a complete, unmodified string.
- Mixed up IBAN and account number — a German account number is 10 digits; the IBAN is 22 characters. Confusing them is surprisingly common when migrating legacy payment systems.
For other financial calculation tools, see our Timestamp Converter and Base64 Encoder.