Was der Validator prüft
Drei Dinge lassen sich an einer Kartennummer prüfen, ohne eine Bank zu fragen. Der Validator führt alle drei Prüfungen durch und zeigt jedes Ergebnis einzeln an:
- Herausgeberbereich (IIN). Die ersten Ziffern bestimmen das Kartennetzwerk: 4 für Visa, 51–55 oder 2221–2720 für Mastercard, 34 oder 37 für American Express, 6011/644–649/65 für Discover, 3528–3589 für JCB und so weiter.
- Länge. Jede Marke erlaubt bestimmte Längen – 15 Stellen bei Amex, 14 bei den meisten Diners-Club-Karten, 16 bei fast allen anderen und bis zu 19 bei manchen Visa-, Discover-, JCB-, UnionPay- und Maestro-Karten.
- Luhn-Prüfsumme. Die letzte Ziffer ist eine Prüfziffer. Die Luhn-Formel erkennt jeden Fehler in einer einzelnen Ziffer und die meisten Zahlendreher zweier benachbarter Ziffern.
Sind alle drei Prüfungen bestanden, ist die Nummer formal korrekt. Mehr kann keine Website von sich aus feststellen: Ob das Konto existiert, offen ist und gedeckt ist, weiß nur die ausgebende Bank – und das wird erst bei der Autorisierung einer Zahlung geprüft.
Der Luhn-Algorithmus Schritt für Schritt
Hier die Rechnung für die Testnummer 4111 1111 1111 1111. Von rechts beginnend wird jede zweite Ziffer verdoppelt; liegt das Ergebnis über 9, wird 9 abgezogen. Anschließend werden alle Werte addiert:
| Ziffer | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Verdoppelt? | 8 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – |
| Addierter Wert | 8 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
Die Summe beträgt 30. Da 30 durch 10 teilbar ist, besteht die Nummer die Prüfung. Ändern Sie nur eine einzige Ziffer, ändert sich die Summe und ist kein Vielfaches von 10 mehr – probieren Sie es oben im Validator aus und sehen Sie, welche Prüfziffer die geänderte Nummer bräuchte.
Aufbau einer Kartennummer
| Bestandteil | Stellen | Bedeutung |
|---|---|---|
| Branchenkennung (MII) | 1. Stelle | Branche: 3 Reise & Unterhaltung, 4–5 Banken & Finanzen, 6 Handel & Banken |
| Herausgeberkennung (IIN / BIN) | Erste 6–8 | Netzwerk und ausgebende Bank, Kartentyp (Kredit-, Debit-, Prepaidkarte) und Land |
| Kontokennung | Mittlere Stellen | Vom Herausgeber für die einzelne Karte vergeben |
| Prüfziffer | Letzte Stelle | Mit dem Luhn-Algorithmus aus allen übrigen Ziffern berechnet |
Tipps für die Kartenprüfung im eigenen Checkout
Wenn Sie Kartennummern in Ihrem eigenen Bezahlformular validieren, helfen ein paar einfache Regeln, Kunden nicht unnötig abzuweisen:
- Eingabe bereinigen: Entfernen Sie Leerzeichen und Bindestriche, bevor Sie prüfen – viele Nutzer tippen die Nummer so ab, wie sie auf der Karte steht.
- Reihenfolge beachten: Prüfen Sie zuerst Länge und IIN, danach die Luhn-Summe, und geben Sie jeweils eine konkrete Fehlermeldung aus statt eines pauschalen „ungültig“.
- Unbekannte BINs nicht blockieren: Validieren Sie schon während der Eingabe, lehnen Sie aber keine Nummern aus unbekannten Bereichen ab – neue Bereiche kommen hinzu, etwa die 2er-Serie von Mastercard.
- Luhn ist nur eine Formatprüfung: Ob eine Zahlung durchgeht, entscheidet allein der Zahlungsanbieter bzw. die ausgebende Bank.
- Keine echten Nummern speichern: Protokollieren oder speichern Sie in Entwicklungs- und Staging-Umgebungen niemals vollständige Kartennummern (PCI DSS) – verwenden Sie stattdessen Testnummern.
Wann sich ein Kreditkarten-Validator lohnt
- Bei der Fehlersuche, wenn ein Checkout-Formular eine vom Kunden eingegebene Nummer ablehnt.
- Um Test-Fixtures und Seed-Daten vor dem Import zu kontrollieren.
- Um den eigenen Validierungscode mit einer Referenzimplementierung abzugleichen.
- Um zu verstehen – oder im Unterricht zu zeigen –, wie Kartennummern aufgebaut sind.
Brauchen Sie Nummern für Ihre Tests? Der Kreditkarten-Generator erzeugt bis zu 1.000 Testkarten auf einmal, mit Ablaufdatum und CVV, bereit zum Export als CSV, JSON oder XML. Auch wenn diese Nummern hier als gültig erscheinen, bleiben sie fiktive Testdaten: Kein Zahlungsanbieter im Live-Modus akzeptiert sie als Zahlungsmittel.
Häufige Fragen
Heißt „gültig“, dass die Karte echt ist?
Nein. Der Validator prüft nur das Format. Ob ein Konto existiert, aktiv ist oder gedeckt ist, kann nur die ausgebende Bank bei der Autorisierung einer Zahlung feststellen.
Kann ich hier bedenkenlos eine echte Nummer eingeben?
Die Prüfung läuft per JavaScript auf Ihrem Gerät, die Nummer erreicht unseren Server nie. Trotzdem gilt als gute Gewohnheit: Geben Sie echte Kartennummern nur dort ein, wo es wirklich nötig ist.
Welche Fehler erkennt der Luhn-Algorithmus?
Er erkennt jeden Tippfehler in einer einzelnen Ziffer und die meisten Vertauschungen zweier benachbarter Ziffern. Deshalb nutzen Formulare ihn, um sofort Rückmeldung zu geben, noch bevor die Zahlung abgeschickt wird.
Warum ist meine Nummer ungültig?
Meist ist es ein Tippfehler: Schon eine falsche Ziffer bringt die Luhn-Summe aus dem Takt. Der Validator zeigt, welche Prüfziffer die Nummer bräuchte – so sehen Sie sofort, wo die Abweichung liegt.