Sending money internationally used to be a mess. Different countries had different account number formats, different routing systems, and different ways of identifying banks. Transfers got lost, delayed, or sent to the wrong account — with depressing regularity.
The IBAN fixed that. Or at least, it tried to.
What Is an IBAN?
IBAN stands for International Bank Account Number. It is a standardized format for identifying bank accounts across national borders. Think of it as a universal account number that works the same way whether you are in Germany, Brazil, or Saudi Arabia.
An IBAN is not a new account number — it is a standardized representation of domestic account details. It combines a country code, check digits, and a country-specific BBAN that contains a bank identifier and account information. Institutions that support IBAN can parse those fields according to the registered national format.
The standard was created by the European Committee for Banking Standards (ECBS) and formalized as ISO 13616. The SWIFT IBAN Registry release 102 (June 2026) lists 89 nationally agreed formats.
IBAN Format: How to Read One
Every IBAN follows the same structure:
CC KK BBBB XXXX XXXX XXXX XXXX XX
│ │ │ └────────────────────── Account number (variable length)
│ │ └─────────────────────────── Bank/branch identifier
│ └────────────────────────────── Check digits (2 digits)
└───────────────────────────────── Country code (2 letters)
Example: German IBAN
DE89 3704 0044 0532 0130 00
│ │ │ └──────────── Account number (0532013000)
│ │ └──────────────────── Bank code (37040044 = Commerzbank)
│ └─────────────────────── Check digits (89)
└────────────────────────── Country (DE = Germany)
Example: Spanish IBAN
ES91 2100 0418 4502 0005 1332
│ │ │ │ └────────────── Account number
│ │ │ └────────────────── Branch code
│ │ └─────────────────────── Bank code (2100 = CaixaBank)
│ └────────────────────────── Check digits (91)
└───────────────────────────── Country (ES = Spain)
Example: UK IBAN
GB29 NWBK 6016 1331 9268 19
│ │ │ │ └──────────── Account number (31926819)
│ │ │ └────────────────── Sort code (601613)
│ │ └─────────────────────── Bank code (NWBK = NatWest)
│ └────────────────────────── Check digits (29)
└───────────────────────────── Country (GB = United Kingdom)
IBAN Length by Country
IBANs are not all the same length. Each country defines its own IBAN format within the ISO 13616 standard:
| Country | Code | Length | Example |
|---|---|---|---|
| Germany | DE | 22 | DE89 3704 0044 0532 0130 00 |
| Spain | ES | 24 | ES91 2100 0418 4502 0005 1332 |
| United Kingdom | GB | 22 | GB29 NWBK 6016 1331 9268 19 |
| France | FR | 27 | FR76 3000 6000 0112 3456 7890 189 |
| Netherlands | NL | 18 | NL91 ABNA 0417 1643 00 |
| Italy | IT | 27 | IT60 X054 2811 1010 0000 0123 456 |
| Switzerland | CH | 21 | CH93 0076 2011 6238 5295 7 |
| Saudi Arabia | SA | 24 | SA03 8000 0000 6080 1016 7519 |
| Brazil | BR | 29 | BR18 0036 0305 0000 1000 9795 493C 1 |
| Norway | NO | 15 | NO93 8601 1117 947 |
Norway has the shortest format in this sample at 15 characters. The full SWIFT registry includes formats outside this table, so do not infer the global maximum from these examples.
How IBAN Validation Works
The two check digits after the country code are not arbitrary — they are calculated using modular arithmetic (mod 97), defined in ISO 7064.
The Validation Algorithm:
- Move the first 4 characters (country code + check digits) to the end
- Convert all letters to numbers: A=10, B=11, ..., Z=35
- Calculate the remainder when divided by 97
- If the remainder is 1, the value passes the MOD-97 checksum
Example Validation:
IBAN: GB29 NWBK 6016 1331 9268 19
Step 1: Move first 4 to end
NWBK 6016 1331 9268 19 GB29
Step 2: Convert letters to numbers
N=23, W=32, B=11, K=20, G=16, B=11
→ 2332112060161331926819161129
Step 3: 2332112060161331926819161129 mod 97 = 1
Result: MOD-97 checksum passes ✓
This algorithm catches:
- Single-digit errors (typing 3 instead of 8)
- Most transposition errors (swapping two adjacent digits)
- The detection rate is approximately 98.9% for random errors
You can check country code, registered length, and MOD-97 using Random IBAN's validator. Those checks do not confirm bank-code currency, account existence, ownership, or reachability.
IBAN vs. SWIFT/BIC
People often confuse IBAN and SWIFT codes. They are different things:
| IBAN | SWIFT/BIC | |
|---|---|---|
| Identifies | A specific bank account | A specific bank |
| Length | 15-34 characters | 8 or 11 characters |
| Format | Country code + check + account | Bank + country + location + branch |
| Example | DE89 3704 0044 0532 0130 00 | COBADEFFXXX |
| Used for | Routing payments to an account | Identifying the bank in the network |
For international wire transfers, you typically need both:
- The IBAN tells the system which account to send money to
- The SWIFT/BIC tells the system which bank to route through
Some modern payment systems (like SEPA in Europe) only require the IBAN — the bank identification is extracted from the IBAN itself.
Which Countries Use IBAN?
The SWIFT IBAN Registry release 102 lists 89 national formats, but adoption is not universal:
Mandatory IBAN Countries
- All European Union member states
- All European Economic Area countries
- Switzerland, Monaco, San Marino, Vatican City
- Most Middle Eastern countries (UAE, Saudi Arabia, Qatar, etc.)
- Brazil, Pakistan, Turkey, Tunisia, Mauritius
Countries That Do NOT Use IBAN
- United States — uses ABA routing numbers + account numbers
- Canada — uses routing/transit numbers
- Australia — uses BSB + account numbers
- India — uses IFSC codes
- China — uses CNAPS codes
- Japan — uses Zengin codes
The US is the most notable holdout. Despite being the world's largest economy, American banks have not adopted IBAN — largely because the existing domestic system (Fedwire, ACH) works well enough, and the cost of transitioning would be enormous.
IBAN for SEPA Transfers
In Europe, the Single Euro Payments Area (SEPA) uses IBAN for in-scope euro credit transfers and direct debits. Migration deadlines differed between euro-area and non-euro-area countries, and other payment types can follow different rules.
SEPA transfers using IBAN are:
- Fast: Usually same-day or next-day
- Cheap: Domestic and cross-border fees must be equal within SEPA
- Standardized: Same format regardless of which EU country you are in
This means sending €500 from Spain to Germany is as easy (and cheap) as sending it to another Spanish bank.
Generating Test IBANs
Developers building banking software, payment integrations, and financial forms often need checksum-valid IBAN-shaped values for isolated format tests. Customer account data should not be copied into fixtures; provider integration tests should use the current sandbox values documented by that provider.
Random IBAN Generator creates synthetic values that:
- Follow the configured length and character pattern for a supported country
- Pass mod-97 check digit validation
- Use selected bank-code lists or national checks only where implemented
- Are not checked against bank directories or provider sandboxes
These values can help with:
- Testing payment form validation
- Populating test databases with realistic data
- Building IBAN validation features
- QA testing for banking applications
FAQ
Is my IBAN the same as my account number?
No. Your IBAN contains your account number, but it also includes your country code, check digits, and bank identifier. Think of IBAN as a superset — your account number plus routing information, wrapped in a standardized format.
Can someone steal money with just my IBAN?
An IBAN is routinely shared to receive payments, but it is still financial account information. An IBAN alone normally does not authorise a transfer or direct debit: payment schemes require additional mandates, authentication, or bank controls. Risks and dispute protections vary by country and payment scheme, so share it only with intended parties, monitor the account, and contact your bank about an unfamiliar debit.
Do I need an IBAN for domestic transfers?
It depends on the country and payment scheme. SEPA credit transfers and direct debits use IBAN, including many domestic euro payments. Countries outside IBAN use their domestic account and routing identifiers; ask your bank which fields a particular transfer requires.
Why does the US not use IBAN?
The US banking system predates IBAN and uses its own routing system (ABA routing numbers for wire transfers, ACH for electronic payments). Transitioning 10,000+ US banks to IBAN would be extremely costly, and the existing system handles domestic transactions effectively. For international transfers, US banks use SWIFT codes paired with account numbers.
How do I find my IBAN?
Check your bank statement, online banking portal, or banking app — most display your IBAN prominently. You can also ask your bank directly. In many countries, you can calculate your IBAN from your existing bank code and account number using an IBAN calculator.
Can an IBAN be wrong even if it passes validation?
Yes. MOD-97 rejects about 98.9% of random incorrect values, but a wrong value can still produce a remainder of 1. It can also match the registered structure while containing a stale bank code or an unassigned, closed, or unintended account. Confirmation requires the relevant bank or payment provider; this site's validator cannot perform it.