Naar inhoud springen

IBAN Generator & Validator Tool - Test Bankgegevens

Genereer geldige test-IBANs of valideer bestaande direct. Ondersteunt 10 Europese landen met MOD 97-validatie. Perfect voor het testen van financiële software en ontwikkeling.

IBAN Generator & Validator

Laadcalculator...
📚

Documentatie

IBAN Generator en Validator Tool

Wat Deze Tool Doet

Financiële software testen zonder echte bankrekening gegevens? Je hebt geldige IBAN-formaten nodig die validatiecontroles doorstaan. Deze tool genereert willekeurige IBANs die landspecifieke formaten volgen en valideert bestaande IBANs met behulp van de ISO 13616-standaard.

Hier is het praktische probleem dat het oplost: bij het bouwen van betalingssystemen of bankapplicaties heb je testgegevens nodig die de validatie doorstaan maar geen risico vormen voor het blootleggen van echte rekeningnummers. Een veelgemaakte fout van ontwikkelaars is het maken van "nepte" IBANs die de MOD 97-controlealgoritme niet doorstaan, waardoor tests om verkeerde redenen mislukken.

De tool voert twee kerntaken uit:

  • Generator: Maakt structureel geldige IBANs voor elk ondersteund land. Elk gegenereerd nummer doorstaat dezelfde validatiecontroles die uw productiesysteem zal uitvoeren.
  • Validator: Controleert IBAN-structuur, controletekens en landspecifieke opmaak. Nuttig voor het debuggen waarom een IBAN wordt geweigerd.

IBANs (International Bank Account Numbers) standaardiseren hoe banken rekeningen over grenzen heen identificeren. Elke IBAN bevat een landcode, twee controletekens berekend via MOD 97, en een Basic Bank Account Number (BBAN) dat per land verschilt. Wat dit ingewikkeld maakt, is dat Duitsland 22 tekens gebruikt terwijl Frankrijk er 27 nodig heeft, en de interne structuur volkomen verschilt.

Hoe IBAN's Werken

IBAN-structuur en -formaat

IBAN's kunnen tot 34 alfanumerieke tekens zijn, hoewel de meeste Europese landen 22-27 gebruiken. Elke IBAN valt uiteen in drie onderdelen:

  1. Landcode: Twee letters uit de ISO 3166-1 alpha-2 standaard (DE voor Duitsland, GB voor Verenigd Koninkrijk)
  2. Controletekens: Twee berekende cijfers die de gehele IBAN valideren met MOD 97
  3. Basis Bankrekening Nummer (BBAN): Het landspecifieke deel dat bevat:
    • Bank-identificatie (soms routenummer of bankcode genoemd)
    • Filiaal-identificatie (in het VK een sort code genoemd)
    • Rekeningnummer
    • Soms aanvullende nationale controletekens

Neem een Duitse IBAN als voorbeeld. Het patroon DE2!n8!n10!n betekent:

  • DE = landcode
  • 2!n = twee numerieke controletekens
  • 8!n = acht-cijferige bankcode (Bankleitzahl)
  • 10!n = tien-cijferig rekeningnummer (Kontonummer)

Wat mensen verrast, is hoe deze formaten tussen landen kunnen verschillen:

LandLengteStructuurVoorbeeld
Duitsland (DE)22DE2!n8!n10!nDE89370400440532013000
VK (GB)22GB2!n4!a6!n8!nGB29NWBK60161331926819
Frankrijk (FR)27FR2!n5!n5!n11!c2!nFR1420041010050500013M02606
Spanje (ES)24ES2!n4!n4!n1!n1!n10!nES9121000418450200051332
Italië (IT)27IT2!n1!a5!n5!n12!cIT60X0542811101000000123456

IBAN Validatie-algoritme

IBAN-validatie steunt op het MOD 97-algoritme gedefinieerd in ISO 7064. Hier gebeurt werkelijk het volgende bij IBAN-validatie:

  1. Verplaats de eerste vier tekens (landcode en controletekens) naar het einde
  2. Vervang elke letter door getallen: A=10, B=11, tot Z=35
  3. Bereken modulo 97 van de resulterende getallenreeks
  4. Geldige IBAN's produceren altijd een rest van precies 1

Wiskundig: IBAN nummermod97=1\text{IBAN nummer} \bmod 97 = 1

