IBAN checker that shows you the typo
Paste an IBAN before you send money or put it on an invoice. You see straight away whether its length, structure and check digits add up, which characters are the bank, the branch and the account, and which character is wrong when they don't.
Their lengths run from 15 characters (Norway) to 33 (Russia). Every rule below comes from the SWIFT IBAN Registry.
Waiting for an IBAN
Type or paste one above. The check runs as you type, on this page only.
The check is plain arithmetic in your browser. This page sends nothing you type to Heirson or to anyone else, and it stores nothing.
SWIFT code checker and BIC decoder
A SWIFT code (the formal name is BIC, from ISO 9362) tells a payment which bank to go to. It is 8 or 11 characters: four for the bank, two for the country, two for the location and an optional three for the branch.
What this decoder can tell you: whether the code has a possible shape, which country it claims and what each part means. What it cannot tell you: whether a bank with this code exists or belongs to the person who sent it. Only SWIFT's own BIC search or the bank itself can confirm that.
If you ran an IBAN through the checker above, the decoder also compares the two country codes, and the bank codes where the IBAN carries the first four letters of the BIC.
Waiting for a code
8 or 11 letters and digits.
IBAN calculator: build an IBAN from a bank code and account number
An IBAN is a domestic account number with a country code and two check digits in front. In some countries the domestic part is a simple row of fixed fields, so the IBAN can be worked out with no guessing. The calculator only offers those countries.
Works for:
Left out on purpose: Germany, because some banks convert account numbers with their own Bundesbank IBAN rules; Switzerland, because account formats differ by bank; France, Italy, Spain and Portugal, whose IBANs carry a national check key you would need from the bank; Mauritius and Seychelles, whose IBANs end in reserved digits and a currency code that only the bank assigns.
Each field must have its exact length.
What an IBAN is, character by character
The international form of one bank account: country, check digits, then the domestic number.
What an IBAN is
An IBAN (International Bank Account Number) is your local account number, wrapped so that any bank in the world can read it and catch a typo before the money moves.
The format is set by the ISO 13616 standard, and SWIFT keeps the official registry of each country's layout. Every IBAN has the same three layers:
- Country code, 2 letters. The ISO country code of the bank, not of the account holder. A Bahraini company's account at a Bahraini bank starts with BH, whoever owns it.
- Check digits, 2 digits. Calculated from everything else. They are why a checker can tell a mistyped IBAN from a real one without asking any bank.
- BBAN, up to 30 characters. The Basic Bank Account Number: the domestic details in the country's fixed layout, usually a bank code, sometimes a branch code, then the account number.
On paper an IBAN is written in groups of four (GB29 NWBK 6016 1331 9268 19). In a payment form it is typed without spaces. Both are the same IBAN.
How the check digits catch mistakes
The check uses ISO 7064 MOD 97-10. Here it is on the registry's own UK example, GB29NWBK60161331926819:
- Move the first four characters to the end:
NWBK60161331926819GB29 - Turn each letter into two digits, A = 10 up to Z = 35. N is 23, W is 32, B is 11, K is 20, G is 16:
2332112060161331926819161129 - Divide that number by 97. A valid IBAN always leaves a remainder of exactly 1. This one does.
Change any single character, or swap two neighbours, and the remainder stops being 1. That is the reason the tool above can point at the likely position of a typo: it tries the common slips (letter O for zero, I or L for one, two swapped digits) and shows you only the fixes that bring the remainder back to 1 and also fit the country's layout.
The typos that bounce payments most
- O and 0, I and 1. Most IBANs are digits after the bank code, so a letter O in the account part is almost always a zero.
- A digit dropped from a long account number. Malta and Seychelles IBANs run to 31 characters; one missing character fails the length test straight away.
- Swapped neighbours. Typing 43 for 34 is the classic slip. The tool lists the swaps that would make the number valid.
- The label pasted in. "IBAN:" copied from an email header. The tool strips it for you, but a bank form may not.
- Old domestic numbers. A sort code and account number is not an IBAN. Use the calculator or ask the bank for the full IBAN.
Which countries use an IBAN, and what to give where they don't
Most of Europe and the Middle East do. The US, Hong Kong and most of the Caribbean do not.
Countries with and without IBAN
If a country is not in the registry, there is no IBAN to find. Asking for one only delays the payment.
89 codes have their own IBAN format today. A few more territories borrow a neighbour's: Jersey, Guernsey and the Isle of Man use GB IBANs, the Åland Islands use FI, and the French overseas departments and territories use FR. That catches people out on Channel Islands accounts, where the bank's SWIFT code may say JE or GG while the IBAN says GB. Both are right.
Everywhere else, an international payment needs the bank's SWIFT code plus the local account number, and often a local routing code too:
| Where the bank is | IBAN? | What the sender needs instead |
|---|---|---|
| United States | No | 9 digit ABA routing number and the account number for domestic wires and ACH; the bank's SWIFT code for wires from abroad. See the US bank account guide. |
| Hong Kong | No | 3 digit bank code, 3 digit branch code and the account number, plus the SWIFT code from abroad. See Hong Kong business banking. |
| Cayman Islands, Bahamas, Bermuda | No | Account number and SWIFT code. US dollar payments often route through a US correspondent bank, which the receiving bank names on its wire instructions. |
| Panama, Belize, Curaçao | No | Account number and SWIFT code, with the intermediary bank the receiving bank gives for US dollars. |
| Marshall Islands, Nevis, Labuan (Malaysia) | No | The company usually banks in another country, so the account details follow that bank's country. Labuan accounts take a Malaysian account number and SWIFT code. |
| Canada, Australia, Singapore, India | No | Canada: institution and transit number. Australia: 6 digit BSB. India: 11 character IFSC. Singapore: bank and branch code. Plus the SWIFT code from abroad. |
| British Virgin Islands, UAE, Bahrain | Yes | VG, AE and BH IBANs. Outside SEPA, so send the SWIFT code with the IBAN. |
IBAN vs SWIFT code: which bank, which account
A SWIFT code finds the building. The IBAN finds the drawer inside it.
IBAN vs SWIFT
You usually need both. The exception is a euro payment inside SEPA, where the IBAN alone is enough.
| IBAN | SWIFT code (BIC) | |
|---|---|---|
| Identifies | One account | One bank, or one branch of it |
| Standard | ISO 13616 | ISO 9362 |
| Length | 15 to 33 characters, fixed per country | 8 or 11 characters |
| Built in error check | Yes, two check digits | No; a typo can still look valid |
| Who issues it | Your bank, from your domestic account number | SWIFT, as the ISO registration authority |
| Shared with others? | Never: it is yours alone | Yes: every customer of the branch has the same one |
| Example | GB29 NWBK 6016 1331 9268 19 | NWBKGB2LXXX |
The IBAN is the registry's UK sample. It carries NWBK, the same four letters that open the bank's SWIFT code, which is how UK and Irish IBANs are built. Run any code through the decoder above to see its four parts. If the receiving bank gives you an intermediary or correspondent bank, its SWIFT code goes in the separate intermediary field of the payment form, never in place of the beneficiary bank's.
Receiving international payments into your offshore company's account
What your clients will need from you, country by country.
Account details by country
Send clients one block of details that works first time: account name exactly as the bank holds it, IBAN or account number, SWIFT code, bank name and address, and any intermediary bank.
Where your company is formed and where it banks are often two different places. A Seychelles or BVI company may hold its account in Switzerland, the UAE or Mauritius. The details your clients need follow the bank's country, so read the row for the bank, not for the company.
| Bank in | IBAN | Length and start | Guide |
|---|---|---|---|
| Bahamas | No | Account number and SWIFT code | Bahamas bank account |
| Bahrain | Yes | BH, 22 characters | Bahrain bank account |
| Belize | No | Account number and SWIFT code | Belize bank account |
| Bermuda | No | Account number and SWIFT code | Bermuda bank account |
| Bulgaria | Yes | BG, 22 characters | Bulgaria bank account |
| British Virgin Islands | Yes | VG, 24 characters | British Virgin Islands bank account |
| Cayman Islands | No | Account number and SWIFT code | Cayman Islands bank account |
| Curaçao | No | Account number and SWIFT code | Curaçao bank account |
| Cyprus | Yes | CY, 28 characters | Cyprus bank account |
| Estonia | Yes | EE, 20 characters | Estonia bank account |
| Georgia | Yes | GE, 22 characters | Georgia bank account |
| Gibraltar | Yes | GI, 23 characters | Gibraltar bank account |
| Guernsey | Yes | GB, 22 characters (borrowed from the UK) | Guernsey bank account |
| Hong Kong | No | Account number and SWIFT code | Hong Kong bank account |
| Isle of Man | Yes | GB, 22 characters (borrowed from the UK) | Isle of Man bank account |
| Jersey | Yes | GB, 22 characters (borrowed from the UK) | Jersey bank account |
| Labuan (Malaysia) | No | Account number and SWIFT code | Labuan (Malaysia) bank account |
| Malta | Yes | MT, 31 characters | Malta bank account |
| Marshall Islands | No | Account number and SWIFT code | Marshall Islands bank account |
| Mauritius | Yes | MU, 30 characters, ends in a currency code | Mauritius bank account |
| Nevis | No | Account number and SWIFT code | Nevis bank account |
| Panama | No | Account number and SWIFT code | Panama bank account |
| Seychelles | Yes | SC, 31 characters, ends in a currency code | Seychelles bank account |
| Switzerland | Yes | CH, 21 characters | Switzerland bank account |
| United Arab Emirates | Yes | AE, 23 characters | United Arab Emirates bank account |
| United States | No | Account number and SWIFT code | United States bank account |
IBAN formats for all 89 countries
Our summary of the SWIFT IBAN Registry. In the structure column, n means digits, a capital letters and c letters or digits, so 4a 14c is four letters then fourteen letters or digits. Positions count from the first character after the check digits. Tap an example to load it into the checker.
| Code | Country | Length | BBAN structure | Bank code | Branch code | SEPA | Registry example |
|---|---|---|---|---|---|---|---|
| AD | Andorra | 24 | 4n 4n 12c | 1 to 4 | 5 to 8 | Yes | |
| AE | United Arab Emirates | 23 | 3n 16n | 1 to 3 | none | No | |
| AL | Albania | 28 | 8n 16c | 1 to 3 | 4 to 8 | No | |
| AT | Austria | 20 | 5n 11n | 1 to 5 | none | Yes | |
| AZ | Azerbaijan | 28 | 4a 20c | 1 to 4 | none | No | |
| BA | Bosnia and Herzegovina | 20 | 3n 3n 8n 2n | 1 to 3 | 4 to 6 | No | |
| BE | Belgium | 16 | 3n 7n 2n | 1 to 3 | none | Yes | |
| BG | Bulgaria | 22 | 4a 4n 2n 8c | 1 to 4 | 5 to 8 | Yes | |
| BH | Bahrain | 22 | 4a 14c | 1 to 4 | none | No | |
| BI | Burundi | 27 | 5n 5n 11n 2n | 1 to 5 | 6 to 10 | No | |
| BR | Brazil | 29 | 8c 5n 10n 1c 1c | 1 to 8 | 9 to 13 | No | |
| BY | Belarus | 28 | 4c 4n 16c | 1 to 4 | none | No | |
| CH | Switzerland | 21 | 5n 12c | 1 to 5 | none | Yes | |
| CR | Costa Rica | 22 | 4n 14n | 1 to 4 | none | No | |
| CY | Cyprus | 28 | 3n 5n 16c | 1 to 3 | 4 to 8 | Yes | |
| CZ | Czechia | 24 | 4n 16n | 1 to 4 | none | Yes | |
| DE | Germany | 22 | 8n 10n | 1 to 8 | none | Yes | |
| DJ | Djibouti | 27 | 5n 5n 11n 2n | 1 to 5 | 6 to 10 | No | |
| DK | Denmark | 18 | 4n 9n 1n | 1 to 4 | none | Yes | |
| DO | Dominican Republic | 28 | 4c 20n | 1 to 4 | none | No | |
| EE | Estonia | 20 | 2n 14n | 1 to 2 | none | Yes | |
| EG | Egypt | 29 | 4n 4n 17n | 1 to 4 | 5 to 8 | No | |
| ES | Spain | 24 | 4n 4n 1n 1n 10n | 1 to 4 | 5 to 8 | Yes | |
| FI | Finland Also used in Åland Islands | 18 | 3n 11n | 1 to 3 | none | Yes | |
| FK | Falkland Islands | 18 | 2a 12n | 1 to 2 | none | No | not published |
| FO | Faroe Islands | 18 | 4n 9n 1n | 1 to 4 | none | No | |
| FR | France Also used in French Guiana, Guadeloupe, Martinique, Réunion, French Polynesia, French Southern Territories, Mayotte, New Caledonia, Saint Barthélemy, Saint Martin (French part), Saint Pierre and Miquelon, Wallis and Futuna | 27 | 5n 5n 11c 2n | 1 to 5 | none | Yes | |
| GB | United Kingdom Also used in Isle of Man, Jersey, Guernsey | 22 | 4a 6n 8n | 1 to 4 | 5 to 10 | Yes | |
| GE | Georgia | 22 | 2a 16n | 1 to 2 | none | No | |
| GI | Gibraltar | 23 | 4a 15c | 1 to 4 | none | Yes | |
| GL | Greenland | 18 | 4n 9n 1n | 1 to 4 | none | No | |
| GR | Greece | 27 | 3n 4n 16c | 1 to 3 | 4 to 7 | Yes | |
| GT | Guatemala | 28 | 4c 20c | 1 to 4 | none | No | |
| HN | Honduras | 28 | 4a 20n | 1 to 4 | none | No | |
| HR | Croatia | 21 | 7n 10n | 1 to 7 | none | Yes | |
| HU | Hungary | 28 | 3n 4n 1n 15n 1n | 1 to 3 | 4 to 7 | Yes | |
| IE | Ireland | 22 | 4a 6n 8n | 1 to 4 | 5 to 10 | Yes | |
| IL | Israel | 23 | 3n 3n 13n | 1 to 3 | 4 to 6 | No | |
| IQ | Iraq | 23 | 4a 3n 12n | 1 to 4 | 5 to 7 | No | |
| IS | Iceland | 26 | 4n 2n 6n 10n | 1 to 2 | 3 to 4 | Yes | |
| IT | Italy | 27 | 1a 5n 5n 12c | 2 to 6 | 7 to 11 | Yes | |
| JO | Jordan | 30 | 4a 4n 18c | 1 to 4 | 5 to 8 | No | |
| KW | Kuwait | 30 | 4a 22c | 1 to 4 | none | No | |
| KZ | Kazakhstan | 20 | 3n 13c | 1 to 3 | none | No | |
| LB | Lebanon | 28 | 4n 20c | 1 to 4 | none | No | |
| LC | Saint Lucia | 32 | 4a 24c | 1 to 4 | none | No | |
| LI | Liechtenstein | 21 | 5n 12c | 1 to 5 | none | Yes | |
| LT | Lithuania | 20 | 5n 11n | 1 to 5 | none | Yes | |
| LU | Luxembourg | 20 | 3n 13c | 1 to 3 | none | Yes | |
| LV | Latvia | 21 | 4a 13c | 1 to 4 | none | Yes | |
| LY | Libya | 25 | 3n 3n 15n | 1 to 3 | 4 to 6 | No | not published |
| MC | Monaco | 27 | 5n 5n 11c 2n | 1 to 5 | 6 to 10 | Yes | |
| MD | Moldova | 24 | 2c 18c | 1 to 2 | none | No | |
| ME | Montenegro | 22 | 3n 13n 2n | 1 to 3 | none | No | |
| MK | North Macedonia | 19 | 3n 10c 2n | 1 to 3 | none | No | |
| MN | Mongolia | 20 | 4n 12n | 1 to 4 | none | No | not published |
| MR | Mauritania | 27 | 5n 5n 11n 2n | 1 to 5 | 6 to 10 | No | |
| MT | Malta | 31 | 4a 5n 18c | 1 to 4 | 5 to 9 | Yes | |
| MU | Mauritius | 30 | 4a 2n 2n 12n 3n 3a | 1 to 6 | 7 to 8 | No | |
| NI | Nicaragua | 28 | 4a 20n | 1 to 4 | none | No | |
| NL | Netherlands | 18 | 4a 10n | 1 to 4 | none | Yes | |
| NO | Norway | 15 | 4n 6n 1n | 1 to 4 | none | Yes | |
| OM | Oman | 23 | 3n 16c | 1 to 3 | none | No | |
| PK | Pakistan | 24 | 4a 16c | 1 to 4 | none | No | |
| PL | Poland | 28 | 8n 16n | 1 to 8 | none | Yes | |
| PS | Palestine | 29 | 4a 21c | 1 to 4 | none | No | |
| PT | Portugal | 25 | 4n 4n 11n 2n | 1 to 4 | none | Yes | |
| QA | Qatar | 29 | 4a 21c | 1 to 4 | none | No | |
| RO | Romania | 24 | 4a 16c | 1 to 4 | none | Yes | |
| RS | Serbia | 22 | 3n 13n 2n | 1 to 3 | none | No | |
| RU | Russia | 33 | 9n 5n 15c | 1 to 9 | 10 to 14 | No | |
| SA | Saudi Arabia | 24 | 2n 18c | 1 to 2 | none | No | |
| SC | Seychelles | 31 | 4a 2n 2n 16n 3a | 1 to 6 | 7 to 8 | No | |
| SD | Sudan | 18 | 2n 12n | 1 to 2 | none | No | |
| SE | Sweden | 24 | 3n 16n 1n | 1 to 3 | none | Yes | |
| SI | Slovenia | 19 | 5n 8n 2n | 1 to 5 | none | Yes | |
| SK | Slovakia | 24 | 4n 6n 10n | 1 to 4 | none | Yes | |
| SM | San Marino | 27 | 1a 5n 5n 12c | 2 to 6 | 7 to 11 | Yes | |
| SO | Somalia | 23 | 4n 3n 12n | 1 to 4 | 5 to 7 | No | not published |
| ST | Sao Tome and Principe | 25 | 4n 4n 11n 2n | 1 to 4 | 5 to 8 | No | |
| SV | El Salvador | 28 | 4a 20n | 1 to 4 | none | No | |
| TL | Timor-Leste | 23 | 3n 14n 2n | 1 to 3 | none | No | |
| TN | Tunisia | 24 | 2n 3n 13n 2n | 1 to 2 | 3 to 5 | No | |
| TR | Türkiye | 26 | 5n 1n 16c | 1 to 5 | none | No | |
| UA | Ukraine | 29 | 6n 19c | 1 to 6 | none | No | |
| VA | Vatican City | 22 | 3n 15n | 1 to 3 | none | Yes | |
| VG | British Virgin Islands | 24 | 4a 16n | 1 to 4 | none | No | |
| XK | Kosovo | 20 | 4n 10n 2n | 1 to 2 | 3 to 4 | No | |
| YE | Yemen | 30 | 4a 4n 18c | 1 to 4 | 5 to 8 | No |
IBAN questions
Does a valid IBAN mean the account exists?
No. A valid result means the length, layout and check digits are consistent. Only the bank knows whether the account is open and who holds it, and some banks now show you the account holder's name when you set up a payment. If an IBAN arrives in an email that changes earlier bank details, call the payee on a number you already have.
Is the IBAN I type sent anywhere?
No. The checker, the SWIFT code decoder and the calculator are plain JavaScript that runs in your browser. Nothing you type is sent to Heirson or to anyone else, and nothing is stored, so you can use it for a client's details as well as your own.
Can I find the bank's name from an IBAN?
The IBAN contains the bank code, and the checker shows you which characters that is. Turning a bank code into a bank name needs each country's directory of banks, which this page does not hold. In the UK, Ireland, the Netherlands, Bulgaria and Gibraltar the bank code is the first four letters of the bank's SWIFT code, which is often enough to recognise it.
Do I need the SWIFT code as well as the IBAN?
For a euro payment between SEPA countries, no: the IBAN alone is enough. For any other payment, such as US dollars to the UAE or pounds to Switzerland, give both. Your bank's payment form will ask for whatever it needs.
Why does a Jersey, Guernsey or Isle of Man IBAN start with GB?
The SWIFT IBAN Registry lists the Crown Dependencies under the United Kingdom's code, so their IBANs use GB and the UK layout of 22 characters. The bank's SWIFT code can still carry JE, GG or IM as its country code. Both are correct.
How long is an IBAN?
It depends on the country, and every country's length is fixed. Today the shortest is Norway at 15 characters and the longest is Russia at 33. ISO 13616 allows up to 34. The registry table on this page lists the length for each of the 89 countries.
What do I give a client in a country without IBANs, like the US?
Give your own IBAN if your account has one; their bank can send to it. If your account is in a country without IBANs, give the account number, the bank's SWIFT code, the bank's name and address and any intermediary bank the bank lists for that currency.
An account abroad that clients can pay without the back and forth
We form the company and set up the business bank account with you, in the country whose banking fits how you get paid. Paid in crypto only, every fee shown before you order.