Skip to content

Utilities

IBAN Validator

Validate an IBAN's country, length and check digits, and see it formatted for both electronic transfer and print. The checksum catches every mistyped digit and every swap of two adjacent digits.

FreeNo signupRuns in your browser

Overview

Why check an IBAN?

Paste an IBAN and this checks three things: that the country code is one it recognises, that the length matches what that country registers, and that the check digits agree with the rest of the number. It then shows the IBAN in both the forms you need: unspaced for electronic transfers, grouped in fours for print.

The check digits are the interesting part. They are not a hash or a guess: over digits, the ISO 7064 mod-97 scheme is exhaustive: every mistyped digit is caught, and so is every swap of two adjacent digits, which is exactly the shape of the mistakes people make copying a twenty-two character string off a PDF. An IBAN with one digit wrong is essentially never also a valid IBAN.

What it cannot tell you is whether the account exists, or whose it is. That distinction is the whole reason to be careful with the result: a valid IBAN is a well-formed one. Invoice redirection fraud works precisely because the substituted account number passes every check on this page.

Nothing is transmitted. An IBAN identifies a bank account, and uploading one in exchange for a division by 97 would be a poor trade for arithmetic your own browser can do in a millisecond.

Step by step

How to check an IBAN

  1. Paste the IBAN

    Paste it however your bank prints it: spaces, dots and dashes are ignored, and case does not matter.

  2. Read the verdict

    A valid IBAN shows its country, check digits and account part. An invalid one says which of those is wrong.

  3. Copy the format you need

    Electronic form has no spaces and is what transfers and forms expect. Printed form is grouped in fours, for invoices and letterheads.

What you get

  • Country, check digits and account part shown separately
  • Length checked against the country, not just the checksum
  • Catches every mistyped digit and every swap of two adjacent digits
  • Electronic and printed formats, ready to copy
  • Says what is wrong, not just that something is
  • Never offers to rewrite the check digits for you

Background

What an IBAN is, and what checking it proves

An IBAN is not a new kind of account number. It is a wrapper around the account number a country already used (the sort code and account number in the UK, the BLZ and Kontonummer in Germany) with two things bolted on the front: a country code, so a bank knows which national scheme to interpret the rest under, and two check digits, so a mistyped one can be caught before the payment is sent rather than after.

The check digits are computed over the whole rest of the number, which is why they detect changes anywhere in it. Move the first four characters to the end, turn each letter into a number, and divide the resulting very long integer by 97; a correct IBAN always leaves a remainder of exactly one. The scheme is chosen for its error-detecting properties rather than for elegance: over digits, every substitution changes the remainder, and so does every transposition of two neighbouring ones.

There is one gap in that, and it is worth stating rather than glossing over. Letters expand to two digits before the division (A becomes 10, Z becomes 35), so replacing a digit with a letter makes the number one digit longer as well as different, and the guarantee, which assumes a fixed length, stops applying. Sweeping every such substitution across the published specimen IBANs finds 23 collisions out of 2,340 attempts, against none at all in the 918 digit-for-digit substitutions. It is a small hole and a real one: a checksum pass is strong evidence that an IBAN was typed correctly, not proof.

That is a strong guarantee against typing, and no guarantee at all against anything else. The arithmetic knows nothing about banks. It cannot tell you the account is open, that the bank code inside it corresponds to a real institution, or that the person who sent you the number owns the account. Those are questions only the receiving bank can answer, and it answers them when the payment arrives, or does not.

This matters because of how invoice fraud actually works. Somebody intercepts or imitates a supplier's email and changes the bank details, and the IBAN they substitute is a real, valid IBAN for an account they control. It passes the checksum. It passes the length check. It passes every offline check that exists, because there is nothing wrong with it except that it is not your supplier's. The defence is not a validator; it is confirming a change of bank details by voice, on a number you already had.

The lengths are worth knowing because they are fixed rather than variable. Each country registers exactly one length (15 in Norway, 22 in Germany and the UK, 27 in France, 31 in Malta), so a length mismatch is a specific, findable error, and telling somebody their IBAN is one character short of a German one is far more useful than telling them the check digits do not match. Checking length first is why this reports the former.

