Free scan-to-pay QR for your invoices (EPC069-12): the payer's banking app opens a transfer already filled in. The IBAN is verified before anything is encoded.
IBAN validator
Check an IBAN free: country, length and modulo-97 check digits, anatomy and printable form. Validate a whole column, or build one from an account number.
Paste an IBAN and it tells you whether it holds up — country, length, and the check digits — then shows you what each part of it is and gives it back in the grouped form you print. Paste a whole column and it checks them all; give a domestic account number instead and it builds the IBAN for you. Free, no account, nothing stored.
What it does, and why it is here
An IBAN carries its own proof. The two digits after the country code are a checksum, computed from everything else by a modulo 97 that catches every single-character error and almost every transposition — the two mistakes people actually make when retyping an account number.
That check is worth running because of when it fails otherwise. A wrong IBAN in an invoice, a payroll file or a supplier record does not announce itself: it either bounces days later, or worse, it is a valid account belonging to somebody else. Both are discovered long after the moment when correcting it was easy.
So the point of this page is to run the check before the number is committed — and to run it on the whole list at once, because a payroll file is not one IBAN, it is four hundred.
What you fill in
- IBAN — spaces, dashes and dots are allowed and ignored, and lowercase is normalised. Paste it however it was written.
- Several IBANs at once — one per line, an accounting export as it comes. When this is filled the single field above is ignored, and every line gets its own verdict.
- Or a domestic account number — leave the IBAN empty and give a country and a BBAN: bank, branch, account and national key, as a domestic statement prints them. The two check digits are computed and the resulting IBAN is then verified like any other. This is the one for converting an old record into the modern form.
What you get back
- A verdict — valid, or the precise reason it is not: the country code is unknown, the length is wrong for that country, or the check digits do not agree with the rest.
- The anatomy — the number split into its parts: country, check digits, and the domestic portion, itself broken up where the country’s format defines a bank code, a branch code and an account number. This is what turns a wall of characters into something you can compare against a statement.
- The printable form — grouped in fours, which is the convention for writing an IBAN on paper and the form that makes a human check possible at all.
- One verdict per line, when you pasted a list — so a bad row in four hundred is named rather than hidden.
- The composed IBAN, when you gave a domestic number.
What it does not do
This is the important part. A valid IBAN is a well-formed IBAN, not a real one. The check digits prove the characters are internally consistent; they say nothing about whether the account exists, whether the bank still operates, or whether the name on your invoice is the name on that account.
Confirming that an account exists and belongs to whom you think requires the bank — the “verification of payee” check that a payment service performs, which this page has no access to and does not simulate.
And nothing is stored: the IBAN you paste is checked and forgotten. It is never logged, never indexed, and never sent to a third party.
How the check digits work
The arithmetic, for anyone who would like to know what is being verified.
| Step | What happens |
|---|---|
| 1 | Move the first four characters — country code and check digits — to the end. |
| 2 | Replace each letter by a number: A is 10, B is 11, and so on to Z at 35. |
| 3 | Read the result as one very long integer and take it modulo 97. |
| 4 | The remainder must be exactly 1. Anything else means the number is wrong. |
Length is part of the check too, and it is country-specific: 27 characters in France, 22 in Germany, 22 in the United Kingdom, 24 in Portugal. A number of the wrong length for its country code is rejected before the arithmetic is even reached.
Questions
Is it free? Do I need an account?
Free, no account, no limit.
Do you store the IBAN I paste?
No. It is checked and forgotten — not stored, not logged, not sent anywhere.
It says valid. Can I pay it?
It says the number is well formed. Whether the account exists and belongs to the person you mean is a different question, and only the bank can answer it.
My country is not recognised.
Either the country code is mistyped, or the country does not use IBAN — the United States and Canada, for instance, do not.
Can I check a BIC or SWIFT code too?
No. That is a different format with its own rules, and most SEPA transfers no longer need one.
How do I check a whole payroll or supplier file?
Paste the column into the batch field, one per line. Each row comes back with its own verdict, so the bad ones are named rather than counted.
I only have the old domestic account number.
Give the country and that number in the compose fields; the check digits are computed and the IBAN comes back verified.
What is the modulo 97 for?
It is what makes the number self-checking: 97 being prime, the remainder changes for any single wrong character and for almost every pair swapped — which are exactly the errors a human retyping makes.
Sources and further reading
Explore
More tools like this one
Picked from the catalog by what this page is about — the closest ones first. Each tag opens its whole family.