Waarom specifiek MOD 97? Het vangt bijna alle gebruikelijke fouten: enkele cijferfouten, verwisselde cijfers, zelfs de meeste typefouten met op elkaar lijkende tekens. In de praktijk heb ik gevonden dat het ongeveer 99,9% van de onbedoelde gegevensinvoerfouten onderschept, wat verklaart waarom het de internationale standaard werd.

Een aardigheidje om te weten: bij het genereren van IBAN's bereken je de controletekens door te beginnen met "00", het algoritme uit te voeren, en vervolgens 98 min de rest te gebruiken. Dit zorgt ervoor dat de uiteindelijke IBAN correct zal valideren.

Hulpmiddel Functies

IBAN Generator

Genereer test-IBANs die validatie doorstaan zonder echte rekeningnummers te gebruiken:

  • Landenselectie: Ondersteunt 10 grote Europese landen (Duitsland, VK, Frankrijk, Spanje, Italië, Nederland, Zwitserland, Oostenrijk, België, Polen)
  • Formaat Naleving: Elke gegenereerde IBAN komt overeen met de officiële landstructuur en doorstaat MOD 97-validatie
  • Genereren met één klik: Geen configuratie nodig—selecteer gewoon een land en genereer
  • Kopiëren naar klembord: Eén klik kopieert de volledige IBAN voor plakken in uw tests
  • Visuele Uitsplitsing: Kleurgecodeerde weergave toont landcode, controletekens en bankgegevens afzonderlijk

Het generatieproces:

  1. Kiest de landspecifieke sjabloonindeling
  2. Vult willekeurige cijfers/letters in het BBAN-gedeelte
  3. Berekent controletekens met MOD 97
  4. Stelt de volledige IBAN samen en valideert deze

Pro tip: Bij het seeden van testdatabases, genereer IBANs uit meerdere landen om grensoverschrijdende scenario's te testen. Echte betaalsystemen hebben vaak randgevallen met specifieke landen.

IBAN Validator

Verifieer IBAN-structuur en vang formatiefouten op voordat ze in productie komen:

  • Formaat Verificatie: Controleert landspecifieke lengte- en structuurvereisten
  • MOD 97 Validatie: Voert de volledige controleteken-algoritme uit
  • Componentuitsplitsing: Toont precies hoe de IBAN wordt opgesplitst in landcode, controletekens, bankcode en rekeningnummer
  • Specifieke Foutberichten: In plaats van generieke "ongeldig" berichten, ziet u wat er precies mis is
  • Auto-opmaak: Verwerkt IBANs met of zonder spaties—opmaak gebeurt automatisch

Validatiecontroles worden in volgorde uitgevoerd:

  1. Herkenning landcode (wordt het ondersteund?)
  2. Lengtecontrole (correct aantal tekens voor dat land?)
  3. Tekentype validatie (getallen waar verwacht, letters waar toegestaan)
  4. MOD 97 controleteken berekening (klopt de berekening?)

Veelvoorkomend scenario: Uw API ontvangt een IBAN van gebruikersinvoer met inconsistente spatiëring. Gebruik de validator om deze te normaliseren voordat u deze verwerkt—hij verwijdert automatisch spaties en toont u de juiste indeling.

Stapsgewijze Handleiding

Een IBAN Genereren

  1. Toegang tot het Generatortabblad: Klik op het tabblad "Generator" (standaard geselecteerd)
  2. Selecteer een Land: Kies het gewenste land uit het dropdown-menu
  3. Genereer de IBAN: Klik op de knop "IBAN Genereren"
  4. Bekijk het Resultaat: De gegenereerde IBAN verschijnt hieronder met een visuele uiteenzetting van de componenten
  5. Kopiëren naar Klembord: Klik op de knop "Kopiëren naar klembord" om de IBAN te kopiëren voor gebruik elders

Een IBAN Valideren

  1. Toegang tot het Validatortabblad: Klik op het tabblad "Validator"
  2. Voer een IBAN in: Typ of plak een IBAN in het invoerveld
    • Spaties en opmaak worden automatisch verwerkt
    • Het hulpmiddel accepteert zowel geformatteerde (met spaties) als ongeformatteerde IBANs
  3. Bekijk Validatieresultaten: Het hulpmiddel valideert de IBAN automatisch terwijl u typt
  4. Controleer de Details: Voor geldige IBANs wordt een uiteenzetting van de componenten weergegeven
  5. Bekijk Eventuele Fouten: Voor ongeldige IBANs worden specifieke foutmeldingen weergegeven om het probleem te identificeren

