IBAN Check Calculator
IBAN mod 97 check with country and spaced format.
What it does
IBANs pack country, check digits, and account data into one string, and one swapped digit voids the wire. The mod 97 check catches those slips before money moves, which is why forms validate at typing time.
The tool above takes any IBAN as free text. It returns Valid or Invalid, the country, and the spaced format for copy paste.
The default GB29 NWBK 6016 1331 9268 19 passes with remainder 1 as United Kingdom. The German classic DE89 3704 0044 0532 0130 00 passes too, while flipping the last digit to ...01 fails.
ISO 13616 defines the format with SWIFT holding the country registry, and the MOD 97-10 method does the arithmetic: rearrange, expand letters, divide. Country lengths from 15 for Norway to 34 elsewhere reject short and padded strings early.
Validation proves shape, never funds. Banks still confirm the account and holder, and sanctions screening runs after format checks, so treat Valid as ready to send, not proof of receipt.
How to use
- Paste or type the IBAN.
- Pick nothing else; one field does it.
- Read Valid or Invalid first.
- Read the country beside it.
- Copy the spaced format last.
- Recheck blocks on failure.
Formula
- CC
- Two letter country code.
- kk
- ISO check digits, positions 3 to 4.
- mod97
- Remainder that must equal 1.
ISO 13616 defines the IBAN registry and the MOD 97-10 check, with SWIFT as registration authority publishing country formats. The 16 tabulated lengths mirror the registry, and unknown countries fall back to the 15 to 34 window. Check digits catch transpositions; only the bank confirms the account.
Worked example
Example: validate a UK IBAN
Default: classic GB29 NWBK example.
- Input: GB29 NWBK 6016 1331 9268 19.
- Clean: strip spaces to 22 characters, GB length OK.
- Rearrange: move GB29 to the end.
- Convert: letters to digits, A = 10 through Z = 35.
- Mod 97 of the long number = 1, a pass.
- Tool shows Valid IBAN, United Kingdom (GB), spaced format.
Reference table
| Country | Code | Length |
|---|---|---|
| United Kingdom | GB | 22 |
| Germany | DE | 22 |
| France | FR | 27 |
| Spain | ES | 24 |
| Italy | IT | 27 |
| Netherlands | NL | 18 |
| Norway | NO | 15 |
Limits
- Format check only; accounts need banks.
- 16 tabulated countries; others get window checks.
- No branch or holder lookup.
- Registry changes can age length tables.
Common mistakes
- Typing O for 0 and I for 1.
- Dropping leading zeros in blocks.
- Trusting valid as proof of funds.
- Pasting with hidden line breaks uncleaned.
- Confusing account numbers with IBANs.
Try it yourself
Quick checks. Answers sit tucked under each question.
DE89 3704 0044 0532 0130 00?
Valid IBAN, Germany (DE), spaced as typed.
GB29 NWBK 6016 1331 9268 20?
Invalid IBAN, remainder off 1: recheck each block.
ABC?
Too short for any IBAN: enter 15 to 34 characters.
Questions
How does mod 97 work?
Move the first 4 characters to the end, convert letters (A=10 to Z=35), divide by 97. Remainder 1 passes under ISO 13616.
Does valid mean payable?
No. It proves the string is well formed, not that the account holds funds or exists.
Why check country length?
Country lengths reject typos early: GB 22, DE 22, FR 27, ES 24, IT 27, NL 18, and more inside.
Spaces and lowercase?
Spaces and case do not matter; the tool strips and uppercases first. Dashes strip too.
What are IBAN digits 3 and 4?
The 2 check digits after the country code. This tool recomputes them through mod 97.
Can it explain failures?
Yes, when the string is well formed but the remainder is not 1. The tool shows the remainder.