The generator needs JavaScript. The table below has an example for every country.
Every IBAN above is built from the official format of its country and carries correct check digits, so it goes through the same validation as a real one. The bank code and the account number are random, which means none of them belongs to a real account. Pick another country or amount and you get a new list straight away.
What an IBAN is made of
An IBAN (International Bank Account Number) always has three parts. Take the German example IBAN DE89 3704 0044 0532 0130 00:
- Country code, two letters:
DE. - Check digits, two numbers calculated from everything else:
89. - BBAN, the national account number. In Germany it is an 8-digit bank code (
37040044) followed by a 10-digit account number (0532013000).
The length and layout of the BBAN are fixed per country: 22 characters in Germany and the United Kingdom, 24 in Spain, 27 in France and Italy, 18 in the Netherlands. Some countries use letters, like the four-letter bank code of a British IBAN (GB29 NWBK …). The generator follows each layout, so a UK IBAN gets letters where a UK validator expects them.
How the check digits work
The two check digits catch almost any typo. They come from the mod 97 algorithm of ISO 13616:
- Move the country code to the endWrite the BBAN, then the country code and
00:370400440532013000DE00. - Turn letters into numbersA becomes 10, B becomes 11 and so on up to Z = 35.
DEbecomes1314. - Divide by 97Take the remainder of that long number divided by 97. Here it is 9.
- Subtract from 9898 − 9 = 89, padded to two digits. Those are the check digits.
Validating is the same in reverse: move the first four characters to the end, convert the letters and check that the remainder of dividing by 97 is exactly 1.
function isValidIban(iban) {
const s = iban.replace(/\s+/g, '').toUpperCase();
const moved = s.slice(4) + s.slice(0, 4);
const digits = moved.replace(/[A-Z]/g, c => c.charCodeAt(0) - 55);
let rest = 0;
for (const d of digits) rest = (rest * 10 + +d) % 97;
return rest === 1; // also check the length for the country
}
National check digits
Several countries add their own check digits inside the BBAN, and strict validators test them as well. The generator calculates them for:
- Spain: the two dígitos de control after the bank and branch codes.
- France and Monaco: the two-digit clé RIB at the end.
- Italy and San Marino: the CIN letter at the start of the BBAN.
- Portugal: the two NIB check digits at the end.
- Belgium: the last two digits, the remainder of the first ten divided by 97.
- Norway: the final mod 11 digit.
To check that your form rejects bad input, change one digit of a generated IBAN. The mod 97 check catches every single-digit change, so your validator should now refuse it.
IBAN formats by country
The length and one generated example for each country the tool supports. None of the examples is a real account.
| Country | Code | Length | Example |
|---|---|---|---|
| Andorra | AD | 24 | AD34 7233 7865 9744 2317 3001 |
| Austria | AT | 20 | AT84 4571 0489 9647 5543 |
| Belgium | BE | 16 | BE25 7333 0574 9282 |
| Bulgaria | BG | 22 | BG48 CAGD 9970 2952 2906 49 |
| Croatia | HR | 21 | HR79 8260 2358 0927 4337 5 |
| Cyprus | CY | 28 | CY98 2800 1045 6840 0267 0425 7344 |
| Czech Republic | CZ | 24 | CZ07 6197 8924 2687 0000 5782 |
| Denmark | DK | 18 | DK29 5903 6732 5872 55 |
| Estonia | EE | 20 | EE11 8053 3134 5902 4489 |
| Finland | FI | 18 | FI84 2570 3061 5498 20 |
| France | FR | 27 | FR76 4341 2982 8507 4612 7403 794 |
| Germany | DE | 22 | DE50 8605 6192 4708 1533 87 |
| Greece | GR | 27 | GR88 4893 2754 4210 8221 3112 122 |
| Hungary | HU | 28 | HU64 8823 6166 4316 7241 7045 8736 |
| Iceland | IS | 26 | IS81 2775 6444 5328 1041 4841 46 |
| Ireland | IE | 22 | IE17 MTRX 4984 5204 4709 83 |
| Italy | IT | 27 | IT28 L200 2674 6668 9268 6062 458 |
| Latvia | LV | 21 | LV78 OBQV 4785 6088 0612 4 |
| Liechtenstein | LI | 21 | LI12 1942 4406 2695 5768 3 |
| Lithuania | LT | 20 | LT56 5870 4396 9017 3132 |
| Luxembourg | LU | 20 | LU33 7713 8913 2711 5642 |
| Malta | MT | 31 | MT26 RAFU 2781 9374 5717 7209 3945 787 |
| Monaco | MC | 27 | MC58 7069 5588 5540 3978 3235 957 |
| Netherlands | NL | 18 | NL32 SZXF 5484 1237 78 |
| Norway | NO | 15 | NO18 3695 6085 297 |
| Poland | PL | 28 | PL31 4911 6952 4856 6650 9533 4156 |
| Portugal | PT | 25 | PT50 0545 1298 5821 1611 5332 0 |
| Romania | RO | 24 | RO30 FBYX 6056 8046 5495 7218 |
| San Marino | SM | 27 | SM92 X316 9169 2717 2333 5677 370 |
| Slovakia | SK | 24 | SK39 5253 6777 2771 9694 8128 |
| Slovenia | SI | 19 | SI62 5809 5075 9422 597 |
| Spain | ES | 24 | ES08 4337 7254 1619 6618 9357 |
| Sweden | SE | 24 | SE17 2698 9862 0905 1848 4296 |
| Switzerland | CH | 21 | CH33 7822 3483 3330 1556 2 |
| Turkey | TR | 26 | TR18 5024 0095 9384 7590 9713 36 |
| United Kingdom | GB | 22 | GB90 YMEN 5488 9359 3314 47 |
Fill IBAN fields automatically
Copying an IBAN is fine once. When you test a sign-up or checkout form many times a day, the rest of the form needs data too: names, email, phone, address, tax ID. Form Filler is a Chrome extension that fills the whole form in one click, with data for the country you choose.

The free version fills IBAN fields with the right country prefix and length. Pro makes them checksum-valid and also generates valid national IDs such as the Spanish NIF, the German Steuer-ID or the Italian Codice Fiscale. The guide on how to autofill forms in Chrome covers the setup, and how to generate test data for web forms compares it with Faker and other options.
Frequently asked questions
Are these real bank accounts?
No. The bank code and the account number are random, so a generated IBAN does not belong to any real bank or person. It only has the right format and check digits.
Will a generated IBAN pass validation?
It passes the checks that most forms and libraries run: country code, length, character types and the mod 97 check digits. For Spain, France, Italy, Portugal, Belgium, Norway, Monaco and San Marino the national check digits inside the account number are valid too. A validator that looks up the bank code in a bank directory will not find it, because the bank code is random.
Can I send or receive money with a generated IBAN?
No. Use them only in development and test environments. A payment to a random IBAN is rejected by the bank, and using a made-up IBAN to mislead someone is fraud.
Is anything sent to a server?
No. The IBANs are generated by JavaScript in your browser. Nothing you generate leaves the page.
How do I fill IBAN fields in a form automatically?
Install the Form Filler extension for Chrome. With Pro it fills IBAN fields with a checksum-valid IBAN for the data country you choose, together with the rest of the form.