Gebruiksgevallen en Praktische Toepassingen

Software Ontwikkeling en Testen

API Testen: Bij het bouwen van betalingsintegratie tests, heb je IBANs nodig die validatie doorstaan maar geen echte transacties activeren. Genereer een batch test-IBANs voor je geautomatiseerde testsuite, waarbij je ervoor zorgt dat je foutafhandeling correct werkt voor verschillende landformaten.

Formulier Validatie: Een checkout-flow aan het testen? Gebruik de validator om te verifiëren of je frontend-validatie overeenkomt met backend-vereisten. Een veelvoorkomend probleem is het accepteren van een IBAN-formaat dat je betalingsverwerker later zal afwijzen—dit tijdens de ontwikkeling ontdekken voorkomt klantfrustatie.

Grensgevallen Testen: De meeste ontwikkelaars testen met één of twee landformaten. Wat gebeurt er wanneer een Zwitserse klant met een 21-tekens IBAN je systeem gebruikt dat is ontworpen rond Duitse 22-tekens IBANs? Genereer verschillende landformaten om je veldlengtes en validatielogica te testen.

Regressie Testen: Na het updaten van je IBAN-validatiebibliotheek, voer gegenereerde test-IBANs uit door zowel oude als nieuwe versies. Eventuele discrepanties wijzen op wijzigingen die de productieomgeving kunnen beïnvloeden.

Financiële Applicatie Ontwikkeling

Betalingssystemen: Bij het bouwen van internationale overboekingsfunctionaliteit kom je scenario's tegen waarbij de IBAN-structuur zelf het routeringsgedrag bepaalt. Test-IBANs uit Nederland (die letters in de BBAN bevatten) onthullen bugs die volledig numerieke Duitse IBANs niet zullen opmerken.

Bankensoftware: Het parseren van IBANs om bankcodes en filiaalidentificators te extraheren vereist landspecifieke logica. Genereer IBANs voor elk ondersteund land om te verifiëren dat je parseeralgoritme deze componenten correct identificeert.

Nalevingsverificatie: Financiële regelgevingen vereisen vaak IBAN-validatie voordat verwerking plaatsvindt. Gebruik deze tool om testgevallen te creëren die aantonen dat je systeem ongeldige controletekens en onjuiste formaten weigert—essentieel voor controlerapporten.

Educatief en Documentatie

Bankstandaarden Onderwijs: Studenten die internationale betalingssystemen leren, profiteren van het zien van werkelijke IBAN-structuren. Genereer voorbeelden uit meerdere landen om te illustreren hoe standaardisatie werkt in verschillende banksystemen.

API Documentatie: In plaats van mogelijk echte IBANs in je technische documentatie te gebruiken, genereer schone voorbeelden. Documentatie met zinnen zoals "Gebruik IBAN DE89370400440532013000 voor testen" maakt direct duidelijk dat dit veilige testwaarden zijn.

Data Bewerkingen

Database Seeding: Ontwikkelings- en staging-omgevingen hebben realistische testgegevens nodig. Genereer diverse IBANs om je database te vullen met representatieve internationale klantprofielen zonder privacyzorgen.

Data Anonimisering: Migreren van productie naar staging? Vervang echte IBANs door gegenereerde die formatieve validiteit behouden voor testen terwijl gevoelige informatie wordt verwijderd. Kritisch voor GDPR-naleving in ontwikkelomgevingen.

Alternatieven en wanneer deze te gebruiken

Verschillende tools zijn geschikt voor verschillende behoeften. Hier is een eerlijke vergelijking:

Commerciële Bankieren API's (bijv. Stripe, Adyen)

Beste optie voor productievalidatie tegen echte bankregisters. Deze services controleren of een IBAN overeenkomt met een daadwerkelijk actieve rekening, niet alleen of het formaat correct is.

Gebruiken wanneer: U wilt verifiëren dat een IBAN bestaat en betalingen kan ontvangen, niet alleen dat deze structureel geldig is.

Beperkingen: Kost geld (doorgaans per API-aanroep), vereist integratie-inspanningen, en u hebt nog steeds test-IBANs nodig voor ontwikkeling—en daar komt deze tool van pas.

