Generador de IBAN Falsos
Genera IBANs de prueba estructuralmente válidos con dígitos de control ISO 7064 Mod 97-10 correctos
Generating Test IBANs for Banking Integration Development
IBAN (International Bank Account Number) validation is critical for banking integrations — SEPA transfers, payment processing, and account verification all require correctly formatted IBANs with valid check digits. Testing these integrations requires IBANs that pass structural validation without corresponding to real bank accounts. The Fake IBAN Generator creates structurally valid IBANs using ISO 7064 Mod 97-10 check digit calculation for 10 European countries, with synthetic account numbers that are not associated with any real banking institution.
Select a country, generate one or multiple IBANs, and use them to test your IBAN validation logic, payment form fields, and banking integration workflows. Each generated IBAN has correct length for its country, valid check digits, and a proper BBAN (Basic Bank Account Number) structure — but uses synthetic bank codes that do not correspond to real financial institutions. All generation happens client-side with zero data transmission.
IBAN Structure and Check Digit Calculation
Every IBAN follows a standardized structure defined by ISO 13616:
- Country code: Two-letter ISO 3166 country identifier (DE, FR, ES, GB, etc.)
- Check digits: Two numeric digits calculated using ISO 7064 Mod 97-10 algorithm
- BBAN: Basic Bank Account Number — country-specific format containing bank code, branch code, and account number
The check digit calculation involves: moving the first four characters to the end, converting letters to numbers (A=10, B=11... Z=35), computing the remainder when divided by 97, and subtracting from 98. This detects single-character errors and most transposition errors with 97% probability.
Supported Countries and Formats
The generator produces IBANs in correct format for each country:
- Germany (DE): 22 characters — DE + check + 8-digit bank code + 10-digit account
- France (FR): 27 characters — FR + check + 5-digit bank + 5-digit branch + 11-digit account + 2-digit key
- Spain (ES): 24 characters — ES + check + 4-digit bank + 4-digit branch + 2-digit control + 10-digit account
- United Kingdom (GB): 22 characters — GB + check + 4-letter bank + 6-digit sort code + 8-digit account
- Italy (IT): 27 characters — IT + check + 1-letter CIN + 5-digit bank + 5-digit branch + 12-digit account
- And more: Netherlands (NL), Portugal (PT), Belgium (BE), Austria (AT), Switzerland (CH)
Testing IBAN Validation Logic
Generated IBANs enable testing various validation scenarios:
- Happy path: Valid IBAN passes all checks — length, country format, check digits
- Check digit verification: Modify one digit in a valid IBAN to test that your validation detects the alteration
- Country format: Test that your system accepts IBANs from all countries you support
- Display formatting: IBANs should be displayed in groups of 4 characters for readability (DE89 3704 0044 0532 0130 00)
- Storage: IBANs should be stored without spaces as a continuous string for programmatic use
Remember: passing IBAN validation only confirms format correctness — it does not verify the account exists or belongs to the expected holder. Real banking integrations require additional verification steps.
Code Examples
IBAN Validation with Mod 97-10 Check
// Validate IBAN check digits using ISO 7064 Mod 97-10
function validateIBAN(iban) {
// Remove spaces and convert to uppercase
const cleaned = iban.replace(/\s/g, '').toUpperCase();
// Move first 4 chars to end
const rearranged = cleaned.slice(4) + cleaned.slice(0, 4);
// Convert letters to numbers (A=10, B=11, ..., Z=35)
const numeric = rearranged.replace(/[A-Z]/g, (char) =>
(char.charCodeAt(0) - 55).toString()
);
// Calculate mod 97 (handle large numbers with chunking)
let remainder = numeric;
while (remainder.length > 2) {
const chunk = remainder.slice(0, 9);
remainder = (parseInt(chunk) % 97).toString() + remainder.slice(9);
}
return parseInt(remainder) % 97 === 1;
}
// Generated test IBANs pass validation:
console.log(validateIBAN('DE89370400440532013000')); // true
console.log(validateIBAN('GB29NWBK60161331926819')); // true
console.log(validateIBAN('FR7630006000011234567890189')); // trueStandards & Specifications
- ISO 13616 — IBAN Structure — Defines the international standard for IBAN format and country-specific rules
- ISO 7064 — Check Character Systems — Specifies the Mod 97-10 algorithm used for IBAN check digit calculation
Preguntas Frecuentes
Are these IBANs real bank accounts?
No. This tool generates structurally valid IBANs with correct country format, length, and ISO 7064 Mod 97-10 check digits, but they do not correspond to real bank accounts. They are suitable for testing IBAN validation logic in banking integrations.
Which countries are supported?
The generator supports at least 10 European countries including Germany (DE), France (FR), Spain (ES), United Kingdom (GB), Italy (IT), Netherlands (NL), Portugal (PT), Belgium (BE), Austria (AT), and Switzerland (CH). Each country uses its specific IBAN length and format rules.
How is the IBAN checksum calculated?
IBANs use the ISO 7064 Mod 97-10 algorithm for check digit validation. The two digits after the country code are calculated by rearranging the IBAN, converting letters to numbers (A=10, B=11, etc.), and computing modulo 97. This ensures generated IBANs pass standard validation checks.
Can I use these IBANs for payment testing?
These IBANs are useful for testing client-side validation logic (format, length, check digits). For end-to-end payment processing tests, use your payment provider's sandbox test IBANs, as real payment systems may reject structurally valid but unregistered account numbers.