WebToolsPlanet
generator Tools

Fake IBAN Generator

Generate syntactically valid test IBANs for 30+ countries — correct checksum, wrong real account.

Last updated: March 25, 2026

Client-Side Processing
Input Data Stays on Device
Instant Local Execution

Find this tool useful? Support the project to keep it free!

Buy me a coffee

What is Fake IBAN Generator?

IBAN (International Bank Account Number) is an internationally agreed standard for identifying bank accounts across national borders, defined in ISO 13616. An IBAN consists of a 2-letter ISO country code (DE for Germany, GB for United Kingdom, FR for France), a 2-digit check number, and a country-specific BBAN (Basic Bank Account Number) of varying length and format. The check digits are computed using a specific mod-97 algorithm, making IBANs self-validating — software can verify structural validity without connecting to a bank.

When building and testing fintech applications, payment forms, SEPA transfer systems, or banking integrations, developers need syntactically valid IBANs that pass mod-97 checksum validation but do not correspond to real bank accounts. Using real IBANs in testing creates privacy and compliance risks. This tool generates structurally correct fake IBANs for 30+ countries, verified to pass mod-97 checksum validation — they will successfully validate in any IBAN-validating form field, but are not linked to any real account.

How to Use Fake IBAN Generator

1

Select a country from the dropdown (Germany, United Kingdom, France, Spain, Netherlands, etc.)

2

Click "Generate IBAN" to produce a valid fake IBAN for that country

3

The IBAN is displayed in both the standard spaced format (GB29 NWBK 6016 1331 9268 19) and the compact (no spaces) format

4

Click "Copy" to copy the formatted or compact version for use in your test suite

5

Click "Generate Multiple" to batch-generate 5, 10, or 20 test IBANs for seeding a database

Common Use Cases

  • Testing a SEPA bank transfer form that requires a valid DE/FR/NL IBAN before submission
  • Populating a QA database with diverse country IBANs for testing internationalization of a payment system
  • Writing automated Cypress or Playwright tests for a bank details input form
  • Testing IBAN validation logic in a backend service accepts the correct format for each country
  • Creating realistic-looking test data for a fintech product demo without using real customer data
  • Testing that an input field correctly formats and spaces an IBAN as the user types
  • Generating IBANs for different countries to test country-specific bank code prefix validation
  • Testing error states by intentionally providing malformed IBANs to verify rejection logic

Example Input and Output

Sample generated test IBANs for common European countries:

Country selected
Germany (DE)
United Kingdom (GB)
France (FR)
Netherlands (NL)
Spain (ES)
Generated fake IBAN (formatted + compact)
DE → DE89 3704 0044 0532 0130 00  |  DE89370400440532013000
GB → GB29 NWBK 6016 1331 9268 19  |  GB29NWBK60161331926819
FR → FR76 3000 6000 0112 3456 7890 189  |  FR7630006000011234567890189
NL → NL91 ABNA 0417 1643 00  |  NL91ABNA0417164300
ES → ES91 2100 0418 4502 0005 1332  |  ES9121000418450200051332

Client-Side Processing

All IBAN generation and mod-97 checksum calculation runs locally in your browser. No country, account data, or generated IBANs are sent to our servers.

Never Use in Production

Generated IBANs are strictly for testing environments. Never use them in production code, demo emails, or customer-facing systems. A real user attempting a bank transfer with a fake IBAN will receive a bank rejection error. Clearly document in your test fixtures that these values are test-only (e.g., TEST_DE_IBAN = "DE89...").

SEPA vs SWIFT

For SEPA payments (between EU/EEA countries), only the IBAN is needed. For international wire transfers outside SEPA (USA, UK post-Brexit for some cases, Asia), both IBAN and SWIFT/BIC are required. When testing international payment flows, generate country-appropriate IBANs matching the expected payment corridor of your test scenario.

Frequently Asked Questions

Will these IBANs pass validation in payment forms?
For structural validation: yes — they correctly pass the ISO 13616 mod-97 checksum algorithm. For bank-level validation: no — real bank routing systems will reject them as the account numbers don't correspond to real accounts. This is exactly what you want for testing: your validation logic passes, while no actual transaction is possible.
What is the IBAN mod-97 checksum algorithm?
The check digits (positions 3-4 of the IBAN) are calculated by: moving the first 4 characters to the end of the IBAN string, replacing each letter with its numeric equivalent (A=10, B=11, ..., Z=35), interpreting the entire string as an integer, and computing the remainder when divided by 97. A valid IBAN always produces a remainder of 1. This is why the check digits are computed last and embedded at positions 3-4.
What is the difference between IBAN and SWIFT/BIC?
IBAN identifies the individual bank account. SWIFT/BIC (Bank Identifier Code) identifies the bank institution itself (e.g., DEUTDEDB for Deutsche Bank). International wire transfers need both: IBAN to identify the account, and BIC to route the transfer to the correct bank. For SEPA transfers within the EU, BIC is no longer required since 2016 as it can be derived from the IBAN.
How many characters is an IBAN?
IBANs vary in length by country. The BBAN portion (the country-specific account number) has different fixed lengths per country. Germany (DE): 22 characters. UK (GB): 22 characters. France (FR): 27 characters. Netherlands (NL): 18 characters. The maximum length is 34 characters. All characters are alphanumeric (A-Z, 0-9); no special characters.
Can I use this tool to validate an existing IBAN?
This tool generates fake IBANs. For IBAN validation, you need to: (1) Check country code and length against the country table, (2) Rearrange the IBAN string, (3) Convert letters to numbers, (4) Compute mod 97 — the result should be 1. Most banking libraries (iban.js for JavaScript, python-stdnum for Python) include a validate() function. Our tool's generated IBANs will always pass this check.
Are fake IBANs safe to use in automated tests?
Yes, and they are the recommended approach for testing payment flows. Using real customer IBANs in tests creates significant privacy and regulatory compliance risks (GDPR, PSD2). Fake but structurally valid IBANs allow you to test form validation, backend processing, and data formatting with zero compliance risk. Mark them clearly in your fixtures as "FOR TESTING ONLY".

How This Tool Works

For each country, the IBAN is constructed by combining the ISO country code with a randomly generated BBAN of the correct length and format for that country (numeric digits for most, alphanumeric for UK-style BBANs). The check digits are then computed using the ISO 13616 mod-97 algorithm: the BBAN and country code are rearranged, letters are replaced with two-digit numbers (A=10...Z=35), and the check digits that result in a mod-97 remainder of 1 are inserted at positions 3-4. The final IBAN is formatted with standard 4-char spaces for display.

Technical Stack

Browser-native JavaScriptISO 13616 mod-97 algorithmCountry-specific BBAN formatsClient-side only