IBAN Validator

ISO 13616

Validate any IBAN with mod-97 checksum verification, country-aware length checks, and structured result output.

Spaces are ignored. Input is normalized automatically.

Try an example:

Enter an IBAN above to validate it

How IBAN validation works

  1. 1.Normalize the IBAN — remove spaces, uppercase all characters.
  2. 2.Check the country code and verify the total length matches the expected value for that country.
  3. 3.Move the first 4 characters to the end, replace letters with digits (A=10, Z=35).
  4. 4.Compute the result modulo 97. A valid IBAN must produce a remainder of 1.

Common issues

  • Wrong country length — each country has a fixed IBAN length (e.g. DE = 22, GB = 22, FR = 27). A digit off means invalid.
  • Check digits 00, 01, 99 — these values are reserved and will always fail mod-97 validation.
  • Transcription errors — the Luhn-like mod-97 check catches single-digit swaps and substitutions.
  • BBAN format — after the country + check digits, the BBAN format varies per country (sort code, account number, bank identifier).

Dev snippet — validate IBAN (JavaScript)

function validateIban(raw) {
  const iban = raw.replace(/\s/g, "").toUpperCase();
  const rearranged = iban.slice(4) + iban.slice(0, 4);
  const numeric = rearranged.replace(/[A-Z]/g, (c) => c.charCodeAt(0) - 55);
  let remainder = 0;
  for (const ch of numeric) remainder = (remainder * 10 + parseInt(ch)) % 97;
  return remainder === 1;
}