Programmeertaal Bibliotheken (ibantools, iban.js, python-stdnum)

Beste optie voor ingebouwde validatie in uw applicatiecode. Bibliotheken zoals ibantools voor JavaScript of python-stdnum voor Python bieden zowel validatie- als generatiefuncties.

Gebruiken wanneer: U programmatische toegang nodig hebt als onderdeel van uw build- of runtime-validatie.

Beperkingen: Vereist ontwikkelingsinspanningen voor integratie, en u hebt nog steeds een snelle manier nodig om handmatig specifieke IBANs te testen tijdens het debuggen. Daarvoor is een webtools sneller dan testscripts schrijven.

SWIFT IBAN Register

Het officiële IBAN-register beheerd door SWIFT vermeldt alle landformaten en validatieregels. Het is de gezaghebbende bron.

Gebruiken wanneer: U IBAN-ondersteuning van grund af aan implementeert en de officiële specificaties nodig hebt.

Beperkingen: Het is documentatie, geen tool. U zou nog steeds iets moeten bouwen of vinden om daadwerkelijk IBANs te genereren en te valideren op basis van die specificaties.

Officiële Bank Validators

Veel nationale banken bieden landspecifieke validators (bijv. Bundesbank voor Duitse IBANs). Deze zijn zeer nauwkeurig voor hun specifieke land.

Gebruiken wanneer: U alleen met één land werkt en bank-niveau validatiedetails nodig hebt.

Beperkingen: Enkele-land focus. Als u internationale betalingssystemen bouwt, hebt u validators nodig voor elk land.

Wanneer Deze Tool Zinvol Is

Gebruik deze tool wanneer u snelle, zonder-setup testen nodig hebt zonder API-integratie. Het is bijzonder nuttig tijdens ontwikkeling en debuggen wanneer u direct geldige testgegevens moet genereren of wilt verifiëren waarom een specifieke IBAN de validatie niet doorstaat. Het vervangt geen productiewaardige validatiebibliotheken in uw codebase, maar het is sneller dan wegwerptest-scripts schrijven.

Veelgestelde vragen

Wat is een IBAN en waarom is het belangrijk?

IBAN staat voor International Bank Account Number—een gestandaardiseerd formaat gecreëerd door de International Organization for Standardization (ISO) om fouten bij grensoverschrijdende betalingen te verminderen. Voordat IBANs bestonden, gebruikte elk land zijn eigen rekeningnummerformaat, wat leidde tot frequente fouten en mislukte overboekingen. IBANs voegen landcodes en controletekens toe om fouten te onderscheppen voordat geld wordt overgemaakt.

Hoe nauwkeurig zijn de gegenereerde IBANs?

Gegenereerde IBANs zijn wiskundig correct en doorstaan de MOD 97-validatie-algoritme gedefinieerd in ISO 13616. Ze volgen de juiste landspecifieke structuren. Ze zijn echter willekeurig aangemaakt en komen niet overeen met echte bankrekeningen—dat is precies de bedoeling. Ze zijn veilig voor testen omdat ze nooit per ongeluk een echte rekening zullen raken.

Welke landen ondersteunt deze tool?

Momenteel 10 Europese landen: Duitsland, Verenigd Koninkrijk, Frankrijk, Spanje, Italië, Nederland, Zwitserland, Oostenrijk, België en Polen. Deze dekken de meest voorkomende IBAN-formaten die je tegenkomt in Europese betalingssystemen. Een ander land nodig? Het feedbackformulier is de beste manier om toevoegingen aan te vragen.

Kan ik gegenereerde IBANs gebruiken voor daadwerkelijke geldoverdrachten?

Absoluut niet. Dit zijn alleen test-IBANs. Ze doorstaan de formaatvalidatie maar zijn niet verbonden met echte bankrekeningen. Ze gebruiken voor daadwerkelijke transacties zal resulteren in betalingsfouten of afwijzingen. Ze zijn bedoeld voor ontwikkeling, testen en educatieve doeleinden.

Hoe werkt IBAN-validatie precies?

De validator voert vier controles uit op volgorde:

  1. Landcode: Is het een herkende tweeletterige code?
  2. Lengte: Komt het overeen met de vereiste lengte voor dat land? (Duitsland = 22, VK = 22, Frankrijk = 27, etc.)
  3. Tekentypes: Staan letters en cijfers op de juiste posities op basis van landformaat?
  4. MOD 97-controle: Is de wiskundige checksum gelijk aan 1 volgens ISO 7064?

