Direct naar de inhoud
test-nummers.nl

IBAN ValidatorIBAN nummer controleren met modulo 97

Voer een IBAN nummer in en controleer direct of het geldig is. Ondersteunt alle 89 landen uit het SWIFT IBAN-register. Volledig client-side — geen data wordt opgeslagen.

FictiefAlle gegenereerde gegevens zijn fictief en alleen bedoeld voor test- en ontwikkelomgevingen. Een willekeurig geldig nummer kan toevallig bestaan: gebruik het nooit als echt gegeven.

Hoe werkt IBAN MOD-97 validatie?

De MOD-97 check is gestandaardiseerd in ISO 7064 en ISO 13616 en werkt identiek voor elk land met IBAN. Het algoritme bestaat uit vier stappen.

  1. Verplaats de eerste 4 tekens (landcode + controlecijfers) naar het einde van de string.
  2. Vervang elke letter door een getal: A=10, B=11, ..., Z=35.
  3. Interpreteer het resultaat als groot geheel getal en deel door 97.
  4. Als de rest gelijk is aan 1, is het IBAN wiskundig geldig.

Voor de wiskundige achtergrond, voorbeeldberekeningen en een vergelijking met andere checksum-standaarden, zie de kennisbank-pagina over IBAN MOD-97.

Voorbeelden: geldig en ongeldig IBAN

Onderstaande voorbeelden komen uit documentatie of zijn bewust fout gemaakt. Bij de geldige nummers is niet gecontroleerd of er een rekening achter zit.

IBANLandResultaatReden
NL91 ABNA 0417 1643 00NederlandGeldigMOD-97 rest = 1
DE89 3704 0044 0532 0130 00DuitslandGeldigMOD-97 rest = 1
BE68 5390 0754 7034BelgiëGeldigMOD-97 rest = 1, Belgisch controlegetal klopt
BE61 0689 0623 8492BelgiëOngeldigMOD-97 klopt, maar het Belgische controlegetal moet 89 zijn
NL91 ABNA 0417 1643 01NederlandOngeldigLaatste cijfer gewijzigd, MOD-97 rest niet 1
NL91 ABNA 0417 1643NederlandOngeldigTe kort (NL-IBAN moet 18 tekens zijn)
XX12 3456 7890 1234—OngeldigOnbekende landcode

Valkuilen bij IBAN-validatie

IBANs uit externe bronnen (PDFs, e-mails, CSV imports) zijn zelden “schoon”. De meeste validatiefouten komen door formatterings- of encoding-problemen, niet door een foutief controlecijfer.

  • Unicode-spaties— non-breaking spaces (U+00A0) en narrow no-break spaces (U+202F) komen vaak uit PDF-exports of Word. Een standaard replace(/\s/g, '') verwijdert ze overal, maar trim() alleen aan het begin en eind, niet tussen de groepen.
  • Streepjes— sommige bankafschriften drukken IBANs af met streepjes (NL91-ABNA-0417-1643-00) of met punten. Strip spaties, streepjes en punten voordat je valideert.
  • Lowercase letters — IBANs moeten uppercase zijn voor de letter-naar-cijfer conversie. Roep toUpperCase() aan na het strippen van whitespace.
  • Niet-SEPA-landen — landen als Turkije (TR) of Saoedi-Arabië (SA) hebben geldige IBANs maar zitten niet in SEPA. Je betaalflow kan ze afwijzen ook al passeert de MOD-97 check. Check expliciet op SEPA-lidmaatschap als je SEPA Credit Transfer wilt uitvoeren.
  • Landafhankelijke lengte — elk land heeft een vaste IBAN-lengte (NL=18, DE=22, BE=16, FR=27). MOD-97 alleen is niet genoeg: controleer ook de lengte per landcode. Deze validator doet dat voor alle 89 landen uit het SWIFT IBAN-register.

Veelgestelde vragen

Hoe werkt de IBAN validatie?

De validator verwijdert eerst spaties, streepjes en punten en zet letters om naar hoofdletters. Daarna controleert hij of de landcode in het SWIFT IBAN-register staat, of lengte en opbouw (letters en cijfers op de juiste plekken) bij dat land passen en of de controlecijfers tussen 02 en 98 liggen. Dan volgt de modulo 97-controle (ISO 7064): de eerste 4 tekens gaan naar het einde, letters worden getallen (A=10, B=11, ..., Z=35) en de rest bij deling door 97 moet 1 zijn. Voor België, Frankrijk en Spanje controleert hij ook het nationale controlegetal.

Welke landen worden ondersteund?

Alle 89 landen uit het SWIFT IBAN-register, waaronder Nederland, België, Duitsland, Frankrijk, Spanje en het Verenigd Koninkrijk. Voor elk land kent de validator de lengte en de opbouw van het rekeninggedeelte. Een nationaal controlegetal controleert hij voor België, Frankrijk (en Monaco) en Spanje.

Kan ik hiermee checken of een IBAN echt bestaat?

Nee. De validator controleert het formaat en de controlecijfers. Of er een rekening achter zit en op wiens naam, weet alleen de bank. Bij echte betalingen vangt een naam-nummercontrole (zoals Verification of Payee) een deel daarvan af.

Worden ingevoerde IBAN nummers opgeslagen?

Nee. De validatie draait volledig in je browser (client-side). Er wordt geen data verstuurd of opgeslagen.

Waarvoor gebruiken developers een IBAN validator?

Developers gebruiken IBAN validators om invoervalidatie te testen, om te controleren of gegenereerde testdata correct is, en voor het bouwen van betaalformulieren die IBAN nummers accepteren.

Gerelateerde tools