🏦 Random Digits Won't Pass an IBAN Field β€” HACKTACK IBAN Makes Ones That Do, Free, 89 Countries

:bank: 89 Countries Β· Real Check Digits Β· Nothing Leaves Your Browser

▐ DE β–Œβ– NL β–Œβ– GB β–Œβ– FR β–Œβ– ES β–Œβ– +84 more β–Œ

Every European bank number carries a built-in error check. Get one digit wrong and the form spits it back before it ever reaches a server β€” which is exactly why you can’t just invent one when you need to test something.

HACKTACK IBAN builds ones that pass, for 89 countries, and checks any number you already have.

https://iban.hacktack.us/   β†’   pick a country   β†’   copy the number

No signup, no install, nothing to configure. It works the moment the page loads.


β–Œ β‘  MAKE ONE
Pick a country and it hands back a complete IBAN with valid check digits β€” the two digits that prove the rest of the number wasn’t mistyped. Your frontend and backend validators accept it instead of throwing an error at you.
β”œβ”€ Germany (DE) Β· Netherlands (NL) Β· United Kingdom (GB) Β· France (FR) Β· Spain (ES)
└─ + 84 more, straight from the official SWIFT registry

β–Œ β‘‘ CHECK ONE ← the half most posts forget
Paste any IBAN and it tells you whether three things line up: the country’s expected length, the account-part character rules (BBAN), and the ISO 7064 MOD-97 checksum. So it’s a validator, not just a generator.

β–Œ β‘’ IT NEVER PHONES HOME
100% client-side β€” all the logic runs in your own browser. Nothing stored, nothing logged, nothing uploaded. Which is the reason pasting a real IBAN into the checker doesn’t send it anywhere.


:warning: Synthetic test data only. Built for QA automation (Cypress, Playwright, Postman), database fixtures and form testing. These numbers pass a checksum; they do not belong to a real account β€” so they are not for live payments.

A number that survives the checksum still isn’t a bank account. That’s the entire point of a test one.

1 Like