Als een controle mislukt, ziet u een specifiek foutbericht dat uitlegt wat er mis is.

Maken spaties uit bij IBANs?

Niet voor validatie. IBANs worden meestal weergegeven met spaties (groepen van vier) voor leesbaarheid, maar de spaties zijn cosmetisch. DE89 3704 0044 0532 0130 00 en DE89370400440532013000 zijn identiek voor validatiedoeleinden. De tool behandelt beide formaten automatisch.

Worden mijn gegevens naar een server gestuurd of ergens opgeslagen?

Nee. Alles draait in uw browser met behulp van JavaScript. Geen IBAN-gegevens verlaten uw machine, raken een server of worden ergens opgeslagen. U kunt dit verifiëren door de browserdevelopmenttools te openen en de netwerktab in de gaten te houden—u zult geen verzoeken zien bij het genereren of valideren van IBANs.

Wat als ik een IBAN moet valideren van een land dat niet wordt vermeld?

De tool ondersteunt momenteel alleen de 10 landen in de vervolgkeuzelijst. Het toevoegen van meer vereist het implementeren van de specifieke formaatregels van elk land. Als u validatie nodig hebt voor landen zoals Noorwegen, Zweden of anderen, laat het ons dan weten via het feedbackformulier—we prioriteren toevoegingen op basis van vraag.

Waarom zou een correct geformatteerde IBAN de validatie niet doorstaan?

Meest voorkomende redenen:

  • Onjuiste controletekens: Zelfs één verkeerd cijfer mislukt de MOD 97-test
  • Typefouten: Verwisselde tekens of verkeerde cijfers ergens in de IBAN
  • Verkeerde lengte: Ontbrekende of extra tekens voor dat land
  • Ongeldige tekens: Letters waar alleen cijfers zijn toegestaan, of andersom
  • Niet-ondersteund land: De landcode bestaat maar staat niet in onze ondersteunde lijst

Het foutbericht zal specifiek vertellen wat er mis is.

Hoe kan ik bugs rapporteren of functies aanvragen?

Gebruik het feedbackformulier onderaan de pagina. Specifieke bugmeldingen met voorbeeld-IBANs zijn het meest behulpzaam. Voor functieaanvragen helpt het uitleggen van uw use case om te bepalen wat er vervolgens wordt gebouwd.

Wat is het verschil tussen IBAN en SWIFT/BIC-codes?

IBANs identificeren specifieke bankrekeningen, terwijl SWIFT/BIC-codes banken of bankfilialen identificeren. Denk eraan: de SWIFT-code vertelt u welke bank, de IBAN vertelt u welke rekening bij die bank. Voor internationale overboekingen hebt u vaak beide nodig—de SWIFT-code routeert naar de juiste bank, vervolgens routeert de IBAN naar de specifieke rekening.

Kan ik een IBAN valideren zonder het land te kennen?

Ja, omdat de eerste twee letters van elke IBAN de landcode zijn. De validator leest die eerste twee tekens om te bepalen welk landformaat moet worden toegepast. Daarom gebeurt landdetectie automatisch wanneer u een IBAN plakt—u hoeft het land niet handmatig te selecteren.

Zijn er IBAN-formaten voor landen buiten Europa?

Ja, maar minder. Hoewel IBAN oorspronkelijk in Europa is ontstaan en daar de hoogste acceptatie heeft, hebben landen zoals Saoedi-Arabië, VAE, Brazilië en anderen het overgenomen. Deze tool richt zich momenteel op Europese formaten omdat deze de overgrote meerderheid van grensoverschrijdende transacties vertegenwoordigen. Het SWIFT IBAN-register onderhoudt de volledige lijst.

Hoe een IBAN lezen en decoderen

Heb je ooit naar een IBAN zoals DE89370400440532013000 gekeken en je afgevraagd wat elk onderdeel betekent? Hier is hoe je elke IBAN kunt decoderen:

Stap 1: Landcode (Eerste 2 tekens)

  • DE = Duitsland
  • Vertelt welke landspecifieke formaatregels van toepassing zijn

