# Is this IBAN valid?

Checks an IBAN: the country code, the length for that country, and the two MOD 97 check digits. Or works out the check digits and the full IBAN from a country code and a domestic account number.

- Page: https://www.acalculator.org/finance/iban-calculator
- JSON spec: https://www.acalculator.org/finance/iban-calculator.json
- Version: b9704e5567c5

## Default answer

Example with the default inputs (I want to Check an IBAN, IBAN GB82 WEST 1234 5698 7654 32): Valid.

## Inputs

| Key | Label | Description |
| --- | --- | --- |
| do | I want to | Check a full IBAN, or make the check digits from a country code and a domestic account number. |
| iban | IBAN | The full IBAN: two letters, two check digits, then the domestic account number. Spaces are ignored. |
| cc | Country code | The two-letter ISO country code, such as DE or GB. |
| bban | Domestic account number (BBAN) | The bank and account part of the IBAN, as the bank gives it (for the UK: bank code, sort code, account number). |

## Outputs

| Key | Label | Description |
| --- | --- | --- |
| result | Answer | Whether the IBAN is valid and why not, or the IBAN made with its check digits. |
| valid | Valid | Yes when the country, length and check digits all pass. |
| checkDigits | Right check digits | The two check digits this country code and account number need: 98 − (BBAN + country + 00) mod 97. |
| printed | Print form | The IBAN in groups of four characters. |
| electronic | Electronic form | The IBAN with no spaces, in capitals. |
| length | Length for this country | How many characters an IBAN from this country has. |

## Method

Check: the country code must use IBANs and the length must match the country; move the first four characters to the end, turn letters into numbers (A = 10 … Z = 35), and the whole number mod 97 must be 1. Make: check digits = 98 − (BBAN + country code + 00, letters as numbers) mod 97.

## Assumptions

- The page checks the country, the length and the check digits. It does not check each country’s own account format or whether the account exists.
- Everything runs in your browser. The IBAN is not sent anywhere, but it is in the page link, so share links with care.

## Worked examples

1. do = check, iban = GB82 WEST 1234 5698 7654 32 gives result = Valid, valid = Yes, checkDigits = 82, length = 22, electronic = GB82WEST12345698765432. Source: Wikipedia, "International Bank Account Number" (validation and check digit generation; example GB82 WEST 1234 5698 7654 32), https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05).
2. do = check, iban = ie64ircE92050112345678 gives result = Valid, printed = IE64 IRCE 9205 0112 3456 78. Source: Wikipedia, "International Bank Account Number" (validation and check digit generation; example GB82 WEST 1234 5698 7654 32), https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05) (example IE64 IRCE 9205 0112 3456 78).
3. do = check, iban = GB82WEST12345698765433 gives result = Not valid: the check digits should be 55, valid = No, checkDigits = 55. Source: Wikipedia, "International Bank Account Number" (validation and check digit generation; example GB82 WEST 1234 5698 7654 32), https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05) (generation: 98 − remainder).
4. do = make, cc = GB, bban = WEST12345698765432 gives result = GB82 WEST 1234 5698 7654 32, checkDigits = 82. Source: Wikipedia, "International Bank Account Number" (validation and check digit generation; example GB82 WEST 1234 5698 7654 32), https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05).
5. do = check, iban = GB82WEST1234569876543 gives result = Not valid: a GB IBAN has 22 characters, this one has 21, valid = No. Source: Wikipedia, "International Bank Account Number" (validation and check digit generation; example GB82 WEST 1234 5698 7654 32), https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05) (United Kingdom: 22 characters).

## FAQ

### How do I check if an IBAN is valid?

Check that the country uses IBANs and that the IBAN has that country’s length (22 characters for the UK and Germany). Then move the first four characters to the end, turn each letter into a number (A = 10 up to Z = 35), and divide the whole number by 97. A valid IBAN leaves a remainder of 1, and its check digits are from 02 to 98.

### How are the IBAN check digits worked out?

Write the domestic account number, then the country code, then 00. Turn letters into numbers (A = 10 … Z = 35), take the remainder of that number divided by 97, and subtract it from 98. Write the result as two digits: they go after the country code.

### Does a valid IBAN mean the account exists?

No. The check digits only catch typing mistakes, such as one wrong digit or two digits swapped. An IBAN can pass every check and still not belong to any account. Confirm payment details with the person or the bank.

### What does an IBAN look like?

Two letters for the country, two check digits, and then the domestic account number (the BBAN), up to 34 characters in all. On paper it is written in groups of four, such as GB82 WEST 1234 5698 7654 32; in electronic form it has no spaces.

### Why does the length matter?

Each country fixes the length of its IBANs: 15 characters for Norway, 22 for Germany and the UK, 27 for France and Italy. A missing or extra character is caught by the length check before the check digits are tried.

### Is my IBAN sent anywhere?

No. The page works it out in your browser. The IBAN is in the page’s link so that you can share an answer, so take care with whom you share that link.

## Sources

- ISO 13616 and ISO 7064 MOD 97-10 as written out in Wikipedia, "International Bank Account Number": the country lengths table, validation, check digit generation, and the examples GB82 WEST 1234 5698 7654 32 and IE64 IRCE 9205 0112 3456 78. https://en.wikipedia.org/wiki/International_Bank_Account_Number (retrieved 2026-10-05)
- SWIFT, IBAN registry (the source of the country lengths). https://www.swift.com/standards/data-standards/iban-international-bank-account-number (retrieved 2026-10-05)
