IBAN Validator & Formatter

Validate IBANs with the ISO 13616 mod-97 algorithm. Format, decode, and look up country lengths.

Enter an IBAN and click Validate / Format.

How to Use the IBAN Validator

  1. 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.
  2. 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).
  3. Reference tab — a complete table of IBAN lengths and BBAN formats for every country that has adopted the standard.
  4. Try Example — loads the canonical test IBAN GB82WEST12345698765432 from 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., GB for United Kingdom, DE for 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:

  1. Remove any spaces from the IBAN string and convert all letters to uppercase.
  2. Move the first four characters (country code + check digits) to the end: WEST12345698765432GB82.
  3. Replace each letter with its integer value: A=10, B=11, …, Z=35. This produces a long numeric string.
  4. Interpret the entire string as a large integer and compute number mod 97.
  5. 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.

Frequently Asked Questions

An IBAN (International Bank Account Number) is a standardized international numbering system developed by the ISO (ISO 13616) and SWIFT to uniquely identify bank accounts across national borders. An IBAN begins with a 2-letter country code (ISO 3166-1 alpha-2), followed by 2 check digits calculated using the mod-97 algorithm, and then the BBAN (Basic Bank Account Number) — a country-specific string of letters and digits encoding the bank, branch, and account number.
IBAN validation uses the mod-97 algorithm specified in ISO 13616. The process is: (1) Move the first 4 characters (country code + check digits) to the end of the string. (2) Replace each letter with its numeric equivalent (A=10, B=11, ..., Z=35). (3) Interpret the resulting string as a large integer and compute its remainder when divided by 97. A valid IBAN produces a remainder of exactly 1. This tool uses JavaScript's BigInt to handle the large integers without floating-point precision errors.
The BBAN (Basic Bank Account Number) is the country-specific part of an IBAN that follows the 4-character prefix (country code + check digits). The BBAN format and length varies by country. For example, a German BBAN is 18 digits (8-digit bank code + 10-digit account number), while a UK BBAN is 18 alphanumeric characters (4-letter bank code + 6-digit sort code + 8-digit account number). The BBAN length determines the total IBAN length for each country.
IBANs are mandatory within the Single Euro Payments Area (SEPA), which includes all EU member states, EEA countries (Iceland, Liechtenstein, Norway), Switzerland, and the United Kingdom. Outside SEPA, many countries in the Middle East, North Africa, and the Caribbean have adopted IBANs voluntarily. The United States, Canada, Australia, and most of Asia still use different account number formats.
An IBAN identifies a specific bank account at a specific institution in a specific country. A SWIFT code (also called a BIC — Bank Identifier Code) identifies the bank institution itself, not the account. For international wire transfers you typically need both: the IBAN to specify the account and the SWIFT/BIC to route the payment to the correct bank.