💻 Coding

Fake IBAN Generator

Generate mathematically valid fake IBAN numbers with correct length and ISO 7064 MOD 97-10 check-digits for software testing, QA, and database seeding.

🛡️
Software Testing Notice: Generated IBAN records and check-digits are synthetically calculated for QA engineering, form validation testing, and database seeding. They do not represent real banking accounts and must never be used in financial transactions.
Generated Fake IBAN (Formatted)
-
Country Code
-
Check Digits
-
Total Length
-
BBAN / Account Number

⚠ Fake, randomly-generated IBAN for testing purposes only, not a real bank account. Do not use for real transactions.

Why Use a Synthetic IBAN for QA Testing?

Quick Answer: The Fake IBAN Generator & Validator is a developer and QA utility that produces mathematically valid test International Bank Account Numbers across 19 countries. Every generated IBAN strictly satisfies the official ISO 7064 MOD 97-10 check-digit algorithm, uses cryptographic randomness (WebCrypto), and supports bulk export (CSV/JSON) and instant real-time validation with zero server uploads.

Every synthetic IBAN generated here has the exact character length specified by its national banking authority and passes the ISO 7064 MOD 97-10 check-digit algorithm. This makes it perfect for developers, QA engineers, and database administrators testing form validations, payment gateway integrations, and mock database seeds without risking real financial data.

How Our Generator Uses the MOD-97 Checksum

A genuinely useful fake IBAN for testing needs to pass the exact same validation logic real banking software applies. If a fake IBAN did not pass real validation logic, you would only test whether your application rejects invalid string formats rather than testing true end-to-end payment workflows. This tool implements the real IBAN check-digit standard (ISO 7064 MOD 97-10) rather than just stringing together random digits.

IBAN validation follows a four-step sequence. First, the two check digits and country code move from the front to the end of the string, with the check digits temporarily replaced by "00". Second, every letter in that rearranged string is converted to a number (A becomes 10, B becomes 11, up to Z as 35), turning the whole string into a single large integer. Third, that number is reduced modulo 97. Fourth, the real check digits are calculated as 98 minus that remainder, zero-padded to two digits. Our generator runs this math to ensure every produced IBAN passes strict validation checks.

Disclaimer: Not Real Bank Accounts

All IBAN numbers and bank records generated on this page are completely synthetic and generated on the fly in your browser. They do not correspond to any genuine banking institution, checking account, savings account, or real individual. These numbers are strictly intended for automated integration tests, manual QA checks, staging database seeds, and educational demonstrations. Using synthetic IBAN data for actual payments, transfers, or unlawful transactions is strictly forbidden.

International Banking Specifications & Length Reference

Country Alpha-2 Total Length BBAN Structure / Format SEPA Zone
United Kingdom GB 22 characters 4-letter Bank Code + 6-digit Sort Code + 8-digit Account Yes
Germany DE 22 characters 8-digit BLZ (Bankleitzahl) + 10-digit Account Number Yes
France FR 27 characters 5-digit Bank + 5-digit Branch + 11-digit Account + 2-digit Key Yes
Netherlands NL 18 characters 4-letter Bank Code + 10-digit Account Number Yes
Spain ES 24 characters 4-digit Bank + 4-digit Branch + 2-digit Control + 10-digit Account Yes
Italy IT 27 characters 1 Control Letter (CIN) + 5-digit ABI + 5-digit CAB + 12-digit Account Yes
Switzerland CH 21 characters 5-digit Bank Code + 12-digit Account Number Yes
Norway NO 15 characters 4-digit Bank + 6-digit Account + 1-digit Mod-11 Check Yes
Poland PL 28 characters 8-digit National Clearing + 16-digit Account Number Yes

Why the modulo math needs BigInt

