IBAN generator for testing

Generate random IBANs that pass validation, for 36 countries. Use them to test payment forms, SEPA flows and bank account fields without touching a real account.

5 min read
Generate test IBANs36 countries · checksum-valid · nothing leaves your browser
How many

    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:

    1. Move the country code to the endWrite the BBAN, then the country code and 00: 370400440532013000DE00.
    2. Turn letters into numbersA becomes 10, B becomes 11 and so on up to Z = 35. DE becomes 1314.
    3. Divide by 97Take the remainder of that long number divided by 97. Here it is 9.
    4. 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.
    Testing the error path

    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.

    CountryCodeLengthExample
    AndorraAD24AD34 7233 7865 9744 2317 3001
    AustriaAT20AT84 4571 0489 9647 5543
    BelgiumBE16BE25 7333 0574 9282
    BulgariaBG22BG48 CAGD 9970 2952 2906 49
    CroatiaHR21HR79 8260 2358 0927 4337 5
    CyprusCY28CY98 2800 1045 6840 0267 0425 7344
    Czech RepublicCZ24CZ07 6197 8924 2687 0000 5782
    DenmarkDK18DK29 5903 6732 5872 55
    EstoniaEE20EE11 8053 3134 5902 4489
    FinlandFI18FI84 2570 3061 5498 20
    FranceFR27FR76 4341 2982 8507 4612 7403 794
    GermanyDE22DE50 8605 6192 4708 1533 87
    GreeceGR27GR88 4893 2754 4210 8221 3112 122
    HungaryHU28HU64 8823 6166 4316 7241 7045 8736
    IcelandIS26IS81 2775 6444 5328 1041 4841 46
    IrelandIE22IE17 MTRX 4984 5204 4709 83
    ItalyIT27IT28 L200 2674 6668 9268 6062 458
    LatviaLV21LV78 OBQV 4785 6088 0612 4
    LiechtensteinLI21LI12 1942 4406 2695 5768 3
    LithuaniaLT20LT56 5870 4396 9017 3132
    LuxembourgLU20LU33 7713 8913 2711 5642
    MaltaMT31MT26 RAFU 2781 9374 5717 7209 3945 787
    MonacoMC27MC58 7069 5588 5540 3978 3235 957
    NetherlandsNL18NL32 SZXF 5484 1237 78
    NorwayNO15NO18 3695 6085 297
    PolandPL28PL31 4911 6952 4856 6650 9533 4156
    PortugalPT25PT50 0545 1298 5821 1611 5332 0
    RomaniaRO24RO30 FBYX 6056 8046 5495 7218
    San MarinoSM27SM92 X316 9169 2717 2333 5677 370
    SlovakiaSK24SK39 5253 6777 2771 9694 8128
    SloveniaSI19SI62 5809 5075 9422 597
    SpainES24ES08 4337 7254 1619 6618 9357
    SwedenSE24SE17 2698 9862 0905 1848 4296
    SwitzerlandCH21CH33 7822 3483 3330 1556 2
    TurkeyTR26TR18 5024 0095 9384 7590 9713 36
    United KingdomGB22GB90 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.

    A sign-up form filled by Form Filler with German test data, including an IBAN and a tax ID
    A sign-up form after one press of Alt+Shift+F, with German data.

    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.

    © 2026 extensionshub.net