Not to be confused with

The BBAN
The national account number inside the IBAN: everything after the check digits. Its structure is set by each country, which is why IBAN lengths differ and why no single rule describes the part after character four.
A BIC or SWIFT code
Identifies the bank, not the account. Eight or eleven characters, and increasingly not required within Europe, where the IBAN alone is enough to route a payment.
A sort code and account number
The UK's domestic pair, which sits inside a UK IBAN unchanged. Still what you use for a domestic transfer; the IBAN is the international wrapper around it.
A routing number
The US equivalent of a sort code. The United States does not use IBAN at all, which is why an American account has no IBAN to validate however hard a form insists on one.
Electronic format
No spaces, all uppercase. What transfers, forms and files expect, and what to paste into anything a machine will read.
Printed format
Grouped in fours. Meant for paper and for humans retyping it, and the reason your bank statement shows spaces that must not be typed into a payment form.
Mod-97
The remainder-based checksum an IBAN carries, defined by ISO 7064. Chosen for detecting typing errors rather than for security. It stops mistakes, not deception.

Reference

The parts of an IBAN

Only the first four characters have a fixed meaning everywhere. What follows is a national account number, formatted however that country decided, which is why the total length differs from one to the next.

  • Characters 1–2: the country code

    Two letters, from the same list as country codes generally. It tells the receiving system which national format the rest is in: without it, the remaining characters are ambiguous.

    Required

  • Characters 3–4: the check digits

    Two digits, computed from everything else. They exist to fail when the rest has been mistyped, which is the only job they have and one they do exhaustively.

    Required

  • Characters 5 onwards: the account part

    The country's own account number, sometimes with a bank identifier at the front and sometimes with its own internal check digit. There is no universal rule for what sits where.

    Required

  • The length

    Fixed per country, from 15 to 34 characters. Not a range and never optional, which is what makes a length mismatch a precise error rather than a vague one.

    Required

  • The characters allowed

    Uppercase letters and digits only. Spaces, dots and dashes are printing conventions, not part of the number, and must be stripped before anything electronic.

    Required

  • What is not in it

    The account holder's name, the bank's name, the currency and the branch address. An IBAN identifies an account and nothing about who owns it.

    Optional

  • What no IBAN has

    Any part that proves the account is real. Validity and existence are separate questions, and only the receiving bank can answer the second one.

    Optional

Who it helps

Who needs an IBAN validator?

Freelancers invoicing abroad

One wrong character means a payment that bounces after a week, or lands somewhere unexpected. Checking before the IBAN goes on the invoice is cheaper than either.

Anyone putting bank details on an invoice

The IBAN on your own invoice template gets retyped from a bank statement once and copied for years. It is worth checking exactly once, properly.

Bookkeepers setting up payees

A supplier's details are entered from a PDF, and the checksum catches the transcription errors that come with that. It cannot catch the supplier whose email was intercepted.

Anyone paying a new supplier

A first payment to a new account is when fraud lands. The checksum is worth running and is not the check that matters: confirming the details by voice is.

Developers handling payment forms

The mod-97 rule is short enough to implement and easy to get subtly wrong, particularly the part where letters expand to two digits and the number outgrows a double.

Anyone whose transfer was returned

A rejected payment usually means a malformed IBAN or one for a closed account. This separates the two: if it fails here, the number was wrong before it reached the bank.

Do it properly