After converting letters to numbers, the resulting numeric string for a full IBAN can run to 30+ digits, far beyond JavaScript's safe integer range of about 9 quadrillion (2^53 - 1). Using regular JavaScript number division and modulo on a value that large would silently lose precision and produce an incorrect, invalid check digit. BigInt has no such ceiling, it performs exact integer arithmetic no matter how many digits are involved, which is essential here since even a single wrong digit in that calculation would produce an IBAN that fails validation instead of one that correctly passes it.

Why account number structure differs by country

The digits after the check digits, the BBAN (Basic Bank Account Number), aren't randomly formatted the same way for every country, because IBAN is built on top of each country's own pre-existing domestic account numbering scheme. Italy's BBAN structure requires a leading letter (a control character specific to Italian banking) followed by digits, and the Netherlands, UK, and Ireland start with 4-letter bank codes before the account digits, since their bank codes have traditionally been letters rather than numbers. This tool models those country-specific structural quirks rather than generating uniform random digits everywhere, which is part of why generated IBANs vary in total length from 15 characters (Norway) to 28 (Poland) depending on the country selected.

Testing Payment Gateways and Sandbox Environments

Integrating payment service providers such as Stripe, Adyen, Braintree, or PayPal requires extensive automated end-to-end testing across checkout flows, subscription renewals, direct debits (SEPA), and bank transfer payout pipelines. When creating automated test suites, engineering teams must observe several essential practices:

Frequently Asked Questions

Are these generated IBANs real bank accounts?

No, the IBANs generated by this tool are purely synthetic. They are designed with the correct format and check digits for software testing, but they do not belong to any real person or bank.

What is the MOD-97 checksum algorithm?

The MOD-97 algorithm is a mathematical check used in the IBAN standard to validate that the string of characters is formatted correctly before processing a payment.

Why does the fake IBAN need to pass the real checksum algorithm?

If a fake IBAN didn't pass real validation logic, it wouldn't actually test your form validation or payment integration properly, you'd just be confirming your code rejects obviously invalid input. Passing the genuine ISO 7064 MOD 97-10 checksum makes it useful for testing the exact same validation real banking software performs.

Can I generate multiple fake IBANs in bulk?

Yes! Switch to the 'Bulk Generator' tab to generate 5, 10, 25, or 50 fake IBANs at once for any supported country or mixed randomly. You can copy all or download as TXT, CSV, or JSON.

How does the built-in IBAN Validator work?

Switch to the 'Validate IBAN' tab and paste any IBAN. It instantly verifies the country prefix, validates the length, and calculates the ISO 7064 MOD 97-10 checksum to tell you whether the IBAN is mathematically sound.

Why does the check-digit calculation require BigInt?

The numeric string produced by converting an IBAN's letters to digits can exceed 30 digits, far beyond JavaScript's safe integer precision limit of about 9 quadrillion. Regular number arithmetic would silently produce incorrect results at that scale, while BigInt performs exact integer math regardless of length.

Why do IBANs for different countries have different lengths and formats?

IBAN is built on top of each country's own pre-existing domestic bank account numbering scheme, so the BBAN portion reflects that country's specific structure, like Italy's leading control letter or the Netherlands' 4-letter bank code. This is why generated IBAN length varies from 15 to 28 characters depending on the selected country.

Why use crypto.getRandomValues() instead of Math.random() for fake test data?

It's extra rigor beyond what's strictly necessary for disposable test values, but it avoids subtle statistical inconsistencies that Math.random()'s implementation can have across different browsers, ensuring more uniformly distributed random characters at essentially no added cost.

Why is the copied IBAN different from what's displayed on screen?

The displayed IBAN is grouped into 4-character blocks separated by spaces for human readability. You can use 'Copy Clean (No Spaces)' for direct database ingestion or 'Copy Formatted' for mockups.

Is my browser data or validated IBAN transmitted to any external server?

No. All IBAN generation, ISO 7064 MOD 97-10 checksum calculations, and format validations execute entirely within your client browser using local JavaScript, ensuring zero data transmission or logging.