Menü

Kreditkartennummer Format: Länge, Präfix und Prüfziffer

Das Kreditkartennummer Format besteht aus Herausgeberpräfix, Kontoziffern und Prüfziffer. Hier steht, wie die Teile zusammenspielen und warum Länge und Präfix keine Prüfung ersetzen.

Veröffentlicht am

  • Kartennummern
  • Zahlungen
  • Grundlagen

Das Kreditkartennummer Format wirkt auf den ersten Blick beliebig: mal dreizehn Ziffern, mal neunzehn, mal in Vierergruppen gedruckt, mal in ungleiche Blöcke aufgeteilt, und immer endet die Zeichenfolge mit einer Ziffer, die niemand auswendig kennt. Hinter dieser Vielfalt steckt jedoch eine kleine, gut dokumentierte Struktur, die von der internationalen Norm für Kartennummerierung festgelegt wird und die jedes Zahlungssystem auf der Welt einhält.

Wer diese Struktur kennt, kann eine Nummer lesen wie einen Satz: Man erkennt, welche Ziffern den Herausgeber benennen, welche der Herausgeber frei vergeben darf und welche bloß dazu da ist, Tippfehler aufzudecken. Dieser Beitrag zerlegt das Format in seine drei Teile, erklärt die unterschiedlichen Längen und zeigt, welche Prüfungen daraus folgen und welche eben nicht.

Die drei Teile einer Kartennummer

Von links nach rechts gelesen besteht jede Kartennummer aus drei Abschnitten. Der erste ist das Herausgeberpräfix. Es wird in älteren Dokumenten als BIN bezeichnet, also als Bank Identification Number, und in neueren als Issuer Identification Number. Gemeint ist dasselbe: ein Wert, der dem Routingsystem sagt, welches Netzwerk und welcher Herausgeber gemeint sind. Anders als die Abkürzung vermuten lässt, ist das Präfix keine feste Ziffernzahl. Manche Bereiche belegen sechs Stellen, andere acht, und die Norm erlaubt ausdrücklich, dass sich die Länge je Bereich unterscheidet.

Der zweite Abschnitt sind die Kontoziffern. Sie werden vom Herausgeber vergeben und folgen keiner öffentlichen Regel. Die einzige Anforderung ist, dass die vollständige Nummer innerhalb des Herausgeberbereichs eindeutig bleibt. Es gibt also keinen Aufbau, aus dem sich etwa ein Kundensegment oder ein Eröffnungsdatum ablesen ließe, auch wenn in älteren Systemen gelegentlich solche Konventionen existierten. Für Außenstehende sind diese Ziffern undurchsichtig, und das ist beabsichtigt.

Der dritte Abschnitt ist die Prüfziffer, eine einzelne Ziffer ganz rechts. Sie wird nicht vom Herausgeber ausgedacht, sondern rechnerisch aus allen Ziffern davor abgeleitet, und zwar mit einer Modulo-zehn-Prüfsumme. Fällt beim Eintippen eine Ziffer falsch aus, passt die Prüfziffer nicht mehr zu ihrem Rumpf.

Abschnitt Wer vergibt ihn Wozu er dient Öffentlich erkennbar
Herausgeberpräfix Netzwerk zusammen mit dem Herausgeber Routing und Markenerkennung Ja, bereichsweise veröffentlicht
Kontoziffern Herausgeber Eindeutigkeit innerhalb des Bereichs Nein
Prüfziffer Arithmetik Erkennung von Tippfehlern Berechenbar, aber nicht aussagekräftig

Warum sind Kartennummern unterschiedlich lang?

Diese Frage hat eine historische und eine praktische Antwort. Historisch haben die einzelnen Netzwerke ihre Nummerierung zu unterschiedlichen Zeiten eingeführt, mit unterschiedlichen technischen Zwängen und unterschiedlichen Speichergrenzen. American Express baute auf fünfzehn Ziffern auf, Visa startete mit dreizehn und verlängerte später, Mastercard setzte sich bei sechzehn fest, und Diners Club arbeitete lange mit vierzehn.

