A fake IBAN generator builds International Bank Account Numbers that are structurally correct and carry valid MOD-97 check digits, so they pass format validation in payment SDKs and sandbox environments. The bank and account digits are random, meaning the IBAN belongs to no real account and can never move money.
How it works
The generator follows the ISO 13616 IBAN standard for each country:
- The country code (two letters) and the registered total length are fixed per country.
- A BBAN (the country-specific bank and account part) is filled with random digits to the correct length.
- The check digits are computed: take
BBAN + countryCode + "00", replace each letter with two digits (A=10 … Z=35), read the result as one large integer, compute it modulo 97, and set the check digits to98 - (mod result). - The final IBAN is
countryCode + checkDigits + BBAN. Validating it (moving the first four characters to the end and taking mod 97) always yields 1.
Country lengths at a glance
| Country | Code | Length | Example structure |
|---|---|---|---|
| Germany | DE | 22 | DE + 2 check + 18 BBAN |
| France | FR | 27 | FR + 2 check + 23 BBAN |
| United Kingdom | GB | 22 | GB + 2 check + 18 BBAN |
| Spain | ES | 24 | ES + 2 check + 20 BBAN |
| Netherlands | NL | 18 | NL + 2 check + 14 BBAN |
These lengths are registered with SWIFT and standardised under ISO 13616. Using the wrong length is one of the most common mistakes when writing manual IBAN test fixtures.
Worked example
For a German IBAN (DE, 22 characters total), the tool generates an 18-digit BBAN such as 500105170648489890. It then:
- Appends the country code and placeholder check digits:
500105170648489890DE00 - Converts letters to digits: D=13, E=14, giving
500105170648489890131400 - Computes
500105170648489890131400 mod 97 = 37 - Sets the check digits to
98 - 37 = 61 - Returns
DE61500105170648489890
Paste that into any IBAN validator and it reports a valid checksum, because the same mod-97 step on the rearranged full string yields exactly 1.
What IBAN validation actually checks
Most client-side and API validators run two steps: first, confirm the total length matches the registered length for the country code; second, run the MOD-97 algorithm and verify the result is 1. These generated IBANs pass both. They will not pass a third type of check — real-time bank-account existence queries — because no account was ever opened with the generated BBAN. Use these IBANs for format-validation, storage, display, and payment-flow UI tests; use your sandbox account’s own IBAN for end-to-end payment submission tests.
Tips and notes
These are test fixtures only. Use them to verify formatting, storage, and validation paths — never to initiate a real transfer, which would fail at the bank. Generate a batch across several countries to check that your payment form handles different total lengths and localization patterns such as grouping spaces.