In dit artikel
Wat is creditcardvalidatie?
Creditcardvalidatie is het proces van controleren of een kaartnummer structureel geldig is voordat een transactie wordt geprobeerd. Dit omvat het verifiëren van het nummerformaat, het toepassen van het Luhn-checksum-algoritme en het detecteren van het kaartnetwerk (Visa, Mastercard, Amex, enz.) op basis van de eerste cijfers.
Validatie is niet hetzelfde als autorisatie. Een geldig kaartnummer betekent dat het formaat en de checksum correct zijn — het bevestigt niet dat de kaart bestaat, saldo heeft of toebehoort aan de persoon die het gebruikt. Echte autorisatie vereist contact met de kaartuitgever via het betalingsnetwerk.
Hoe het Luhn-algoritme werkt
Het Luhn-algoritme (ook wel het modulo-10-algoritme genoemd) is een eenvoudige checksumformule die in 1954 werd uitgevonden door Hans Peter Luhn. Het detecteert onbedoelde fouten in kaartnummers — omgewisselde cijfers, fouten in één cijfer en de meeste veelvoorkomende typefouten. Zo werkt het stap voor stap.
- Beginnend bij het meest rechtse cijfer (controlecijfer), verdubbel elk tweede cijfer naar links
- Als verdubbeling een getal groter dan 9 oplevert, trek dan 9 af van het resultaat (bijv. 8 x 2 = 16, dan 16 - 9 = 7)
- Tel alle cijfers op — zowel de verdubbelde/aangepaste als de ongewijzigde
- Als het totaal deelbaar is door 10 (mod 10 is gelijk aan 0), is het nummer geldig volgens Luhn
Bijvoorbeeld het nummer 4532015112830366: na toepassing van het algoritme is de cijfersom 40, die deelbaar is door 10, dus het slaagt voor de Luhn-controle. Dit algoritme detecteert ongeveer 95% van de fouten in één cijfer en alle transpositiefouten van aangrenzende cijfers.
Probeer gratis — geen aanmelding vereist
Valideer een creditcardnummer →Kaarttype-detectie via BIN
Het Bank Identificatienummer (BIN) — de eerste 6 tot 8 cijfers van een kaartnummer — identificeert het kaartnetwerk en de uitgevende bank. Elk netwerk heeft onderscheidende voorvoegsels en lengtevereisten.
- Visa — begint met 4, doorgaans 16 cijfers (sommige oudere kaarten hebben er 13)
- Mastercard — begint met 51-55 of 2221-2720, altijd 16 cijfers
- American Express — begint met 34 of 37, altijd 15 cijfers
- Discover — begint met 6011, 65 of 644-649, altijd 16 cijfers
Veelvoorkomende toepassingen
Client-side creditcardvalidatie dient verschillende praktische doeleinden in webapplicaties en bedrijfsprocessen.
- E-commerce afrekenen — valideer het kaartformaat voordat het naar de betalingsverwerker wordt gestuurd om mislukte transacties en API-aanroepen te verminderen
- UX van het betalingsformulier — toon het kaarttypepictogram (Visa, Mastercard, enz.) in realtime terwijl de gebruiker typt en markeer fouten onmiddellijk
- Fraudepreventie — onderschep duidelijk ongeldige nummers voordat ze uw betalingsgateway bereiken, waardoor verwerkingskosten voor geweigerde transacties worden verminderd
- Generatie van testkaarten — ontwikkelaars gebruiken Luhn-geldige testnummers (zoals 4111 1111 1111 1111 voor Visa) om betalingsstromen te testen zonder echte kaarten
Beveiligingsoverwegingen
Creditcardvalidatie is een formaatcontrole, geen beveiligingsmaatregel. Het begrijpen van de beperkingen is essentieel voor het bouwen van veilige betalingssystemen.
- Client-side validatie detecteert typefouten maar kan gestolen of geannuleerde kaarten niet detecteren — verwerk altijd via een PCI DSS-conforme betalingsgateway
- Sla nooit volledige kaartnummers op — gebruik tokenisatiediensten van uw betalingsprovider (Stripe, Braintree, Adyen) om kaartgegevens te vervangen door beveiligde tokens
- PCI DSS-compliance vereist dat kaarthoudergegevens nooit uw servers bereiken — gebruik gehoste betalingsvelden of op omleiding gebaseerde afrekenstromen
Veelgestelde vragen
Kan het Luhn-algoritme fout-positieven produceren?
Ja. Het Luhn-algoritme valideert alleen de checksum — het bevestigt dat het nummer wiskundig consistent is, niet dat er een echte kaart met dat nummer bestaat. U kunt oneindig veel Luhn-geldige nummers genereren die niet overeenkomen met een uitgegeven kaart. Daarom moet Luhn-validatie altijd worden gevolgd door daadwerkelijke autorisatie bij het kaartnetwerk.
Volgen virtuele kaartnummers dezelfde regels?
Ja. Virtuele kaartnummers die worden gegenereerd door banken en diensten zoals Apple Pay, Google Pay of Privacy.com volgen dezelfde BIN-voorvoegsel- en Luhn-checksumregels als fysieke kaarten. Het zijn geldige kaartnummers uitgegeven door dezelfde netwerken — het enige verschil is dat ze tijdelijk, voor eenmalig gebruik of beperkt tot specifieke winkels kunnen zijn.
Welke testkaartnummers kan ik gebruiken voor ontwikkeling?
Betalingsverwerkers bieden specifieke testnummers: Visa 4111 1111 1111 1111, Mastercard 5500 0000 0000 0004, Amex 3782 822463 10005, Discover 6011 1111 1111 1117. Deze slagen voor Luhn-validatie en worden herkend door test-/sandbox-omgevingen. Gebruik nooit echte kaartnummers voor tests — zelfs bij ontwikkeling, gebruik alleen officiële testnummers van uw betalingsprovider.