Skip to main content

International Bank Account Number

International · Individuals and companies

XX00 0000 0000 0000

Paste or type the number — punctuation is optional.

What this check does — and what it cannot do

This tool checks the number's structure and its check digit, using the published algorithm for that document. A number that passes is well formed: it is arithmetically consistent and could have been issued.

It cannot tell you whether the number was actually issued, whether it is active, or who it belongs to. Only the issuing tax authority can confirm that, through its own lookup service. Treat a passing result as "worth submitting", never as proof of identity.

The generator produces numbers that satisfy the same checksum, for filling forms while developing and testing software. They are arithmetic, not records: they are not drawn from any register and do not correspond to a real holder. No generator is offered for the US Social Security Number.

How the IBAN check works, and what the number tells you

A IBAN is an identifier for people and businesses issued in International. This page checks one against the published rule, shows which specific test it fails when it fails, and decodes the facts the digits carry. Everything runs in your browser — the number you type is never sent anywhere.

How it works

  • Applies the published checksum rather than only checking the length and shape.
  • Names the exact rule that failed, so a typo is distinguishable from a number that was never valid.
  • Decodes what the number encodes: country, check digits, length.
  • Generates valid test numbers, for fixtures and for exercising your own validation code.
CC KK BBAN — country, two check digits, then the national account number
The total length is fixed per country by the ISO 13616 registry.

  move the first four characters to the end
  replace each letter with its position + 9  (A=10 ... Z=35)
  the resulting number, mod 97, must equal 1

To generate the check digits instead: put CC00 at the end, take mod 97,
and the check digits are 98 minus that remainder.

Worked example

Checking DE89 3704 0044 0532 0130 00, a valid IBAN, digit by digit.

  1. input DE89 3704 0044 0532 0130 00
  2. Country Germany
  3. Check digits 89
  4. Length 22 characters
  5. Checksum ISO 13616 mod 97
  6. result passes every published check

The checksum passes, so the number is internally consistent, and the tool reads off country, check digits, length. Internal consistency is not the same as the number being issued to somebody — see the note below.

Reading the result

  • An IBAN can be far longer than a JavaScript number holds exactly, so the modulus has to be taken digit by digit rather than by converting the whole string. An implementation that calls Number() on it will silently produce wrong answers for the longer countries — Malta and Saint Lucia run to 31 and 32 characters.
  • A passing checksum means the digits are consistent with each other, not that the number exists. Only International's own registry can tell you whether a number was actually issued and is still valid, and no offline tool can substitute for that.
  • The check happens entirely in your browser. Nothing is uploaded, logged, or stored, which matters more here than on most tools because these numbers are personal data in every jurisdiction that issues them.
  • Punctuation is ignored. Spaces, dots, dashes and slashes are stripped before the check, so a number pasted in any common local format is read the same way.

Common questions

My number is real but this says it is not valid. Why?
Check for a transposed pair of digits first — that is the single most common cause, and every checksum here is designed to catch it. Failing that, the number may predate the current rule: several countries changed or introduced their checksum at a known date, and older numbers were not reissued. If the tool names a specific rule that failed, that is the one to look at.
Does a valid result mean the number is registered?
No, and this is the limit worth understanding. A checksum proves the digits are mutually consistent, which catches typos and made-up numbers. It cannot prove the number was issued, is still active, or belongs to the person quoting it. Only the issuing authority's own lookup can do that.