User Rating 0.0 โ˜…โ˜…โ˜…โ˜…โ˜…
Total Usage 0 times
Configuration
Select a specific country or generate random
1 โ€“ 100 IBANs
Format:
Quick:
Is this tool helpful?

Your feedback helps us improve.

โ˜… โ˜… โ˜… โ˜… โ˜…

About

Incorrect or malformed IBANs in test environments cause silent failures in payment processing pipelines, failed API integrations, and hours of debugging. This generator constructs IBANs that conform to the ISO 13616 standard. Each output carries a valid check digit pair computed via the Modulo 97 algorithm (ISO 7064). The tool covers 80+ country formats with correct BBAN lengths, realistic bank code prefixes, and proper alphanumeric structure. These are syntactically valid IBANs intended for software testing, UI mockups, and data seeding. They do not correspond to real bank accounts. Note: some countries enforce additional national check digits (France uses RIB key, Spain uses two control digits) which this tool approximates but cannot guarantee against live banking infrastructure.

iban generator random iban test iban iban number bank account generator mod 97 iso 13616

Formulas

Every IBAN is assembled from three components: a 2-letter ISO 3166 country code, a 2-digit check number, and the country-specific Basic Bank Account Number (BBAN). The check digits are computed using the Modulo 97 algorithm defined in ISO 7064.

IBAN = CC + CD + BBAN

Where CC is the country code, CD is the check digit pair, and BBAN is the domestic account structure. The check digit computation proceeds as follows:

S = BBAN + CC + "00"

Each letter in S is converted to its numeric value: A = 10, B = 11, โ€ฆ Z = 35. The resulting numeric string N is then used:

CD = 98 โˆ’ (N mod 97)

Since N can exceed 30 digits, direct integer computation overflows. The tool uses iterative chunked modulo: process 9 digits at a time, carry the remainder forward. This is mathematically equivalent to full-precision modular arithmetic.

r0 = 0, โ€‚ ri+1 = (ri ร— 10k + chunki) mod 97

A valid IBAN satisfies: moving the first 4 characters to the end, converting all letters to digits, and computing mod 97 yields exactly 1.

Reference Data

CountryCodeIBAN LengthBBAN FormatExample IBAN
GermanyDE228n + 10nDE89 3704 0044 0532 0130 00
United KingdomGB224a + 6n + 8nGB29 NWBK 6016 1331 9268 19
FranceFR275n + 5n + 11c + 2nFR76 3000 6000 0112 3456 7890 189
SpainES244n + 4n + 2n + 10nES91 2100 0418 4502 0005 1332
ItalyIT271a + 5n + 5n + 12cIT60 X054 2811 1010 0000 0123 456
NetherlandsNL184a + 10nNL91 ABNA 0417 1643 00
BelgiumBE163n + 7n + 2nBE68 5390 0754 7034
SwitzerlandCH215n + 12cCH93 0076 2011 6238 5295 7
AustriaAT205n + 11nAT61 1904 3002 3457 3201
PolandPL288n + 16nPL61 1090 1014 0000 0712 1981 2874
PortugalPT254n + 4n + 11n + 2nPT50 0002 0123 1234 5678 9015 4
SwedenSE243n + 16n + 1nSE45 5000 0000 0583 9825 7466
NorwayNO154n + 6n + 1nNO93 8601 1117 947
DenmarkDK184n + 9n + 1nDK50 0040 0440 1162 43
FinlandFI183n + 11nFI21 1234 5600 0007 85
IrelandIE224a + 6n + 8nIE29 AIBK 9311 5212 3456 78
LuxembourgLU203n + 13cLU28 0019 4006 4475 0000
Czech RepublicCZ244n + 6n + 10nCZ65 0800 0000 1920 0014 5399
RomaniaRO244a + 16cRO49 AAAA 1B31 0075 9384 0000
GreeceGR273n + 4n + 16cGR16 0110 1250 0000 0001 2300 695
HungaryHU283n + 4n + 1n + 15n + 1nHU42 1177 3016 1111 1018 0000 0000
CroatiaHR217n + 10nHR12 1001 0051 8630 0016 0
BulgariaBG224a + 4n + 2n + 8cBG80 BNBG 9661 1020 3456 78
SlovakiaSK244n + 6n + 10nSK31 1200 0000 1987 4263 7541
SloveniaSI195n + 8n + 2nSI56 2633 0001 2039 086
LithuaniaLT205n + 11nLT12 1000 0111 0100 1000
LatviaLV214a + 13cLV80 BANK 0000 4351 9500 1
EstoniaEE202n + 2n + 11n + 1nEE38 2200 2210 2014 5685
CyprusCY283n + 5n + 16cCY17 0020 0128 0000 0012 0052 7600
MaltaMT314a + 5n + 18cMT84 MALT 0110 0001 2345 MTLC AST0 01S

Frequently Asked Questions

No. The IBANs are syntactically valid per ISO 13616 and will pass Mod-97 check digit validation, but the underlying bank codes and account numbers are randomly generated. They do not correspond to any real financial institution account. Use them exclusively for software testing, UI prototyping, database seeding, and documentation examples.
An IBAN can be up to 34 characters. When letters are converted to two-digit numbers (A=10 through Z=35), the resulting numeric string can exceed 50 digits. JavaScript's Number type loses precision beyond 2^53 (roughly 16 digits). The generator uses iterative chunked modulo arithmetic, processing 9 digits at a time and carrying the remainder, which is mathematically equivalent to computing the modulo of the full number. BigInt is used as a secondary verification where available.
The ISO 13616 check digits (positions 3-4) are always correctly computed. Some countries embed additional national check digits within the BBAN structure. For example, France uses a 2-digit RIB key, and Spain uses two control digits. This generator includes approximate national check digit logic for the most common countries (FR, ES, BE, PT, NO, FI) but does not guarantee national-level validity for all 80+ supported countries.
For the 30 most common countries, the generator draws from a curated pool of real-world bank code prefixes (e.g., NWBK, BARC, DEUT). This means the bank identifier portion looks realistic. For less common countries, random alphanumeric codes matching the correct format and length are generated. The account number portion is always randomized.
They are suitable for format validation testing - confirming your system correctly parses IBAN length, structure, and check digits. However, most payment gateways (Stripe, Adyen) provide their own dedicated test IBANs that trigger specific response codes (success, insufficient funds, etc.). Use this generator for volume testing and edge-case coverage, and refer to your gateway's documentation for functional test accounts.
Each IBAN in the batch is independently assigned a random country from the full supported list. This produces a diverse, multi-country dataset useful for testing international payment routing, IBAN formatting display logic, and multi-locale validation. The country distribution is uniform - each country has equal probability of selection per IBAN.