IBAN Generator - Generate Fictional Dutch IBAN Numbers with Modulo 97

Generate valid fictional Dutch IBAN numbers that comply with the modulo 97 algorithm. Select your bank, generate in bulk and export to Excel, CSV or JSON. Ideal for testing payment functionality.

Note:All generated data is entirely fictional and not suitable for use as real personal information.

Count:

Example Dutch IBAN numbers (click to copy)

Five valid fictional Dutch IBAN numbers passing mod-97 validation (ISO 7064). Click an IBAN to copy it. Not linked to real bank accounts — for testing only.

  • NL91ABNA0417164300ABN AMRO
  • NL69INGB0123456789ING Bank
  • NL44RABO0123456789Rabobank
  • NL88BUNQ2025123456bunq
  • NL61KNAB0258123456Knab

Need more IBANs? Use the generator above for 1 to 10,000 unique valid IBANs across all major Dutch banks.

How does IBAN validation work?

A Dutch IBAN (International Bank Account Number) consists of exactly 18 characters and follows a fixed format: the country code NL, followed by 2 check digits, a 4-letter bank code and a 10-digit account number. The full format is: NLcc BBBB 0000 0000 00.

The mod-97 algorithm

The check digits in an IBAN are calculated using the mod-97 algorithm (ISO 7064). This works in the following steps:

  1. Move the first 4 characters (country code + check digits) to the end of the IBAN.
  2. Replace each letter with a number: A=10, B=11, ..., Z=35. The country code NL becomes 23 and 21.
  3. The resulting number is divided by 97. The remainder (modulo) must equal 1.
  4. When generating, the check digits are chosen so that 98 minus the modulo-97 remainder yields exactly the correct value.

Supported bank codes

This IBAN generator supports the main Dutch bank codes:

  • ABNA — ABN AMRO Bank
  • INGB — ING Bank
  • RABO — Rabobank
  • SNSB — SNS Bank
  • ASNB — ASN Bank
  • KNAB — Knab
  • TRIO — Triodos Bank
  • BUNQ — bunq

Example: For IBAN NL91 ABNA 0417 1643 00, the check digits 91 are calculated via the mod-97 algorithm. The full number (after rearrangement and letter replacement) divided by 97 yields remainder 1, confirming the IBAN is valid.

All IBAN numbers generated by this tool are fictional and not linked to real bank accounts. Use them for testing form validation, API integrations or complete test datasets. Combine them with a fictional BSN number for realistic test data.

Example IBAN Numbers

The table below lists fictional Dutch IBAN numbers that pass mod-97 validation. These are structurally correct test IBANs — they are not linked to any real bank account and cannot be used for actual transactions.

IBANBankMod-97
NL91 ABNA 0417 1643 00ABN AMRO
NL20 INGB 0001 2345 67ING
NL64 RABO 0315 0000 01Rabobank
NL44 RABO 0123 4567 89Rabobank
NL32 INGB 0000 0123 45ING

Use the generator above to create more fictional IBAN numbers, or generate bulk datasets with IBAN, name, address and email via the Dataset Generator.

Using Fake IBAN Numbers in Software Development

Fictional IBAN numbers that pass mod-97 validation are essential when building or testing any application that handles bank account data. Here are the most common developer use cases.

  • Form validation testing — test IBAN input fields, country-prefix detection, length validation, and real-time mod-97 verification without using real account numbers.
  • Payment API integration testing — test SEPA credit transfers, direct debits, and payment initiation API calls against sandbox environments using fictional IBANs that pass structural validation.
  • Open Banking / PSD2 development — test account information and payment initiation flows required by PSD2 without exposing real customer account data during development.
  • Payroll and HR system testing — populate employee records and test salary payment workflows without storing real employee bank details in a non-production environment.
  • Database seeding and load testing — generate thousands of unique fictional IBANs to fill test databases and simulate realistic transaction volumes in load testing scenarios.

IBAN Numbers and GDPR: What Developers Need to Know

Bank account numbers — including IBANs — are classified as personal data under the EU General Data Protection Regulation (GDPR). Storing real IBANs in development or test environments creates compliance risk.

  • No real IBANs in test environments — GDPR Article 5(1)(b) limits personal data to specified, explicit purposes. Test environments are not a lawful purpose for storing real IBANs.
  • PSD2 and account data — PSD2 requires explicit customer consent before accessing payment account information. Fictional IBANs let you build and test PSD2 integrations without requiring real customer consent in development.
  • Data minimization — GDPR Article 5(1)(c) requires using the minimum amount of personal data necessary. Fictional IBANs fully satisfy this principle for testing purposes.

Using fictional IBANs is the simplest way to build and test payment applications while staying GDPR-compliant. Pair them with fictional names and BSN numbers for complete Dutch test profiles.

Frequently Asked Questions

What is an IBAN and how is a Dutch IBAN number structured?
IBAN stands for International Bank Account Number and is the international standard for bank account numbers. A Dutch IBAN is 18 characters long and consists of: the country code NL, two check digits (calculated using modulo 97), a four-letter bank code (such as ABNA for ABN AMRO or INGB for ING), and a ten-digit account number. This structure is defined in the ISO 13616 standard.
Are the generated IBAN numbers real? Can I transfer money with them?
No, absolutely not. All generated IBAN numbers are entirely fictional. They do comply with the structure and the modulo 97 check algorithm (allowing them to pass format validation), but they are not linked to existing bank accounts. It is not possible to perform financial transactions with these numbers. Use them exclusively for software testing and development.
How does IBAN validation with the modulo 97 algorithm work?
The modulo 97 algorithm (ISO 7064) validates an IBAN as follows: the first four characters (country code + check digits) are moved to the end. All letters are converted to numbers (A=10, B=11, ..., Z=35). The resulting number must equal 1 when divided by 97 (modulo 97). The IBAN generator calculates the correct check digits so that each generated number passes this validation.
Which Dutch banks are supported by the IBAN generator?
The generator supports all major Dutch banks: ABN AMRO (ABNA), ING Bank (INGB), Rabobank (RABO), SNS Bank (SNSB), ASN Bank (ASNB), Triodos Bank (TRIO), Knab (KNAB), bunq (BUNQ), RegioBank (RBRB) and Van Lanschot (FVLB). You can select a specific bank or let it choose randomly.
Can I generate IBAN numbers in bulk for my test database?
Yes, the bulk generator allows you to generate up to 10,000 fictional IBAN numbers at once. You can generate per bank or use a mix of banks. The result is directly exportable to Excel (.xlsx), CSV, or JSON, allowing you to quickly fill test databases with realistic payment data for testing payment modules and financial software.
What do developers use fictional IBAN numbers for in test environments?
Fictional IBAN numbers are widely used for: testing payment forms and checkout flows, validation of IBAN input fields in web applications, integration tests with payment service providers (PSPs), filling test databases with realistic financial test data, testing direct debit and transfer functionality, and verifying SEPA compliance in software systems.

Related Tools