IBAN Bank Account Generator (fake, PT)
Generate fake IBAN account numbers in PT format. Test data only — not real accounts.
IBAN explained: structure, mod-97 check digits and where it actually matters
The IBAN (International Bank Account Number) is the global identifier of bank accounts, defined by ISO 13616 (first published in 1997, updated in 2007 and again in 2020). It was created by the European Committee for Banking Standards and later promoted by SWIFT to remove ambiguity in cross-border payments — before IBAN, banks routinely failed to route international transfers because each country wrote its account number differently.
IBAN is not a new account number. It wraps an existing domestic account (the BBAN, Basic Bank Account Number) with a country code and a check digit. Once the wrapper is in place, any payment system in the world can validate the IBAN locally — without contacting the destination bank — and detect typos before money leaves the sender's account.
Structure of an IBAN
[country code 2L] [check digits 2N] [BBAN up to 30 alphanumerics]
BR 72 00360305 00001 0009795493 P 1
DE 89 37040044 0532013000
GB 29 NWBK 60161331926819
PT 50 0002 0123 12345678901 54
- Country code: two letters, ISO 3166-1 alpha-2 (BR, PT, DE, GB, FR, ES, IT, NL, CH...).
- Check digits: two digits computed with ISO 7064 mod 97-10 over the rearranged IBAN.
- BBAN: domestic format, variable length per country (max 30 characters, total IBAN max 34).
Length by country
- Brazil (BR): 29 chars — 4 prefix + 8 bank + 5 branch + 10 account + 1 type + 1 owner.
- Portugal (PT): 25 chars — 4 prefix + 4 bank + 4 branch + 11 account + 2 control.
- Germany (DE): 22 chars — 4 prefix + 8 Bankleitzahl + 10 account.
- United Kingdom (GB): 22 chars — 4 prefix + 4 bank + 6 sort code + 8 account.
- France (FR): 27 chars.
- Spain (ES): 24 chars; Italy (IT): 27; Netherlands (NL): 18; Switzerland (CH): 21.
How the mod-97 check digit works
The algorithm (ISO 7064 Mod 97-10) is:
1. Move the first four characters (country + check digits) to the end.
2. Convert each letter to two digits: A=10, B=11, ..., Z=35.
3. Interpret the resulting string as a large integer N.
4. Check digits = 98 - (N mod 97). Valid IBAN: N mod 97 === 1.
Because the algorithm operates on the entire IBAN, it catches single-character typos and transpositions with probability above 99.99%. Most languages have an IBAN library: iban (Node.js), schwifty (Python), Iban4j (Java), PHP-IBAN.
Where IBAN matters (and where it does not)
IBAN is mandatory inside the SEPA area (Single Euro Payments Area — 36 European countries plus a few microstates) for any euro transfer. It is also the global lingua franca of cross-border payments through fintechs like Wise, Revolut, N26 and traditional correspondent banking through SWIFT.
Brazil joined ISO 13616 in 2013, but practical adoption is limited: domestic transfers use TED, DOC and PIX; IBAN matters only for inbound foreign remittance, and even then many Brazilian banks still ask for an old-style "favored account number" plus SWIFT code instead. The US does not use IBAN at all — domestic transfers use ABA/ACH; international transfers via SWIFT pass an account number, the SWIFT BIC and (often) the routing number.
Frequently asked questions
Does this generator output IBANs of real banks? The mathematical format is valid and will pass any IBAN validator, but the account itself is not linked to a real customer account. It is a structurally-correct fake intended for testing.
Can I use these IBANs for B2B mocks and integration tests? Yes. They are perfect for QA, API tests and form-validation flows.
Can I run a SEPA transfer with a generated IBAN? No. SEPA requires an IBAN tied to a real account at a participating bank; a generated IBAN will be rejected by the receiving bank.
How is the check digit calculated? ISO 7064 mod 97-10: rotate the first four chars to the end, convert letters to 10..35, treat as integer and compute 98 - (n mod 97).
What is the difference between IBAN, BBAN and BIC? BBAN is the domestic account number; IBAN wraps the BBAN with country code and check digits; BIC (or SWIFT code) identifies the bank, not the account.
Related Tools
Handwriting Generator
Convert typed text into an image with handwriting appearance. Useful for adding a personal touch to digital work.
Resume Generator
Fill a simple printable A4 CV from a form with personal data, education and experience.
Favicon Generator
Generate a favicon from text/emoji in all common sizes (16, 32, 48, 64, 192, 512). PNG download.