Short answer
An IBAN format checker confirms three things: the first two letters are a country code in the IBAN registry, the IBAN has exactly the length that country uses, and the two check digits pass the ISO 13616 mod 97 test. If all three pass, the number is well formed. It does not prove that the account exists, is open, or belongs to the person you intend to pay.
What does this IBAN format checker check?
The checker above runs four steps, all in your browser:
- Clean the input. It removes spaces, hyphens and dots, drops a leading "IBAN" label if you pasted one, and converts letters to upper case.
- Read the country code. The first two letters must match one of the 89 countries in the IBAN registry list we use. The tool shows the country name.
- Compare the length. Each country has one fixed IBAN length. A German IBAN always has 22 characters, a Belgian one 16 and a Maltese one 31.
- Test the check digits. Characters three and four are check digits calculated over the whole IBAN with the MOD 97-10 method. If the remainder is not 1, the IBAN contains a typo.
The result shows the IBAN in the paper format (groups of four characters separated by spaces), the country, the check digits and the BBAN, which is the national account part that follows them.
How do you read an IBAN?
| Part | Example (DE89 3704 0044 0532 0130 00) | What it means |
|---|---|---|
| Country code | DE | Two letters, ISO 3166 country code |
| Check digits | 89 | Two digits that protect the whole number against typos |
| BBAN | 370400440532013000 | Basic Bank Account Number: the national bank and account identifier; its structure differs per country |
There are two ways to write the same IBAN. The paper format groups the characters in blocks of four with spaces, which is easier to read aloud and to compare. The electronic format has no spaces at all; this is what payment files and online banking forms store. The checker accepts either and shows both.
How do you check if an IBAN is valid?
To check an IBAN by hand, without a tool:
- Remove all spaces and write the letters in upper case.
- Check the country code and the length against the table below.
- Move the first four characters (country code and check digits) to the end.
- Replace each letter with two digits: A = 10, B = 11 … Z = 35.
- Divide the resulting number by 97. If the remainder is exactly 1, the check digits are correct.
The number in step 4 is too long for a normal calculator, so in practice you process it in chunks: take the remainder of the first few digits, put it in front of the next digits, and repeat. That is what the checker's code does.
Worked example: DE89 3704 0044 0532 0130 00
- Electronic form:
DE89370400440532013000 - Move the first four characters to the end:
370400440532013000DE89 - Replace letters: D = 13, E = 14, giving
370400440532013000131489 370400440532013000131489mod 97 = 1 → valid.
Change the last digit to …3001 and the remainder becomes 28, so the checker reports a check-digit error. The example IBANs on this page (DE89 3704 0044 0532 0130 00, GB82 WEST 1234 5698 7654 32, BG80 BNBG 9661 1020 3456 78) are widely used test values, not real accounts we know of.
How are IBAN check digits calculated?
Generating check digits uses the same arithmetic in reverse. Take the BBAN, append the country code converted to digits and then 00, compute the remainder modulo 97, and subtract it from 98. For the German example: 370400440532013000 + 1314 + 00, remainder 9, and 98 − 9 = 89. Results below 10 get a leading zero, so the check digits always have two characters and fall between 02 and 98.
When the check fails, the checker tells you which check digits the BBAN you typed would need. That is a debugging aid, not a correction: if the check digits disagree, the mistake is just as likely to be in the account part. Ask the payee for the IBAN again rather than "fixing" it.
IBAN length by country
The table lists the 89 countries in SWIFT IBAN Registry release 101, which is the list the checker uses. We could not open the SWIFT registry itself on 5 November 2026; the lengths come from two independent copies of release 101 that agree with each other. SWIFT has published later releases since, so a very recent addition may be missing.
| Length | Countries |
|---|---|
| 15 | Norway (NO) |
| 16 | Belgium (BE) |
| 18 | Denmark (DK), Faroe Islands (FO), Finland (FI), Falkland Islands (FK), Greenland (GL), Netherlands (NL), Sudan (SD) |
| 19 | North Macedonia (MK), Slovenia (SI) |
| 20 | Austria (AT), Bosnia and Herzegovina (BA), Estonia (EE), Kazakhstan (KZ), Kosovo (XK), Lithuania (LT), Luxembourg (LU), Mongolia (MN) |
| 21 | Switzerland (CH), Croatia (HR), Latvia (LV), Liechtenstein (LI) |
| 22 | Bahrain (BH), Bulgaria (BG), Costa Rica (CR), Georgia (GE), Germany (DE), Ireland (IE), Montenegro (ME), Serbia (RS), United Kingdom (GB), Vatican City (VA) |
| 23 | Gibraltar (GI), Iraq (IQ), Israel (IL), Oman (OM), Somalia (SO), Timor-Leste (TL), United Arab Emirates (AE) |
| 24 | Andorra (AD), British Virgin Islands (VG), Czechia (CZ), Moldova (MD), Pakistan (PK), Romania (RO), Saudi Arabia (SA), Slovakia (SK), Spain (ES), Sweden (SE), Tunisia (TN) |
| 25 | Libya (LY), Portugal (PT), São Tomé and Príncipe (ST) |
| 26 | Iceland (IS), Türkiye (TR) |
| 27 | Burundi (BI), Djibouti (DJ), France (FR), Greece (GR), Italy (IT), Mauritania (MR), Monaco (MC), San Marino (SM) |
| 28 | Albania (AL), Azerbaijan (AZ), Belarus (BY), Cyprus (CY), Dominican Republic (DO), El Salvador (SV), Guatemala (GT), Honduras (HN), Hungary (HU), Lebanon (LB), Nicaragua (NI), Poland (PL) |
| 29 | Brazil (BR), Egypt (EG), Palestine (PS), Qatar (QA), Ukraine (UA) |
| 30 | Jordan (JO), Kuwait (KW), Mauritius (MU), Yemen (YE) |
| 31 | Malta (MT), Seychelles (SC) |
| 32 | Saint Lucia (LC) |
| 33 | Russia (RU) |
Some websites also list "partial" or experimental IBAN formats for countries outside the registry, mostly in Africa. The checker treats those country codes as unknown, because they are not part of the SWIFT registry.
What a valid IBAN does not prove
A passing result means the number is well formed. It says nothing about:
- Whether the account exists or is open. A closed account can still have a perfectly valid IBAN.
- Who holds the account. Fraudsters send invoices with their own, valid IBAN. The format check will pass.
- Whether the bank accepts SEPA payments, or which payment schemes the account can receive.
For the second point, euro-area payment service providers have had to offer Verification of Payee since 9 October 2025, under the Instant Payments Regulation. Before you send a euro credit transfer, your bank compares the payee name you entered with the name held for that IBAN and tells you whether it is a match, a close match or no match. That check happens inside the banking system and needs the account holder's data, which a public format checker does not have and should not have. In non-euro EU countries the deadline is 9 July 2027.
Do you still need a BIC for a SEPA transfer?
For euro payments within SEPA, the IBAN is enough. Under the SEPA Regulation (EU) 260/2012, Article 5(7), payment service providers could no longer require you to give the BIC for national payments after 1 February 2014 and for cross-border SEPA payments after 1 February 2016. Some forms still show a BIC field, and transfers outside SEPA may still need one.
Is the IBAN you enter sent anywhere?
No. The checker is a client-side component: the country table and the mod 97 calculation are part of the page's code, and the check runs in your browser without a network request. Nothing is logged or stored. That matters because an IBAN combined with a name is personal data in many situations.
Common IBAN errors
| Symptom in the checker | Likely cause | What to do |
|---|---|---|
| Wrong length | A digit missed or doubled; a domestic account number pasted instead of the IBAN | Compare with the original group by group |
| Check digits do not match | One wrong digit or two swapped digits | Ask the payee to confirm the IBAN in writing; do not guess |
| Unknown country code | Letter O typed as zero, or a country without IBANs (for example the United States) | Re-type the first two characters; use the local account format for non-IBAN countries |
| Invalid characters | Copied from a PDF with special spaces or punctuation | Paste into a plain text field first |
A wrong IBAN also causes trouble after the payment: if the payer uses an old or mistyped account and the payment is rejected or returned, your incoming payments no longer line up with your invoices. If you reconcile euro payments against invoices, the SEPA reconciliation guide explains how IBAN and reference evidence are used, and our reconciliation product page shows how the counterparty IBAN adds evidence to a match. You can also check the payment reference itself with the SEPA transfer reference checker.
Frequently asked questions
Can an IBAN be valid but the account not exist?
Yes. The check digits only protect against typing errors. A made-up number with correct check digits passes, and so does the IBAN of a closed account. Only the bank, for example through Verification of Payee, can confirm the account and holder.
How many characters does an IBAN have?
It depends on the country, from 15 characters (Norway) to 33 (Russia) in the registry list we use. The standard allows up to 34 characters. Each country uses exactly one length.
How do I know which country an IBAN is from?
The first two letters are the ISO country code. The checker shows the country name. The country of the IBAN is where the account is held, which is not necessarily where the account holder lives.
Why does my bank's IBAN fail the check?
Usually because of a copying error: an extra space-like character from a PDF, a letter O instead of a zero, or a missing digit. If you typed it from a bank statement and it still fails, contact the bank; do not change digits until it passes.
Does the checker store the IBANs I enter?
No. The calculation runs in your browser and nothing is sent to our servers or stored.
What is the difference between an IBAN and a BIC?
The IBAN identifies an account. The BIC (sometimes called the SWIFT code) identifies a bank. Within SEPA euro transfers your bank cannot require the BIC; outside SEPA it may still be needed.
Sources
- Central Bank of the Republic of Türkiye — Communiqué on the IBAN (validation and generation steps, MOD 97-10) (accessed 5 November 2026)
- python-stdnum iban.dat, generated from SWIFT IBAN Registry release 101 (accessed 5 November 2026)
- iban.com — IBAN structure by country (cross-check of lengths) (accessed 5 November 2026)
- Czech National Bank — IBAN historical development (registry administration) (accessed 5 November 2026)
- Regulation (EU) No 260/2012, Article 5 (as adopted) (accessed 5 November 2026)
- European Central Bank — Instant Payments Regulation and Verification of Payee (accessed 5 November 2026)