Random IBAN Generator
Generate valid random IBAN numbers with correct Mod-97 check digits for 80+ countries. Batch generation, copy, and export support.
About
Incorrect or malformed IBANs in test environments cause silent failures in payment processing pipelines, failed API integrations, and hours of debugging. This generator constructs IBANs that conform to the ISO 13616 standard. Each output carries a valid check digit pair computed via the Modulo 97 algorithm (ISO 7064). The tool covers 80+ country formats with correct BBAN lengths, realistic bank code prefixes, and proper alphanumeric structure. These are syntactically valid IBANs intended for software testing, UI mockups, and data seeding. They do not correspond to real bank accounts. Note: some countries enforce additional national check digits (France uses RIB key, Spain uses two control digits) which this tool approximates but cannot guarantee against live banking infrastructure.
Formulas
Every IBAN is assembled from three components: a 2-letter ISO 3166 country code, a 2-digit check number, and the country-specific Basic Bank Account Number (BBAN). The check digits are computed using the Modulo 97 algorithm defined in ISO 7064.
Where CC is the country code, CD is the check digit pair, and BBAN is the domestic account structure. The check digit computation proceeds as follows:
Each letter in S is converted to its numeric value: A = 10, B = 11, โฆ Z = 35. The resulting numeric string N is then used:
Since N can exceed 30 digits, direct integer computation overflows. The tool uses iterative chunked modulo: process 9 digits at a time, carry the remainder forward. This is mathematically equivalent to full-precision modular arithmetic.
A valid IBAN satisfies: moving the first 4 characters to the end, converting all letters to digits, and computing mod 97 yields exactly 1.
Reference Data
| Country | Code | IBAN Length | BBAN Format | Example IBAN |
|---|---|---|---|---|
| Germany | DE | 22 | 8n + 10n | DE89 3704 0044 0532 0130 00 |
| United Kingdom | GB | 22 | 4a + 6n + 8n | GB29 NWBK 6016 1331 9268 19 |
| France | FR | 27 | 5n + 5n + 11c + 2n | FR76 3000 6000 0112 3456 7890 189 |
| Spain | ES | 24 | 4n + 4n + 2n + 10n | ES91 2100 0418 4502 0005 1332 |
| Italy | IT | 27 | 1a + 5n + 5n + 12c | IT60 X054 2811 1010 0000 0123 456 |
| Netherlands | NL | 18 | 4a + 10n | NL91 ABNA 0417 1643 00 |
| Belgium | BE | 16 | 3n + 7n + 2n | BE68 5390 0754 7034 |
| Switzerland | CH | 21 | 5n + 12c | CH93 0076 2011 6238 5295 7 |
| Austria | AT | 20 | 5n + 11n | AT61 1904 3002 3457 3201 |
| Poland | PL | 28 | 8n + 16n | PL61 1090 1014 0000 0712 1981 2874 |
| Portugal | PT | 25 | 4n + 4n + 11n + 2n | PT50 0002 0123 1234 5678 9015 4 |
| Sweden | SE | 24 | 3n + 16n + 1n | SE45 5000 0000 0583 9825 7466 |
| Norway | NO | 15 | 4n + 6n + 1n | NO93 8601 1117 947 |
| Denmark | DK | 18 | 4n + 9n + 1n | DK50 0040 0440 1162 43 |
| Finland | FI | 18 | 3n + 11n | FI21 1234 5600 0007 85 |
| Ireland | IE | 22 | 4a + 6n + 8n | IE29 AIBK 9311 5212 3456 78 |
| Luxembourg | LU | 20 | 3n + 13c | LU28 0019 4006 4475 0000 |
| Czech Republic | CZ | 24 | 4n + 6n + 10n | CZ65 0800 0000 1920 0014 5399 |
| Romania | RO | 24 | 4a + 16c | RO49 AAAA 1B31 0075 9384 0000 |
| Greece | GR | 27 | 3n + 4n + 16c | GR16 0110 1250 0000 0001 2300 695 |
| Hungary | HU | 28 | 3n + 4n + 1n + 15n + 1n | HU42 1177 3016 1111 1018 0000 0000 |
| Croatia | HR | 21 | 7n + 10n | HR12 1001 0051 8630 0016 0 |
| Bulgaria | BG | 22 | 4a + 4n + 2n + 8c | BG80 BNBG 9661 1020 3456 78 |
| Slovakia | SK | 24 | 4n + 6n + 10n | SK31 1200 0000 1987 4263 7541 |
| Slovenia | SI | 19 | 5n + 8n + 2n | SI56 2633 0001 2039 086 |
| Lithuania | LT | 20 | 5n + 11n | LT12 1000 0111 0100 1000 |
| Latvia | LV | 21 | 4a + 13c | LV80 BANK 0000 4351 9500 1 |
| Estonia | EE | 20 | 2n + 2n + 11n + 1n | EE38 2200 2210 2014 5685 |
| Cyprus | CY | 28 | 3n + 5n + 16c | CY17 0020 0128 0000 0012 0052 7600 |
| Malta | MT | 31 | 4a + 5n + 18c | MT84 MALT 0110 0001 2345 MTLC AST0 01S |