Praktisch erlaubt die Norm heute bis zu neunzehn Stellen. Sechzehn ist die häufigste Länge, aber sie ist eine Konvention und keine Regel. Wer eine Prüfung schreibt, die genau sechzehn Ziffern verlangt, weist damit eine ganze Reihe gültiger Karten zurück: fünfzehnstellige American-Express-Nummern, ältere dreizehn- und vierzehnstellige Bestände und jene Bereiche, in denen die Netzwerke längere Bauformen für neue Kundensegmente vergeben haben.

Die richtige Konsequenz für Software ist, die Länge zu einem Attribut des erkannten Bereichs zu machen und nicht zu einer globalen Konstante. Genau deshalb gehen Längenprüfung und Präfixerkennung im Checkout Hand in Hand: Erst wenn klar ist, welchem Netzwerk eine Nummer zuzuordnen ist, lässt sich sagen, welche Länge zulässig ist. Der Netzwerkvergleich führt die üblichen Bereiche und ihre Längen auf.

Was verrät die erste Ziffer?

Die erste Ziffer, in der Norm als Major Industry Identifier bezeichnet, ordnet eine Nummer grob einem Wirtschaftszweig zu. Die Zuordnung lautet in Kurzform:

Erste Ziffer Branche
1 und 2 Fluggesellschaften
3 Reisen und Unterhaltung
4 und 5 Banken und Finanzwesen
6 Handel und Banken
7 Erdöl
8 Telekommunikation
9 Nationale Zuweisung

Diese Tabelle erklärt einige Gewohnheiten, die sonst rätselhaft wirken. Visa beginnt mit einer Vier, Mastercard liegt im Bereich von fünf und zwei, American Express nutzt die Drei gemeinsam mit JCB und Diners Club. Aus derselben Tabelle folgt aber auch die wichtigste Einschränkung: Die erste Ziffer erkennt kein Netzwerk. Sie erkennt eine Branche.

Wer eine Prüfung auf die erste Ziffer stützt, verwechselt eine grobe Kategorie mit einer feinen Zuordnung. Innerhalb der Drei liegen mehrere konkurrierende Netzwerke, und innerhalb der Bereiche mit vier und fünf reichen die Spannen von zwei bis zur Mitte der zwanziger Jahre. Eine belastbare Erkennung arbeitet daher mit Präfixbereichen, also mit Intervallen mehrstelliger Werte, und nicht mit einzelnen Ziffern.

Wie liest man eine gruppierte Kartennummer?

Die Gruppierung auf der Karte ist reine Lesbarkeit und hat nichts mit dem Datenmodell zu tun. Sechzehnstellige Nummern werden üblicherweise in vier Vierergruppen gedruckt, American Express in vier, sechs und fünf Ziffern, weil das auf der Karte optisch aufgeht, und viele Formulare erlauben zusätzlich Leerzeichen oder Bindestriche, damit Nutzer beim Abtippen nicht ins Stolpern kommen.

Für die Verarbeitung gilt zwei Regeln. Erstens: Trennzeichen sind Anzeige, nicht Inhalt. Eine Nummer wird beim Verlassen des Feldes normalisiert, indem Leerzeichen, Bindestriche und andere übliche Zeichen entfernt werden. Zweitens: Vor dem Bereinigen wird die vorherige Gruppierung nicht ausgewertet. Sie ist eine Bequemlichkeit für das Auge und darf niemals als Plausibilitätsprüfung herangezogen werden, denn Nutzer kopieren Nummern aus E-Mails, aus Screenshots oder aus dem Einzelhandel, wo jede andere Aufteilung vorkommen kann.

Wer den umgekehrten Weg geht und selbst eine Nummer anzeigt, sollte die Gruppierung des erkannten Netzwerks verwenden. Eine fünfzehnstellige Nummer in Vierergruppen zu drucken ist kein Fehler, sieht aber falsch aus, und in einer Support-Oberfläche ist die vertraute Darstellung hilfreich, weil Betreuer und Kunden dann über dieselbe Sicht auf dieselben Ziffern sprechen.

Formatierung ist keine Prüfung

