Validate, break down and build an IBAN from a bank code
This IBAN calculator lets you check whether an IBAN is valid, split it into its parts such as country code, check digits, bank code and account number, or generate an IBAN from a bank code and account number. Validation is based on the international MOD-97 algorithm (ISO 7064).
An IBAN Checker is a small but powerful tool that validates, decodes and — for a handful of countries — builds an International Bank Account Number (IBAN) directly from a bank code and account number. IBANs are the standardised format used across Europe and beyond to identify bank accounts for cross-border and domestic transfers. A single mistyped digit can send money to the wrong account, delay a payment for days, or trigger costly correction fees. Rather than guessing whether an IBAN "looks right," this calculator applies the exact mathematical rule banks themselves use, giving you an instant, reliable answer before you submit a payment, an invoice, or a direct debit mandate.
Crucially, everything happens locally in your browser. No account number, bank code or IBAN you type is ever sent to a server, stored in a database, or shared with any third party. This is not a marketing claim — it's how the tool is built: the modulo-97 arithmetic runs entirely in JavaScript on your device. That local-only design is the decisive trust argument for anyone handling sensitive banking data, whether you're an accountant checking a supplier's details, a freelancer verifying a client's payment info, or a developer testing an integration.
Every valid IBAN satisfies one elegant mathematical check based on the MOD 97-10 algorithm defined in ISO 7064 and applied to IBANs under ISO 13616. The calculator supports two modes:
For countries whose Basic Bank Account Number (BBAN) is simply the bank code followed by the account number — with no embedded national check digit — the calculator can generate the IBAN for you. It pads both fields to the correct width for that country, appends the country code plus the placeholder "00" as check digits, runs the same MOD 97-10 calculation, and computes the real check digits as 98 minus the remainder. This build mode works reliably for Germany (DE), Austria (AT), Switzerland (CH), the Netherlands (NL), Poland (PL), Luxembourg (LU) and Liechtenstein (LI).
Countries such as Italy (IT), France (FR), Spain (ES) and Belgium (BE) embed their own national control character inside the BBAN — Italy's CIN, France's RIB key, Belgium's national check digit. Because that internal digit depends on national rules the calculator doesn't replicate, these countries are validate-only: you can check an existing IBAN from these countries, but the tool won't attempt to construct one from scratch.
Example 1 — Validating a German IBAN: You receive an invoice listing "DE89370400440532013000" with no spaces. Paste it into the checker; it normalises to the standard grouped format DE89 3704 0044 0532 0130 00, runs the MOD 97 test, and confirms the remainder equals 1 — the IBAN is structurally valid.
Example 2 — Building a Dutch IBAN: A supplier gives you their bank code "ABNA" and account number "0417164300" but no IBAN. Select Netherlands, enter the two fields, and the calculator constructs NL91 ABNA 0417 1643 00, ready to use for a SEPA transfer.
Example 3 — Catching a typo: Someone sends you "FR14 2004 1010 0505 0001 3M02 607" (the last digit changed from 6 to 7). The checker flags it instantly as invalid because the modulo result isn't 1, prompting you to double-check the source before you pay.
| Country | Code | IBAN Length | Example |
|---|---|---|---|
| Germany | DE | 22 | DE89 3704 0044 0532 0130 00 |
| Austria | AT | 20 | AT61 1904 3002 3457 3201 |
| Switzerland | CH | 21 | CH93 0076 2011 6238 5295 7 |
| Italy | IT | 27 | IT60 X054 2811 1010 0000 0123 456 |
| France | FR | 27 | FR14 2004 1010 0505 0001 3M02 606 |
| Spain | ES | 24 | ES91 2100 0418 4502 0005 1332 |
| Netherlands | NL | 18 | NL91 ABNA 0417 1643 00 |
| Poland | PL | 28 | PL61 1090 1014 0000 0712 1981 2874 |
| Portugal | PT | 25 | PT50 0002 0123 1234 5678 9015 4 |
| Turkey | TR | 26 | TR33 0006 1005 1978 6457 8413 26 |
No, and this is a critical distinction. A correct MOD 97-10 result only proves the IBAN is mathematically well-formed — the characters follow the algorithm's rules. It says nothing about whether the account is open, active, or belongs to the person or company you think you're paying. Fraudsters exploit exactly this gap: they craft IBANs that are structurally valid but redirect funds to a different account, relying on victims trusting a "valid" result as proof of legitimacy. Always confirm the account holder's name independently before large or first-time payments.
Some countries — Italy, France, Spain, Belgium among them — embed a national check character inside the BBAN itself (Italy's CIN, France's RIB key, Belgium's own control digit). Generating a correct IBAN for these countries requires replicating each nation's separate, non-standardised check-digit algorithm, which goes beyond the universal MOD 97-10 rule. For these countries the calculator supports validation only, using an existing IBAN you already have.
Yes. The entire calculation — normalisation, character conversion, and modulo arithmetic — executes locally in your browser using JavaScript. Nothing you type is transmitted to any server, logged, or stored anywhere. This local-only architecture is precisely why the tool is suitable for handling sensitive banking details: your data never leaves your own device.