Free tool · 89 countries
IBAN checker
Check an IBAN before you send money or set up a direct debit: country code, length, structure and check digits, checked in your browser. For IBANs from Germany, Austria, Switzerland, Liechtenstein, Belgium and the Czech Republic the checker also shows the bank from the national bank code directory: its name and, where the directory lists them, its BIC and town.
With or without spaces. Country, length, structure and check digits are checked in your browser.
Privacy: the format and check digit check runs in your browser and sends nothing. Only for a valid IBAN from Germany, Austria, Switzerland, Liechtenstein, Belgium or the Czech Republic does the tool send the IBAN to our API, in the body of the request, to look up the bank. It is used for this lookup and not stored.
IBAN formats derived from the SWIFT IBAN Registry (ISO 13616), Release 103, September 2026.
The bank data comes from these directories:
- DE: Deutsche Bundesbank, Bankleitzahlendatei. Quelle: Deutsche Bundesbank
- AT: Oesterreichische Nationalbank (OeNB), SEPA-Zahlungsverkehrsverzeichnis. Source: Oesterreichische Nationalbank (OeNB), SEPA-Zahlungsverkehrsverzeichnis (excerpt), © OeNB, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), provided without warranty
- CH, LI: SIX Interbank Clearing, Bank Master. Source: SIX Interbank Clearing Ltd, Bank Master. BIC are the property of SWIFT SCRL, 1310 La Hulpe, Belgium.
- BE: National Bank of Belgium (NBB), bank identification codes. Source: National Bank of Belgium (NBB). This information is also available free of charge at https://www.nbb.be/en/payments-and-securities/bank-identification-codes
- CZ: Česká národní banka (ČNB), Číselník kódů platebního styku. Zdroj: ČNB
What the IBAN checker checks
- Characters: once the spaces are removed, an IBAN holds only the letters A to Z and the digits 0 to 9.
- Country code: the first two letters must be one of the 89 countries of the SWIFT IBAN Registry.
- Length: each country has a fixed IBAN length, from 15 characters in Norway to 33 in Russia. UK and German IBANs have 22, French IBANs 27.
- Structure: which positions hold digits and which hold letters, for example the four letters of the bank in a UK IBAN.
- Check digits: the two digits after the country code are an ISO 7064 MOD 97-10 checksum over the whole IBAN. They catch every single wrong digit and every swap of two neighbouring digits.
- Bank and national check digits: for IBANs from Germany, Austria, Switzerland, Liechtenstein, Belgium and the Czech Republic the checker looks up the bank in the national bank code directory: its name and, where the directory lists them, its BIC and town. For German, Belgian and Czech IBANs it also checks the check digit inside the account number; for Germany that is the method the Deutsche Bundesbank assigns to the bank code.
Steps 1 to 5 run in your browser. Only step 6 sends the IBAN to our server.
What a valid IBAN does not tell you
A valid IBAN is well formed and has correct check digits. It does not prove that the account exists, that it is open, or who holds it. Before the first payment to a new payee, confirm the account details with the payee, or use the payee check your bank offers.
How an IBAN is built
Take the German example DE89 3704 0044 0532 0130 00:
| Part | In the example | Meaning |
|---|---|---|
| Country code | DE | Germany |
| Check digits | 89 | MOD 97-10 checksum over the whole IBAN |
| Bank code | 37040044 | Bankleitzahl (BLZ) of the bank |
| Account number | 0532013000 | the account number, padded to 10 digits |
A UK IBAN such as GB29 NWBK 6016 1331 9268 19 holds a four-letter bank code (NWBK), the six-digit sort code (601613) and the eight-digit account number (31926819). Everything after the check digits is the BBAN, the domestic account number; the IBAN Registry defines its structure for each country.
Where the bank data comes from
The bank name, BIC and town come from the directories that the central banks and, for Switzerland and Liechtenstein, SIX Interbank Clearing publish. The Belgian and Czech directories list no town. The directories are checked daily for new editions. Every result names its source, as the directories’ terms require; the full list is below the checker.
For IBANs from other countries the checker shows the parts of the IBAN but no bank.
Check IBANs by API
curl -G https://api.vatcheckapi.com/v2/iban \
-d iban=DE89370400440532013000 \
-H "apikey: YOUR-API-KEY"
The response contains valid, reason (the first check that failed), checks including national_checksum, the parts of the IBAN and bank. POST /v2/iban/batch validates up to 100 IBANs per request and keeps them out of the URL. See the IBAN validation API and the documentation.
Frequently asked questions
How do I check an IBAN?
Does a valid IBAN mean the account exists?
Is my IBAN sent anywhere or stored?
Which countries does the IBAN checker support?
Does the checker verify UK sort codes and account numbers?
Can I calculate an IBAN from an account number?
Can I check IBANs automatically?
IBAN validation API
Validate IBANs in your app
The API runs the same checks plus the national check digits for 23 countries, returns the bank for DE, AT, CH, LI, BE and CZ, and takes up to 100 IBANs per batch request.
/v2/iban documentation IBAN validation API All documentation
150 free requests every month, one per IBAN. No credit card required.
GET https://api.vatcheckapi.com/v2/iban?iban=DE89370400440532013000
{
"iban": "DE89370400440532013000",
"iban_print_format": "DE89 3704 0044 0532 0130 00",
"valid": true,
"reason": null,
"checks": {
"length": true,
"structure": true,
"checksum": true,
"national_checksum": true
},
"country_code": "DE",
"sepa": true,
"bban": "370400440532013000",
"bank_code": "37040044",
"branch_code": null,
"account_number": "0532013000",
"bank": {
"name": "Commerzbank",
"bic": "COBADEFFXXX",
"city": "Köln",
"source": "Quelle: Deutsche Bundesbank"
},
"notice": "A valid IBAN is well formed and has correct check digits. It does not prove that the account exists, is open, or who holds it."
}