Dies ist der Punkt, an dem sich viele Implementierungen verrennen. Reine Formatregeln sagen nur, ob eine Zeichenfolge wie eine Kartennummer aussieht. Sie sagen nichts darüber, ob eine Karte existiert, ob ein Konto offen ist oder ob der Eintippende berechtigt ist, die Karte zu verwenden. Eine Nummer mit passendem Präfix, passender Länge und gültiger Prüfziffer ist strukturell korrekt und wurde trotzdem möglicherweise niemals ausgegeben.

Daraus folgt eine unangenehme, aber nützliche Einsicht: Es existieren beliebig viele Nummern, die jede lokale Prüfung bestehen und die dennoch leerlaufen. Genau diese Eigenschaft macht erzeugte Testdaten brauchbar. Ein Erzeuger kann Vorlagen liefern, die alle Formatregeln einhalten, und jede davon ist garantiert synthetisch. Der Kartennummern-Generator liefert solche Werte mit Netzwerk, Länge und Gruppierung, die zur erwarteten Darstellung passen.

Für die Fehlermeldung im Formular heißt das: Formatfehler dürfen klar benannt werden, Karteneigenschaften nicht. Wer einem Nutzer mitteilt, seine Karte sei ungültig, obwohl nur eine Ziffer vertauscht wurde, verunsichert jemanden, dessen Karte völlig in Ordnung ist.

Für Entwickler: Eingaben bereinigen, ohne Informationen zu verlieren

Bereinigung ist der Schritt, in dem die meisten Fehler entstehen. Die Reihenfolge lautet:

  1. Leerraum am Anfang und Ende entfernen.
  2. Nur die ausdrücklich tolerierten Trennzeichen entfernen, üblicherweise Leerzeichen und Bindestriche. Wichtig ist, dass Buchstaben und Sonderzeichen nicht stillschweigend verschwinden, denn sonst wird aus einem offensichtlichen Tippfehler eine scheinbar gültige Zeichenfolge.
  3. Alles Weitere als Zeichenkette behandeln. Kartennummern sind keine ganzen Zahlen, und in Systemen mit numerischen Typen geht die führende Null verloren.
  4. Zuerst die Länge prüfen, weil sie sich aus dem erkannten Bereich ergibt.
  5. Erst zum Schluss die Prüfsumme rechnen.

Jede Stufe braucht eine eigene Meldung. Zu kurz ist etwas anderes als ein nicht unterstütztes Zeichen, und ein unbekanntes Präfix ist wieder etwas anderes als eine gescheiterte Prüfsumme. Wer alles in eine Meldung zusammenfasst, nimmt sich selbst die Möglichkeit, aus Supportberichten zu lernen. Die vollständige Abfolge und die zugehörigen Testfälle behandelt der Beitrag Kreditkartennummer prüfen.

Eine Nummer im Kartenwerkzeug prüfen

Um ein Gefühl für das Format zu bekommen, ist es am einfachsten, ein paar Werte zu erzeugen und sie Ziffer für Ziffer zu lesen. Der Kartennummern-Generator gibt zu jeder Nummer das Netzwerk aus, sodass die Zuordnung von Präfix, Länge und Prüfziffer unmittelbar nachvollziehbar ist. Vergleichen Sie zwei Netzwerke nebeneinander, achten Sie darauf, wo die Präfixgrenzen liegen, und ändern Sie anschließend eine Ziffer in der Mitte, um zu sehen, wie die Prüfsumme reagiert. Wer verstehen möchte, warum diese letzte Ziffer überhaupt funktioniert, findet die Rechnung im Beitrag zum Luhn Algorithmus.

Nächste Schritte

Halten Sie fest, dass das Format drei Aussagen liefert und drei andere ausdrücklich nicht. Es sagt, welcher Bereich betroffen ist, welche Länge zulässig ist und ob ein Übertragungsfehler wahrscheinlich ist. Es sagt nicht, ob die Karte existiert, ob sie gedeckt ist und ob der Nutzer sie besitzen darf. Wer diese Grenze sauber zieht, schreibt Prüfungen, die zu strenge Ablehnungen vermeiden, und Fehlermeldungen, die niemanden zu Unrecht beschuldigen.

Weiterlesen

Artikel zu Synthetischer Kreditkartennummern-Generator (Testkarten)