Check an IBAN before the money leaves
A wrong IBAN is one of the few payment mistakes that is genuinely hard to undo. Once money lands in a valid account that is not the one you meant, it can be gone for good, and criminals know it: the fastest-growing payment fraud is not a hacked card but a fake invoice, or a "we have changed our bank details" email, that quietly swaps one IBAN for another. This free IBAN checker is the thirty-second habit that catches the honest typos and gives you the moment of pause the scams rely on you skipping. Paste an IBAN and it confirms the country, the length and the check digits, then breaks out the bank and account parts where the country's format is known. It all runs in your browser.
What an IBAN actually is
An IBAN, short for International Bank Account Number, is the standard way to write a bank account number so that it can cross borders without being misread. It is defined by the ISO 13616 standard and used in more than 70 countries, chiefly across Europe and the Middle East. It is not a new kind of account and it holds no money: it is a way of formatting an account you already have so a computer can check it before a payment is sent.
Every IBAN is the same three parts, always in the same order:
- A two-letter country code - where the account is held, such as
AEfor the United Arab Emirates orGBfor the United Kingdom. - Two check digits - a mathematical checksum over everything else in the number, and the reason a mistyped IBAN can be detected at all.
- The BBAN (Basic Bank Account Number) - the country's own account number, spelled out as a bank code, sometimes a branch code, and an account number. Its length and layout are set by each country, not by the IBAN standard.
That last point is why the tool works out the country first: until it knows the country it cannot know how long the number should be, or where one field ends and the next begins.
The three checks a valid IBAN has to pass
A trustworthy IBAN validation is three checks in a fixed order, and this tool runs all three:
- The country code is real. The first two letters must belong to a country that actually uses IBANs. The United States, Canada and most of Asia do not, so a "US" IBAN does not exist.
- The length matches the country. Every IBAN country fixes an exact length, from 15 characters in Norway to 32 in Saint Lucia. A number that is too short or too long has lost or gained characters and cannot be a real account.
- The check digits pass the mod-97 test. This is the clever part, and the one that catches a single mistyped or swapped character.
The mod-97 check digits, worked through
The two digits after the country code are a checksum, and the arithmetic behind them is simple enough to do by hand. Take the UAE test IBAN AE07 0331 2345 6789 0123 456:
- Remove the spaces:
AE070331234567890123456. - Move the first four characters (the country code and the check digits) to the end:
0331234567890123456AE07. - Replace every letter with two digits, using A = 10 through to Z = 35:
0331234567890123456101407. - Divide that long number by 97 and take the remainder. It is 1, so the IBAN is internally consistent.
Because the check digits are computed from every other character, changing one digit, or swapping two neighbours, almost always changes that remainder. That is why a validator can tell you an IBAN is mistyped without ever contacting a bank: the number is either internally consistent or it is not. A failed mod-97 is a hard stop. Re-read the number, then confirm it with the payee before you send anything.
IBAN length by country
There is no single IBAN length. Each country sets its own, and getting it right is half of validation. Below is the full registry this tool checks against, from Norway's 15 characters to Saint Lucia's 32. The code and length columns are exactly what the checker above enforces, so if a number's length does not match its country here, it is not a valid IBAN.
| Code | Country | IBAN length |
|---|---|---|
AL | Albania | 28 |
AD | Andorra | 24 |
AT | Austria | 20 |
AZ | Azerbaijan | 28 |
BH | Bahrain | 22 |
BY | Belarus | 28 |
BE | Belgium | 16 |
BA | Bosnia and Herzegovina | 20 |
BR | Brazil | 29 |
VG | British Virgin Islands | 24 |
BG | Bulgaria | 22 |
CR | Costa Rica | 22 |
HR | Croatia | 21 |
CY | Cyprus | 28 |
CZ | Czechia | 24 |
DK | Denmark | 18 |
DO | Dominican Republic | 28 |
EG | Egypt | 29 |
SV | El Salvador | 28 |
EE | Estonia | 20 |
FO | Faroe Islands | 18 |
FI | Finland | 18 |
FR | France | 27 |
GE | Georgia | 22 |
DE | Germany | 22 |
GI | Gibraltar | 23 |
GR | Greece | 27 |
GL | Greenland | 18 |
GT | Guatemala | 28 |
HU | Hungary | 28 |
IS | Iceland | 26 |
IQ | Iraq | 23 |
IE | Ireland | 22 |
IL | Israel | 23 |
IT | Italy | 27 |
JO | Jordan | 30 |
KZ | Kazakhstan | 20 |
XK | Kosovo | 20 |
KW | Kuwait | 30 |
LV | Latvia | 21 |
LB | Lebanon | 28 |
LY | Libya | 25 |
LI | Liechtenstein | 21 |
LT | Lithuania | 20 |
LU | Luxembourg | 20 |
MT | Malta | 31 |
MR | Mauritania | 27 |
MU | Mauritius | 30 |
MD | Moldova | 24 |
MC | Monaco | 27 |
ME | Montenegro | 22 |
NL | Netherlands | 18 |
MK | North Macedonia | 19 |
NO | Norway | 15 |
PK | Pakistan | 24 |
PS | Palestine | 29 |
PL | Poland | 28 |
PT | Portugal | 25 |
QA | Qatar | 29 |
RO | Romania | 24 |
LC | Saint Lucia | 32 |
SM | San Marino | 27 |
ST | Sao Tome and Principe | 25 |
SA | Saudi Arabia | 24 |
RS | Serbia | 22 |
SC | Seychelles | 31 |
SK | Slovakia | 24 |
SI | Slovenia | 19 |
ES | Spain | 24 |
SE | Sweden | 24 |
CH | Switzerland | 21 |
TL | Timor-Leste | 23 |
TN | Tunisia | 24 |
TR | Turkey | 26 |
UA | Ukraine | 29 |
AE | United Arab Emirates | 23 |
GB | United Kingdom | 22 |
VA | Vatican City | 22 |
Reading the BBAN: where the bank and account hide
Inside the BBAN, countries lay their fields out differently, which is why the same tool can pull a bank code out of a German IBAN and leave a Norwegian one alone. For the countries this site is used from most, the split is:
| Country | Bank code | Branch | Account number |
|---|---|---|---|
| United Arab Emirates (AE) | 3 | - | 16 |
| Saudi Arabia (SA) | 2 | - | 18 |
| Qatar (QA) | 4 | - | 21 |
| Kuwait (KW) | 4 | - | 22 |
| Bahrain (BH) | 4 | - | 14 |
| United Kingdom (GB) | 4 | 6 | 8 |
| Ireland (IE) | 4 | 6 | 8 |
| Germany (DE) | 8 | - | 10 |
| France (FR) | 5 | 5 | 11 |
| Netherlands (NL) | 4 | - | 10 |
| Spain (ES) | 4 | 4 | 10 |
| Switzerland (CH) | 5 | - | 12 |
| Sweden (SE) | 3 | - | 17 |
| Poland (PL) | 8 | - | 16 |
| Turkey (TR) | 5 | - | 16 |
These are the field lengths in characters. A few countries, including France, Spain, Belgium and Portugal, also carry a short national check key inside the BBAN that the breakdown does not separate out. Where a country is not listed, its layout varies too much to break out reliably, so the tool validates the number without pretending to know more.
The same IBAN, written five different ways
People worry a pasted IBAN will be rejected because it "looks wrong", but formatting is not the problem. An IBAN is the same number whether it is written with a space every four characters (the printed form banks put on statements), with no spaces at all (the "electronic" form used in payment files), in lower case, or with a stray hyphen. This checker ignores spaces and hyphens and is not case sensitive, so GB82 WEST 1234 5698 7654 32, GB82WEST12345698765432 and gb82 west 1234 5698 7654 32 are all read identically. What it will not ignore is a wrong character, because that is precisely the mistake worth catching.
Valid is not the same as safe
This is the point most IBAN tools miss, and the reason this one lives in a scam-checking suite. A valid IBAN only proves the number is well formed and could belong to a real account. It does not prove the account belongs to the person or company you think you are paying. Invoice-redirection fraud works entirely with valid IBANs, because the fraudster simply gives you the real, correctly formed number of their own account. No checksum can catch that. The only defence is to confirm any new or changed bank details directly with the payee, using a phone number or contact you already trust, and never the details printed on the suspicious invoice or email itself.
What this tool cannot tell you
- Who owns the account. No public database links an IBAN to a name. Any site that promises to reveal the account holder from an IBAN alone is guessing, or selling you something.
- The bank's own name. It can show the bank code embedded in the number for many countries, but for a newer or less common bank it will not name it.
- Whether the account is real and active. A valid IBAN can belong to an account that was closed last week. Only a bank can confirm it is live.
- That it is safe to pay. That is a question about the payee, not the number. See above.
What it does answer, precisely and privately, is the one question a checksum can settle: is this number correctly formed, and if not, exactly what is wrong with it?
Test IBANs you can safely use
If you are building a form or testing a payment flow, do not invent an IBAN: the check digits are computed, so a made-up number will fail. These are the official ISO 13616 example IBANs for common countries. Every one passes the checker above, and none belong to a real account.
| Country | Example IBAN |
|---|---|
| United Arab Emirates | AE07 0331 2345 6789 0123 456 |
| Saudi Arabia | SA03 8000 0000 6080 1016 7519 |
| Qatar | QA58 DOHB 0000 1234 5678 90AB CDEF G |
| Kuwait | KW81 CBKU 0000 0000 0000 1234 5601 01 |
| Bahrain | BH45 BMAG 0000 0123 4567 89 |
| United Kingdom | GB82 WEST 1234 5698 7654 32 |
| Ireland | IE29 AIBK 9311 5212 3456 78 |
| Germany | DE89 3704 0044 0532 0130 00 |
| France | FR14 2004 1010 0505 0001 3M02 606 |
| Netherlands | NL91 ABNA 0417 1643 00 |
| Belgium | BE68 5390 0754 7034 |
| Spain | ES91 2100 0418 4502 0005 1332 |
| Italy | IT60 X054 2811 1010 0000 0123 456 |
| Switzerland | CH93 0076 2011 6238 5295 7 |
| Austria | AT61 1904 3002 3457 3201 |
| Portugal | PT50 0002 0123 1234 5678 9015 4 |
| Poland | PL61 1090 1014 0000 0712 1981 2874 |
| Czechia | CZ65 0800 0000 1920 0014 5399 |
| Luxembourg | LU28 0019 4006 4475 0000 |
| Greece | GR16 0110 1250 0000 0001 2300 695 |
| Sweden | SE45 5000 0000 0583 9825 7466 |
| Denmark | DK50 0040 0440 1162 43 |
| Norway | NO93 8601 1117 947 |
| Turkey | TR33 0006 1005 1978 6457 8413 26 |
| Israel | IL62 0108 0000 0009 9999 999 |
Why a dedicated tool beats a chatbot
Verifying an IBAN by hand means knowing the exact length for each of eighty-odd countries and running a mod-97 calculation across letters mapped to numbers. A general chatbot will attempt the arithmetic and often get it wrong, and pasting bank account numbers into one is exactly the kind of sensitive data you should keep off a third-party server. This checker uses a fixed country table and the standard formula, so the result is deterministic and repeatable, and the number never leaves your device.
One check in a bigger habit
A valid IBAN is necessary but never sufficient. Use it alongside the rest of RealCheck: confirm the email that carried the invoice is not spoofed, that the link you were sent is not a lookalike domain, and that the sender is who they claim to be. The strongest protection against payment fraud is boring and reliable: slow down on any request to send money to new details, verify through a channel you chose, and treat urgency as a warning sign rather than a reason to hurry. This tool is a validator and an educational aid, not banking or legal advice, and it runs entirely in your browser. For the wider set of "is this real?" checks, start at RealCheck.