Best practices

  1. Check the IBAN before it goes on the invoice

    Bank details are typed once and reused for years. An error caught at the point of writing costs a minute; the same error found by a failed payment costs a fortnight of emails.

  2. Store it electronically, print it in fours

    Machines want the unspaced form and people want the grouped one. Keeping the electronic version as the source of truth prevents spaces being pasted into a form that rejects them.

  3. Confirm changed bank details by voice

    Use a number you already had, not one on the invoice. A substituted IBAN is a valid IBAN, so no amount of checking the number itself will tell you it changed hands.

  4. Treat a length mismatch as a counting problem

    If the length is wrong for the country, characters were dropped or duplicated rather than mistyped. Recount against the original instead of re-reading it character by character.

  5. Keep the country code with the number

    The two letters are part of the IBAN, not a label. An account part on its own cannot be validated and cannot be routed internationally.

  6. Do not retype what you can copy

    Most IBAN errors are transcription errors, and the checksum exists because they are so common. Copying removes the failure mode rather than detecting it.

  7. Ask for a second identifier on large payments

    A BIC, the bank's name, or the last few characters confirmed separately. Cross-checking two things a fraudster would have to get consistent is more use than checking one twice.

Avoid these

Common mistakes

Reading a valid IBAN as a safe one

Treat validity as "typed correctly", nothing more. The account may not exist, may be closed, and may belong to somebody else entirely, none of which the number itself can reveal.

Correcting the check digits to make it validate

Recheck the account part instead. Rewriting the check digits over a mistyped account number produces a perfectly valid IBAN for the wrong account, which is why this tool declines to offer it.

Pasting the spaced version into a transfer form

Use the unspaced form for anything electronic. The grouping is a printing convention, and many systems reject it rather than stripping it for you.

Acting on new bank details in an email

Phone the supplier on a number you already had and confirm. Invoice redirection is the most common way businesses lose money, and it defeats every offline check because the substituted IBAN is genuine.

Assuming every country has an IBAN

Check the destination first. The United States, Canada and Australia do not use IBAN, and a form demanding one for a US account is asking for something that does not exist.

Treating an unfamiliar country code as an error

Verify the code rather than the number. Countries join the IBAN scheme, so a code a validator does not recognise means its list is out of date, not that the account is invalid.

Sending the payment before checking anything

Validate first, then confirm the recipient separately. A cross-border transfer can take a fortnight to bounce back, and one to an account that exists but is not your supplier's may not come back at all.

FAQ

Frequently asked questions

Move the first four characters to the end, replace each letter with a number (A is 10, Z is 35), and take the remainder when divided by 97. A correct IBAN always leaves exactly 1. It is the ISO 7064 mod-97 scheme, and over digits it is exhaustive: every mistyped digit is caught, and so is every swap of two adjacent digits.

No. It means the number is well formed. Whether the account exists, is open, and belongs to who you think are three separate questions that no offline check can answer: only the receiving bank knows.

Because the corrected digits would be computed from the account number as typed. If the account number is what was mistyped (far more likely, at twenty-odd characters against two) then rewriting the check digits produces a valid IBAN pointing at the wrong account, which is worse than an error message.

It depends on the country and is fixed for each one: 15 characters in Norway, 22 in Germany and the UK, 27 in France and Italy, 31 in Malta. The standard caps it at 34. This checks the length against the country before it checks the arithmetic, because "too short for Germany" is more useful than "check digits do not match".

Without, for anything electronic: transfers, forms, files. With, in groups of four, when it is printed for a human to read or retype. Both are shown here so you can copy the one you need.

Not necessarily. New countries join the IBAN registry, so an unfamiliar code means the length could not be confirmed, not that the account is invalid. The check digits are still verified, and they are the part that catches typing mistakes.

One narrow class. Letters expand to two digits before the division, so replacing a digit with a letter changes the length of the number as well as its value, and the guarantee that assumes a fixed length no longer holds. Across the published specimen IBANs, 23 of 2,340 such substitutions slip through, while all 918 digit-for-digit substitutions are caught. In practice it means a checksum pass is strong evidence of correct typing, not a proof of it.

Only slightly. A substituted IBAN in a fake invoice is usually a perfectly valid IBAN, so the checksum passes. The defence is confirming any change to a supplier's bank details by voice, using a phone number you already had rather than one on the invoice.

No. The whole check runs in your browser. Uploading a bank account number in exchange for a division by 97 would be a poor trade.

Ready to check one?

IBAN Validator is at the top of this page. Free, no signup, nothing uploaded.

Open the IBAN Validator