Skip to content

IBAN validator

Check an IBAN's checksum and length and see the bank and account parts — before a payment goes to the wrong place.

Runs in your browser — nothing is sent anywhere.

Two checks, and both are needed

An IBAN carries its own checksum, which is the entire point of the format: a mistyped digit produces a number that fails arithmetic rather than a number that belongs to somebody else.

The check is mod-97. Move the first four characters to the end, replace every letter with two digits (A becomes 10, through Z as 35), and the resulting integer divided by 97 must leave a remainder of exactly 1. A 34-character IBAN becomes a 40-digit number, which is why this is done a few digits at a time rather than all at once — no ordinary numeric type can hold it.

The second check is length, per country, and it is not redundant. A German IBAN is 22 characters, a French one 27, a Maltese one 31. Drop a whole group of four and the checksum can still happen to come out at 1 — roughly one time in 97 — so length is what catches a missing block that arithmetic alone would pass.

What it cannot tell you

Being clear about this, because it is the thing people assume. A valid IBAN is well-formed. It does not mean the account exists, that it is open, that it belongs to the person you think, or that a payment to it will arrive.

Only the receiving bank knows those things. What this catches is the mistyped or garbled number — which is the common failure and the one that costs money, because a payment to a well-formed IBAN belonging to a stranger is very hard to recover.

The parts

Two letters of country code, two check digits, then the BBAN — the country's own account number format, which varies completely. In the UK it is a four-letter bank code, a six-digit sort code and an eight-digit account number. In Germany it is an eight-digit bank code and a ten-digit account number. Those are shown as a block rather than split, because splitting them correctly needs a per-country rule for eighty countries and getting one wrong would be worse than not doing it.

Paper format and electronic format

Written down, an IBAN goes in groups of four with spaces — that is the standard's own presentation form, and it exists because a 34-character run of letters and digits is very hard to copy by eye without losing your place.

Submitted electronically, it must have no spaces at all. Both forms are given, which saves the reformatting.

Countries that do not use IBAN

India, the United States, Canada, Australia, China, Japan and much of Asia and Africa use their own account formats and have no IBAN at all. If you have been asked for one and your bank is in one of those countries, you need a SWIFT/BIC code plus a local account number instead. A two-letter prefix from a non-IBAN country is named as such here rather than reported as a checksum failure, because those are different problems with different answers.

Nothing is uploaded

This one hardly needs saying. It is a bank account number, and it is checked in this page.

01

Common questions

Does a valid IBAN mean the account exists?

No. It means the number is well-formed. Only the receiving bank knows whether the account exists, is open or belongs to who you think.

What does the checksum actually catch?

A mistyped or garbled number — which is the failure that costs money, because a payment to a well-formed IBAN belonging to a stranger is very hard to recover.

Why check the length as well?

Because a whole missing group of four can still leave a remainder of 1 by chance, about one time in 97. The per-country length is what catches it.

My country was rejected as not using IBAN.

India, the US, Canada, Australia, China and much of Asia and Africa have no IBAN. You need a SWIFT/BIC code and a local account number instead.

Should I write it with spaces or without?

With spaces in groups of four on paper — that is the standard\u2019s own presentation form, and it stops the eye losing its place. Without spaces for an electronic transfer. Both are shown.

Is my account number uploaded?

No. It is checked in this page, which for a bank account number hardly needs arguing.