Stap 2: Controletekens (Volgende 2 tekens)

  • 89 = berekende checksum
  • Deze cijfers verifiëren of de gehele IBAN geldig is met MOD 97

Stap 3: Bankcode (Varieert per land)

  • 37040044 in Duitse IBANs = 8-cijferige bank-identificatie
  • Verschillende landen gebruiken verschillende lengtes (VK gebruikt 4 tekens)

Stap 4: Rekeningnummer (Resterende tekens)

  • 0532013000 = het daadwerkelijke rekeningnummer bij die bank
  • Lengte en formaat zijn afhankelijk van het land

Verschillende landen organiseren het BBAN-gedeelte anders. UK IBANs bevatten een 6-cijferige sorteercode (filiaal-identificatie) tussen de bankcode en het rekeningnummer. Franse IBANs combineren bankcode, filiaalcode en rekeningnummer met een controletoets. Het begrijpen van deze verschillen is cruciaal bij het programmatisch verwerken van IBANs.

Veelvoorkomende IBAN-validatiefouten en hoe deze op te lossen

Bij het implementeren van IBAN-validatie zult u deze problemen herhaaldelijk tegenkomen:

Fout "Ongeldige controletekens"

Oorzaak: De MOD 97-berekening is niet gelijk aan 1. De controletekens zijn ofwel onjuist, ofwel is er ergens anders een fout in de IBAN.

Oplossing: Voer de validatie opnieuw uit nadat u eventuele typefouten hebt gecorrigeerd. Zelfs één verkeerd teken ergens in de IBAN veroorzaakt een fout in de controletekens. Dit is opzettelijk—het vangt gegevensinvoerfouten op.

Fout "Onjuiste lengte voor land"

Oorzaak: De IBAN heeft te veel of te weinig tekens voor zijn landcode.

Oplossing: Controleer of de landcode overeenkomt met het beoogde land. Duitse IBANs zijn altijd 22 tekens, UK IBANs zijn 22, Franse zijn 27. Ontbrekende of extra tekens duiden op afkapping of onjuiste gegevens.

Fout "Ongeldige tekens"

Oorzaak: Tekens die niet op die positie mogen voorkomen—zoals letters waar alleen cijfers zijn toegestaan.

Oplossing: Controleer de landspecifieke indeling. Bijvoorbeeld, Duitse IBANs zijn volledig numeriek na de landcode en controletekens, terwijl UK IBANs 4 letters bevatten voor de bankcode.

Fout "Niet-ondersteunde landcode"

Oorzaak: De eerste twee letters zijn geen herkende landcode, of worden niet ondersteund door uw validator.

Oplossing: Controleer de spelling van de landcode. Veelgemaakte fouten zijn het gebruik van UK in plaats van GB, of EN in plaats van landcodes. Deze tool ondersteunt 10 Europese landen; productievalidators moeten alle SWIFT-registerlanden ondersteunen.

Formaat versus rekeningbestaan

Belangrijk onderscheid: validatie bevestigt dat een IBAN structureel correct is, niet dat de rekening bestaat. Een IBAN kan alle validatiecontroles doorstaan maar nog steeds niet overeenkomen met een echte bankrekening. Voor productiebetalingssystemen hebt u aanvullende verificatie nodig naast formaatvalidatie.

Technische Implementatie voor Ontwikkelaars

Als u IBAN-ondersteuning in uw applicatie bouwt, zijn hier beproefde codevoorbeelden in meerdere talen. Deze implementaties behandelen de randgevallen die u in productie zult tegenkomen:

IBAN-validatie

1function validateIban(iban) {
2  // Verwijder spaties en converteer naar hoofdletters
3  const cleanedIban = iban.replace(/\s/g, '').toUpperCase();
4  
5  // Controleer basisformaat
6  if (!/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/.test(cleanedIban)) {
7    return false;
8  }
9  
10  // Herschik en converteer letters naar nummers
11  const rearranged = cleanedIban.substring(4) + cleanedIban.substring(0, 4);
12  const converted = rearranged.split('').map(char => {
13    if (/[A-Z]/.test(char)) {
14      return (char.charCodeAt(0) - 55).toString();
15    }
16    return char;
17  }).join('');
18  
19  // Bereken mod 97
20  let remainder = 0;
21  for (let i = 0; i < converted.length; i++) {
22    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
23  }
24  
25  return remainder === 1;
26}
27
28// Voorbeeldgebruik
29console.log(validateIban('DE89 3704 0044 0532 0130 00')); // true
30console.log(validateIban('GB29 NWBK 6016 1331 9268 19')); // true
31console.log(validateIban('DE89 3704 0044 0532 0130 01')); // false (ongeldige controletekens)
32

