tooloora

IBAN Checker – validate check digit, length and country

Paste an IBAN before you pay an invoice: the check digit is verified in your browser, and you are told exactly what is wrong when it fails.

Runs locally — nothing is uploaded

Valid does not mean the account exists

The check digit is pure arithmetic over the characters. It catches typing mistakes – whether the account exists and who owns it, only the bank knows.

Spaces, dashes and a leading “IBAN:” are all fine.

The IBAN stays in your browser: no upload, nothing in the address bar, nothing stored.

How do I check an IBAN?

Paste the IBAN – with or without spaces – and the result appears immediately: characters, structure, country length and the ISO 7064 check digit are all computed right in your browser. If something is wrong, the tool names the reason. For a valid German IBAN it additionally shows the bank code and the account number.

The field also understands the way IBANs appear on invoices: groups of four, dashes and a leading “IBAN:” are stripped before checking.

What is the structure of an IBAN?

The layout is standardised in ISO 13616: two letters of country code, two check digits, then the national account identifier – at most 34 characters in total. How long an IBAN is exactly is fixed per country and recorded in the IBAN Registry, which SWIFT maintains as the ISO registration authority. Germany uses 22 characters, Austria 20, Switzerland 21 – the shortest IBAN of all belongs to Norway, at 15.

Taking DE89 3704 0044 0532 0130 00 as an example:

PartCharactersMeaning
CountryDEcountry code as in ISO 3166
Check digits89arithmetic control over the whole IBAN
Bank code3704 0044eight digits identifying the institution
Account number0532 0130 00ten digits, shorter numbers padded with leading zeros

The IBAN has been mandatory for euro payments since the SEPA Regulation (EU) No 260/2012 – credit transfers and direct debits in euro run on the IBAN instead of national account numbers.

How does the check digit work?

Per ISO/IEC 7064 (system MOD 97-10), in three steps: the first four characters move to the end, every letter becomes a number (A = 10 up to Z = 35), and the resulting string of digits must leave a remainder of 1 when divided by 97. The scheme detects every single wrong character and every swap of two neighbouring digits – the most common typing mistakes there are.

One detail decides whether that calculation is even correct: with 34 characters, the digit string grows to as many as 68 digits. Computed as an ordinary number, the remainder would be silently wrong from about 16 digits on, because floating point loses precision there. This tool therefore computes the remainder digit by digit.

Does “valid” mean the account exists?

No, and that is the most important limit of this tool. The check digit is arithmetic over the character string – it catches typing mistakes, but knows nothing about the world behind them. Whether the account was ever opened, still exists and who owns it, only the account-holding bank can answer. An invented IBAN with a matching check digit passes every format check.

That is exactly what invoice fraud builds on: an invoice announcing supposedly new bank details almost always carries a formally flawless IBAN. When bank details change unexpectedly, no check digit helps – a call to the biller under the number you already know does.

What extra detail is shown for German IBANs?

German IBANs have a fixed, decomposable layout: DE and the two check digits are followed by eight digits of bank code (Bankleitzahl) and ten digits of account number. The result shows both parts separately, ready to copy – the account number also without the padding zeros, the way it appears on cards and statements.

What happens to the IBAN I enter?

It stays in your browser. The calculation runs locally; there is no server that could see the number. This tool also deliberately skips two conveniences other tools on this site offer: the input never goes into the address bar – where the bank details would end up in history, bookmarks and every shared link – and it is never stored on your device. After a reload the field is empty. To verify it yourself: load the page, disconnect from the internet, enter an IBAN – the check works unchanged.

Honest limits

  • Account existence: out of scope, see above. No format check can provide it.
  • National check schemes: many countries validate additionally inside the account number – in Germany, Deutsche Bundesbank publishes separate per-bank check digit methods for that. This tool does not.
  • BIC: is not derived. Within the SEPA area, the IBAN alone is sufficient for transfers.
  • Length table: covers the SEPA area and the countries common in European payments. If a country is missing, the result says so openly and verifies characters, structure and check digit alone.

Frequently asked questions

What exactly does this IBAN checker verify?

Three things: that only the letters A to Z and the digits 0 to 9 appear, that the length matches the country, and that the ISO 7064 check digit adds up. If one of them fails, the result names the reason instead of showing a bare red cross.

Does a valid IBAN mean the account exists?

No. The check digit is pure arithmetic over the string of characters. It catches typing mistakes, but it knows nothing about whether the account was ever opened or who owns it. That gap is exactly what invoice fraud relies on: an invented IBAN with a correct check digit passes every format check.

Is my IBAN uploaded anywhere?

No. The calculation happens in your browser, so there is no server that could see the number. It is also kept out of the address bar and is never stored on your device, so reloading the page leaves the field empty.

Why is the length not checked for some countries?

The length is fixed per country, but there is no rule you could derive it from: it has to come from the IBAN registry. This tool carries the SEPA area and the countries that show up regularly in European payments. If a country is missing, the result says so openly and verifies the check digit alone.

What are the bank code and account number inside a German IBAN?

A German IBAN has 22 characters: DE, two check digits, eight digits of bank code (Bankleitzahl) and ten digits of account number. Shorter account numbers are padded with leading zeros. The tool shows both parts separately as soon as the check passes.

Does the check digit catch every typing mistake?

Almost. Modulo 97 detects every single wrong character and every swap of two neighbouring digits. What slips through are rare multiple errors that cancel each other out arithmetically: roughly one in 97 random strings passes by chance.