International · Validation
IBAN validator.
Verify an International Bank Account Number's real ISO 7064 MOD 97-10 checksum, and check its length against the ISO 13616 structure for the most common countries. Everything runs in your browser: nothing you type is transmitted anywhere.
Inputs
Result
Enter an IBAN and press Validate.
How the IBAN checksum works
An IBAN's first 2 characters are a country code and the next 2 are check digits, followed by that country's own BBAN (Basic Bank Account Number) format. The check digits are computed with ISO 7064's MOD 97-10 algorithm:
- Move the 4 leading characters (country code + check digits) to the end of the string.
- Convert every letter to a number: A=10, B=11 … Z=35 (digits are left as-is).
- Read the whole result as one large decimal integer and take it mod 97.
- The IBAN is valid if, and only if, the remainder is exactly 1.
This tool computes that remainder digit-by-digit (a running mod-97) rather than building one huge number, which is exactly equivalent for numbers of any length — Malta's 31-character BBAN included.
Country lengths (sanity check, not a full registry)
| Country | Code | IBAN length |
|---|---|---|
| Germany | DE | 22 |
| United Kingdom | GB | 22 |
| France | FR | 27 |
| Spain | ES | 24 |
| Italy | IT | 27 |
| Netherlands | NL | 18 |
| Belgium | BE | 16 |
| Ireland | IE | 22 |
| Portugal | PT | 25 |
| Austria | AT | 20 |
| Switzerland | CH | 21 |
| Poland | PL | 28 |
| Sweden | SE | 24 |
| Denmark | DK | 18 |
| Finland | FI | 18 |
These 15 lengths were cross-checked between Wikipedia's IBAN article and iban.com's published structure table with no contradiction between the two. Every other ISO 13616 country is still checksum-validated by this tool — it just skips the extra length sanity check for countries outside this table.
Verification
Before shipping, the algorithm above was tested against two real, valid, published IBANs used as the independent open-source python-stdnum library's own doctests — a Greek IBAN and a Belgian one — and confirmed both reduce to remainder 1, while a deliberately corrupted check-digit variant does not.
What a passing checksum does and doesn’t tell you
A valid MOD 97-10 remainder only proves the IBAN's characters are internally consistent — it does not confirm the account actually exists or is open at that bank. Canada does not use IBANs at all; for a Canadian account, use the Bank Institution & Transit Lookup instead. This tool runs entirely in your browser: nothing you type is transmitted, stored, or logged.