How to Generate Test IBANs for European Payment Forms

By FormFiller Team
4 min read
Payments Testing SEPA

IBAN fields are everywhere on European payment and onboarding forms. Here's how IBAN validation actually works, and how to generate test values that pass it.

If you're building anything with European payments — payroll, invoicing, SEPA direct debit, marketplace payouts — you'll eventually hit an IBAN field. And like credit card fields, you don't want to be typing your own bank account into a staging environment fifty times a day.

What's actually inside an IBAN

An IBAN is a 2-letter country code, 2 check digits, and a country-specific Basic Bank Account Number (BBAN) that encodes the bank, branch, and account. The tricky part is that the length and internal structure of the BBAN is different for every country — Germany's is 18 digits, France's mixes digits and letters across four segments, Norway's is only 11 characters. A generator that just pads a fixed-length string with random digits will fail validation for most countries.

The check digits are the real test

The two check digits are computed with the ISO 7064 mod-97-10 algorithm: move the country code and check digits to the end of the BBAN, convert any letters to numbers (A=10 through Z=35), and reduce the resulting number modulo 97 — a valid IBAN always reduces to 1. This is the same check most banking software and validation libraries run first, before ever looking up whether the account exists.

The IBAN Generator runs that exact algorithm for 41 countries, so every IBAN it produces is the correct length for its country and passes real mod-97 validation — without belonging to an actual bank account. It's the same "structurally valid, not real" idea behind our test credit card generator, just applied to European bank details instead of card numbers.

Where this matters most

Onboarding and KYC forms that collect bank details for payouts. SEPA direct debit setup flows. Any form that validates IBAN length and checksum client-side before submission — which is most of them, since a malformed IBAN is a common source of failed transfers. Generating a batch across several countries is also a fast way to confirm your validation logic isn't secretly hardcoded to one country's format.

As with test card numbers: passing the checksum only proves the IBAN is well-formed. It says nothing about whether an account exists behind it, and no real transfer will succeed against these numbers. Use them for testing and development only.

Fill the rest of the form automatically

Bank detail forms rarely stop at the IBAN — there's usually a name, address, and email around it too, which you can generate with the fake identity generator. The FormFiller extension fills those fields directly in the browser, so a generated IBAN is the only thing you have to paste in by hand.