IBAN-generatie

1function generateIban(countryCode) {
2  const countryFormats = {
3    'DE': { length: 22, bbanPattern: '8n10n' },
4    'GB': { length: 22, bbanPattern: '4a6n8n' },
5    'FR': { length: 27, bbanPattern: '5n5n11c2n' }
6    // Voeg meer landen toe indien nodig
7  };
8  
9  if (!countryFormats[countryCode]) {
10    throw new Error(`Landcode ${countryCode} niet ondersteund`);
11  }
12  
13  // Genereer willekeurige BBAN op basis van landpatroon
14  let bban = '';
15  const pattern = countryFormats[countryCode].bbanPattern;
16  let i = 0;
17  
18  while (i < pattern.length) {
19    const count = parseInt(pattern.substring(i + 1), 10);
20    const type = pattern[i];
21    
22    if (type === 'n') {
23      // Genereer numerieke tekens
24      for (let j = 0; j < count; j++) {
25        bban += Math.floor(Math.random() * 10);
26      }
27    } else if (type === 'a') {
28      // Genereer alfabetische tekens
29      for (let j = 0; j < count; j++) {
30        bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
31      }
32    } else if (type === 'c') {
33      // Genereer alfanumerieke tekens
34      for (let j = 0; j < count; j++) {
35        const isLetter = Math.random() > 0.5;
36        if (isLetter) {
37          bban += String.fromCharCode(65 + Math.floor(Math.random() * 26));
38        } else {
39          bban += Math.floor(Math.random() * 10);
40        }
41      }
42    }
43    
44    i += 2;
45  }
46  
47  // Bereken controletekens
48  const checkDigits = calculateCheckDigits(countryCode, bban);
49  
50  return countryCode + checkDigits + bban;
51}
52
53function calculateCheckDigits(countryCode, bban) {
54  // Maak initiële IBAN met '00' als controletekens
55  const initialIban = countryCode + '00' + bban;
56  
57  // Herschik en converteer letters naar nummers
58  const rearranged = bban + countryCode + '00';
59  const converted = rearranged.split('').map(char => {
60    if (/[A-Z]/.test(char)) {
61      return (char.charCodeAt(0) - 55).toString();
62    }
63    return char;
64  }).join('');
65  
66  // Bereken 98 min mod 97
67  let remainder = 0;
68  for (let i = 0; i < converted.length; i++) {
69    remainder = (remainder * 10 + parseInt(converted[i], 10)) % 97;
70  }
71  
72  const checkDigits = (98 - remainder).toString().padStart(2, '0');
73  return checkDigits;
74}
75
76// Voorbeeldgebruik
77console.log(generateIban('DE')); // Genereert een geldige Duitse IBAN
78console.log(generateIban('GB')); // Genereert een geldige UK IBAN
79

Referenties en Verdere Bronnen

  1. ISO 13616-1:2007 - Officiële IBAN-structuurspecificatie
  2. SWIFT IBAN-register - Gezaghebbende bron voor landspecifieke IBAN-formaten
  3. ISO 7064:2003 - MOD 97 controlegetal-algoritmespecificatie
  4. Europese Betalingsraad - SEPA - Documentatie voor de Gemeenschappelijke Eurobetalingsruimte
  5. Europese Centrale Bank - Betalingssystemen - Europese bankintegratie-standaarden
  6. Bank voor Internationale Betalingen - Betalingssystemen - Internationale betalingssysteemstandaarden

Begin met het Testen van IBANs

Heb je testgegevens nodig voor je betalingssysteem? Genereer een geldig IBAN voor elk ondersteund land hierboven, of plak een bestaand IBAN om de structuur te verifiëren. De tool draait volledig in je browser—geen aanmeldingen, geen API-sleutels, geen gegevens verzonden naar servers.

Snelle tip: Genereer IBANs uit meerdere landen om randgevallen te testen. Echte betalingssystemen behandelen diverse formaten, en testen met slechts het formaat van één land is een veelvoorkomende bron van productiefouten.