IBAN Validator
Check whether an IBAN is valid — check digit, country length, structure — and
read its bank and branch codes, right in the browser. The first thing a bank
verifies on a pain.001.
Local check-digit validation (ISO 7064 MOD 97-10). Input starting with RF is treated as an ISO 11649 creditor reference.
How it works
An IBAN (International Bank Account Number, ISO 13616) is a 2-letter country code, 2 check digits, then the country-specific BBAN (fixed length). The validator:
- normalises the input (uppercase, strip spaces);
-
checks the
AA00…prefix and that the length matches the one published for the country in the ISO 13616 registry; - recomputes the MOD 97-10 check digit;
- extracts the bank and branch codes from the BBAN where the structure is known.
Input starting with RF is treated as an
ISO 11649 creditor reference (RF + 2 check digits +
reference), validated by the same MOD 97-10 — the format carried in a SEPA
transfer's RemittanceInformation/Structured field.
The MOD 97-10 algorithm
The ISO 7064 MOD 97-10 check is elegant: move the first 4 characters to the
end, replace each letter with its numeric value (A=10, B=11…Z=35), and the
resulting giant integer must equal 1 modulo 97. It's computed
digit by digit to avoid big numbers. The odds of a typo slipping through are
below 1 in 97.
Privacy
Limits
Related documentation
- ISO 20022 — the payment messages (pain, pacs, camt) that carry the IBAN.
- SWIFT MT — the MT world (MT103) the MX migration comes from.
- SWIFT MT Parser — the tool for the MT messages themselves.