What Is an IBAN? Structure, Validation & Test IBAN Generator (2026)
An IBAN (International Bank Account Number) is the standardized format banks use to identify an account for cross-border payments. If you have ever sent or received money internationally, you have used one. This guide explains what an IBAN is, how it is built, how its check digits are validated with the MOD-97 algorithm, and how developers can generate valid test IBANs safely.
What is an IBAN?
An IBAN is a single string of letters and numbers — up to 34 characters — that uniquely identifies a specific bank account in a specific country. It does not replace your national account number; it wraps it in a standard envelope so that banks in different countries can read it the same way. The format is defined by the ISO 13616 standard and is used across Europe, the Middle East, and a growing number of other regions.
The goal is simple: fewer failed or misrouted transfers. Before IBANs, every country used its own account-number format, and international payments frequently bounced because of a mistyped or misunderstood number. The IBAN adds two check digits that let any system verify the number is internally consistent before the money ever leaves the sender's bank.
IBAN structure explained
Every IBAN follows the same four-part pattern, read left to right:
- Country code — two letters (ISO 3166-1), e.g.
DEfor Germany,GBfor the United Kingdom,SAfor Saudi Arabia. - Check digits — two numbers used to validate the whole IBAN.
- BBAN (Basic Bank Account Number) — the country-specific part that identifies the bank, branch and account. Its length and layout differ per country.
Take the German example DE89 3704 0044 0532 0130 00:
DE→ country code (Germany)89→ check digits37040044→ bank code0532013000→ account number
The total length is fixed per country: Germany is always 22 characters, the UK is 22, Saudi Arabia is 24, France is 27. That fixed length is itself a useful first validation check.
How IBAN validation works (the MOD-97 check)
The two check digits are what make an IBAN self-verifying. Validation uses the MOD-97-10 algorithm from ISO 7064, and you can run it by hand:
- Move the first four characters to the end. For
DE89370400440532013000you get370400440532013000DE89. - Replace each letter with two digits, where A = 10, B = 11, … Z = 35. So
D→ 13 andE→ 14, turning the string into one large number. - Take that number modulo 97. If the remainder is 1, the IBAN is valid. Any other remainder means there is a typo somewhere.
This single step catches the overwhelming majority of human errors — transposed digits, a missing character, a wrong country length — before a payment is ever submitted. You can run the check instantly with the free PAYATE IBAN Validator, which also shows you the detected country and formatting.
Which countries use IBAN?
The IBAN system started in Europe and is mandatory across the entire Single Euro Payments Area (SEPA), which covers the European Union plus countries such as the United Kingdom, Switzerland, Norway and Iceland. Adoption then spread well beyond Europe: most of the Gulf and the wider Middle East use IBANs — Saudi Arabia, the United Arab Emirates, Qatar, Kuwait, Bahrain and others — along with countries in North Africa and parts of the Caribbean and Central Asia. In total, more than 80 countries now issue IBANs.
Some large economies, notably the United States, Canada and Australia, do not use IBANs for domestic payments. When you send money to those countries you typically use the local account number together with a routing number (US) or the bank's SWIFT/BIC, rather than an IBAN. Knowing whether a destination country is on the IBAN list is the first thing to confirm before collecting payment details.
IBAN vs account number vs SWIFT/BIC
These three are often confused, so here is the difference:
- Account number identifies your account within your bank.
- IBAN identifies your account internationally — it contains the account number plus the bank and country.
- SWIFT/BIC code identifies the bank itself in the global network, so the sending bank knows where to route the money.
For most international transfers you need both the recipient's IBAN and their bank's SWIFT/BIC. You can look up any institution's code with the SWIFT / BIC lookup, and read our deeper comparison in SWIFT Code vs IBAN: How to Send Money Abroad.
How to generate test IBANs for development
If you are building or testing a payments feature, never use a real person's IBAN in your test data. Instead, generate synthetic IBANs that are structurally valid (they pass the MOD-97 check) but do not belong to anyone. These are perfect for form validation, database seeding and QA.
The free IBAN Generator produces valid test IBANs for dozens of countries, each with correct length and check digits, so your validation logic can be exercised exactly as it would be in production — without touching real account data. Pair it with the IBAN Validator to confirm your own parser agrees.
Common IBAN mistakes to avoid
- Spaces and formatting. IBANs are often printed in groups of four for readability, but systems should strip spaces before validating or storing.
- Wrong country length. A 20-character "German" IBAN is invalid — Germany is always 22. Check the expected length per country.
- Letter case. The country code is uppercase; validation should be case-insensitive but store it uppercase.
- Assuming IBAN replaces the BIC. Many transfers still require the SWIFT/BIC alongside the IBAN.
Key takeaways
An IBAN is a standardized, self-checking account identifier for international payments: two country letters, two check digits, then the country-specific account details. The MOD-97 algorithm makes it possible to catch typos instantly, which is why validating an IBAN before submitting a transfer is always worth it. For hands-on work, use the IBAN Validator to check numbers and the IBAN Generator to create safe test data.

