An IBAN (International Bank Account Number) is a country code, two check digits and a national account number (the BBAN). For example the German IBAN DE89 3704 0044 0532 0130 00 is DE + check digits 89 + BBAN 370400440532013000.
The three checks
- Country and length – every country has a fixed length (Germany 22, France 27, UAE 23, Saudi Arabia 24). The lengths come from the SWIFT IBAN Registry. See the IBAN format for each country.
- Structure – which positions are digits or letters, and where the bank code sits.
- Check digits (mod 97) – catches almost all single typing errors and swapped digits.
The mod-97 check, step by step
- Remove spaces:
DE89370400440532013000 - Move the first four characters to the end:
370400440532013000DE89 - Replace letters with numbers (A = 10, B = 11 … Z = 35), so D = 13 and E = 14:
370400440532013000131489 - Divide by 97. If the remainder is 1, the check digits are valid. Here 370400440532013000131489 mod 97 = 1 ✓
Computing the check digits for a new IBAN works the same way with 00 in place of the check digits: the remainder is 9, and 98 − 9 = 89.
The number is too big for a normal spreadsheet cell, so calculators process it in chunks of 9 digits, carrying the remainder forward.
What validation cannot tell you
- That the account exists or is open.
- That it belongs to the person you think. In the euro area, many banks now offer Verification of Payee (name check) when you send a payment; use it.
So a valid IBAN means "no typing mistake", not "safe to pay". Fraudsters use valid IBANs too.
Sources
Related guides
Published 2026-10-02 by Karuna Labs. Our tools check file structure and checksums; always review outputs (and payment files in your bank's preview) before relying on them. This is general information, not financial, tax or legal advice.