The Swiss IBAN Validator checks whether a Swiss bank account number in IBAN format is structurally correct. It verifies the CH country code, the total 21-character length, the 5-digit IID (Institut-Identifikation) clearing number, the 12-character alphanumeric account number, and the full ISO 7064 MOD-97-10 checksum — all without sending a single character to a server.
Swiss IBANs became mandatory for cross-border SEPA payments and are now the standard format for domestic wire transfers and payment slips (QR-bill) in Switzerland. With Switzerland ranking among the world’s leading financial centres, valid IBAN handling is critical for banks, payroll providers, fintech integrations, and any business accepting CHF payments from Swiss accounts. A quick offline check catches transposition errors and paste mistakes before they reach payment rails.
How it works
A Swiss IBAN has a precisely defined structure laid out in the SWIFT IBAN Registry:
- CH — the ISO 3166-1 alpha-2 country code for Switzerland (always uppercase)
- kk — 2 check digits computed by the ISO 7064 MOD-97-10 algorithm
- bbbbb — the 5-digit IID (Institut-Identifikation), the Swiss Interbank Clearing participant number
- cccccccccccc — the 12-character account number (digits 0-9 and uppercase letters A-Z)
Total: 21 characters.
The checksum calculation follows ISO 13616 / ISO 7064 MOD-97-10 exactly:
- Strip spaces and convert to uppercase.
- Verify the string starts with
CHand is exactly 21 characters. - Confirm positions 5-9 are all digits (the IID) and positions 10-21 are alphanumeric.
- Move the first four characters (
CHplus check digits) to the end of the string. - Replace each letter with its 2-digit numeric code: C = 12, H = 17 (producing
1217forCH). - Interpret the result as an integer and compute the remainder when divided by 97, using progressive folding to avoid overflow.
- The IBAN is valid if and only if the remainder equals 1.
The tool also maps the 5-digit IID to a bank name using a curated lookup table of Swiss Interbank Clearing participants, so you can visually confirm the right institution is encoded.
Worked example
Take the canonical Swiss test IBAN CH56 0483 5012 3456 7800 9:
- Country code:
CH— Switzerland - Check digits:
56 - IID:
04835— PostFinance AG - Account number:
012345678009
To verify the checksum, move CH56 to the end: 048350123456780091256.
Expand letters: C = 12, H = 17, giving the numeric string 04835012345678009121756.
Fold this over mod 97: the remainder is 1, confirming the IBAN is valid.
| Field | Value | Meaning |
|---|---|---|
| Country | CH | Switzerland |
| Check digits | 56 | MOD-97 checksum pair |
| IID | 04835 | PostFinance AG clearing number |
| Account number | 012345678009 | Account at PostFinance |
| Total length | 21 | Matches the SWIFT registry |
Any single-digit change to a valid IBAN almost always produces a remainder other than 1, which is why the checksum catches the vast majority of typos and transpositions.
Every character is processed locally in your browser — nothing is uploaded, logged, or transmitted at any point.