IBAN Validator
Valid
-
Country
-
Formatted
-
How to use this IBAN validator
- Paste an IBAN, with or without spaces.
- See instantly whether it's valid, its country, and a neatly formatted version.
- Use this before sending an international wire transfer to catch typos early.
How is validity checked?
IBANs use a checksum based on the MOD-97 algorithm (ISO 7064): the country code and check digits are moved to the end, letters are converted to numbers, and the result must be divisible by 97 with no remainder.
Does a valid IBAN guarantee the account exists?
No — this only checks the mathematical checksum and format, confirming the IBAN is well-formed. It doesn't verify that the account is real, open, or belongs to a specific person.
Do all countries use IBANs?
No, IBAN is mainly used in Europe and has been adopted by many countries worldwide, but some major economies (like the US) use different account/routing number systems instead.
Walking through the MOD-97 checksum algorithm step by step
The MOD-97 validation process this tool implements follows a specific, standardized sequence worth understanding in full. First, the four leading characters (the two-letter country code and two check digits) are moved to the end of the string instead of staying at the beginning. Next, every letter in the resulting string is converted to a two-digit number according to a fixed rule (A=10, B=11, and so on through Z=35), since the checksum math itself only works with numeric digits. This produces one very large number, sometimes dozens of digits long — considerably too large for standard numeric types to handle directly, so the actual implementation computes the remainder progressively in smaller chunks rather than ever building the full giant number at once. Finally, that large number is checked for divisibility by 97: a genuinely valid IBAN always produces a remainder of exactly 1 under this specific calculation, a deliberate, specific detail baked into the ISO 7064 standard rather than the more intuitive-seeming remainder of 0.
Why this specific checksum design is so effective at catching typos
The MOD-97 algorithm wasn't chosen arbitrarily — it was specifically selected because this class of checksum mathematically guarantees detecting the most common real-world data entry mistakes with very high reliability. It reliably catches any single incorrect digit anywhere in the number, and — genuinely importantly, since this is a mistake people make constantly when copying numbers by hand — it also reliably catches transposition errors, where two adjacent digits get accidentally swapped (like typing "21" instead of the correct "12"). This is precisely why a checksum-based validator like this one is so specifically useful before actually sending an international wire transfer: it catches the exact category of small, easy, all-too-human copying mistakes that would otherwise misroute real money to a bank account the sender never actually intended, before the transfer is even submitted.
What's actually encoded inside an IBAN's structure
An IBAN isn't just an arbitrary string of digits — it has a defined, layered internal structure. The first two characters are always a country code (like DE for Germany, or FR for France), immediately followed by two check digits used specifically for the MOD-97 validation described above. Everything after those first four characters is called the BBAN (Basic Bank Account Number), and its own internal structure and total length are actually defined independently by each individual country's own national banking standards rather than by one single universal format — Germany's BBAN, for instance, encodes an 8-digit bank code (the Bankleitzahl) followed by a 10-digit account number, while other countries structure their own BBAN quite differently. This is precisely why IBAN total length genuinely varies by country (anywhere from 15 to 34 characters total), and why this tool needs country-specific length rules, not one single fixed length applied to every IBAN worldwide.
Why IBAN exists — standardizing what used to be dozens of incompatible national formats
Before IBAN, each individual country maintained its own separate, often mutually incompatible domestic account numbering format, which made processing genuinely international bank transfers meaningfully more error-prone and labor-intensive — a bank receiving a transfer from another country had no single, standardized, universal way to validate that an incoming foreign account number was even correctly formatted at all. IBAN, developed by the European Committee for Banking Standards and later formalized as ISO 13616, addresses this specific problem by wrapping each country's own existing BBAN inside one single, unified, universally checksummed format. This standardization became particularly consequential with the creation of SEPA (the Single Euro Payments Area), which specifically requires IBAN for euro-denominated transfers across the entire eurozone, making the format now a genuinely everyday, routine part of European banking rather than merely an optional convenience layered on top of it.
Limitations of this tool
This tool validates an IBAN's format and MOD-97 checksum entirely locally in your browser — as explained in the FAQ above, a mathematically valid checksum confirms the number is correctly formatted, but it doesn't confirm the underlying account actually exists, is currently open, or genuinely belongs to whoever you believe it belongs to; only the receiving bank itself can ultimately confirm those specific facts. It also doesn't perform full national bank-code lookups to identify a specific bank's actual name and physical branch from the encoded BBAN — it validates the IBAN's overall structure and checksum correctness, not the deeper semantic banking details encoded specifically within each individual country's own particular BBAN format.