# ISO 8583

ISO 8583 (Standard for Financial Transaction Card Originated Messages – Interchange message specifications, deutsch „Nachrichten in Verbindung mit Bankkarten – Beschreibung des Nachrichtenaustausches“) ist ein Standard der Internationalen Organisation für Normung (ISO), der festlegt, wie elektronische Zahlungskarten-Transaktionen zwischen Computersystemen ausgetauscht werden.
Eine kartenbasierte Transaktion muss normalerweise zwischen mehreren Computersystemen ausgetauscht werden. Zum Beispiel muss eine in einem Ladengeschäft ausgeführte Bezahlung vom Kassenterminal beim Händler durch ein oder mehrere Händlernetze zu derjenigen ausgebenden Bank weitergeleitet werden, die das Konto des Karteninhabers führt. Die Transaktion transportiert Informationen über ihre Art, die verwendete Karte, den Händler, den Betrag, Sicherheitsinformationen usw. Die Antwort, die die Transaktion bestätigt oder ablehnt, muss auf dem gleichen Weg an das Kassenterminal zurückgegeben werden.
ISO 8583 definiert ein Nachrichtenformat und einen Kommunikationsfluss, damit unterschiedliche Systeme diese Transaktionen untereinander austauschen können. Die meisten Auszahlungen von Geldautomaten verwenden ISO 8583 an irgendeiner Stelle der Kommunikationskette, ebenso wie Kartenzahlung in Geschäften. Insbesondere basieren sowohl Mastercard- als auch VISA-Transaktionen auf ISO 8583, ebenso wie viele andere Institutionen und Netze.
Vom Karteninhaber ausgelöste Transaktionen umfassen Kauf, Rücknahme, Einzahlung, Rückerstattung, Saldoabfrage, Auszahlung und Überweisung. ISO 8583 definiert außerdem System-an-System-Nachrichten für den Austausch sicherer Schlüssel, Kontenabgleich und andere verwaltungstechnische Zwecke.
Obwohl ISO 8583 einen allgemeinen Standard definiert, wird er normalerweise nicht direkt von Systemen oder Netzen verwendet. Stattdessen gibt es eine Vielzahl an Implementierungen in verschiedenen Transaktions-Netzwerken, die zwar alle auf ISO 8583 basieren, jedoch jeweils eigene Anpassungen vorgenommen haben.

## Nachrichtenstruktur

Eine ISO-8583-Nachricht besteht aus folgenden Teilen:
* Ein Message Type Indicator kennzeichnet die Art der Nachricht.
* Ein oder mehrere Bitmaps zeigen an, welche Datenelemente vorhanden sind.
* Ein oder mehrere Data Elements sind die einzelnen Felder der Nachricht.

### Message Type Indicator (MTI)

Der Message Type Indicator (MTI, „Nachrichtentypkennzeichen“) ist ein vierstelliges numerisches Feld, das die Hauptfunktion der Nachricht klassifiziert. Dieses Kennzeichen umfasst die verwendete Version von ISO 8583, eine Nachrichtenklasse und eine Nachrichtenunterklasse.

#### ISO-8583-Version

Unterschiedliche Versionen des ISO-8583-Standards werden in der ersten Stelle des Nachrichtentypkennzeichens gekennzeichnet.
| Code | Bedeutung | Bemerkung |
| 0xxx | ISO 8583:1987 | |
| 1xxx | ISO 8583:1993 | |
| 2xxx | ISO 8583:2003 | |
| 2xxx | ISO 8583:2023 | Die Versionsnummer 2 wurde wieder verwendet |
| 3xxx | von der ISO reserviert | |
| 4xxx | von der ISO reserviert | |
| 5xxx | von der ISO reserviert | |
| 6xxx | von der ISO reserviert | |
| 7xxx | von der ISO reserviert | |
| 8xxx | Nationale Nutzung | |
| 9xxx | Private Nutzung | |
Die Position von Feldern variiert in unterschiedlichen Versionen des Standards. Zum Beispiel werden die Währungselemente der Versionen von 1987 und 1993 in der Version von 2003 nicht mehr verwendet, weil diese die Währung jeweils als Teil der einzelnen Beträge enthält.

#### Nachrichtenklasse

ISO 8583 unterscheidet folgende Nachrichtenklassen.
| Kennzeichen | Klasse | Bedeutung |
| x1xx | Authorization Message | Authentifizierung und Autorisierung |
| x2xx | Financial Message | finanzielle Transaktionen (Auszahlungen usw.) |
| x3xx | File Actions Message | Austausch von Dateien |
| x4xx | Reversal Message | Stornierungen |
| x5xx | Reconciliation Message | Datenabgleich |
| x6xx | Administrative Message | interne Nachrichten für die Systemadministration |
| x8xx | Network Management Message | interne Nachrichten für die Netzadministration |

#### Nachrichtenunterklassen

ISO 8583 unterteilt die Nachrichtenklassen weiter in folgende Unterklassen.
* xx00 für Anforderungen, denen zugestimmt werden muss.
* xx10 für Antworten auf Anforderungen.
* xx20 für Hinweise zu Aktionen, die bereits ausgeführt wurden. Sie benötigt keine Zustimmung, aber eine Antwort.
* xx30 für Antworten auf Hinweise.
Die vierte Stelle wird in wiederholten Anforderungen um 1 erhöht (außer in x300-Nachrichten). Zum Beispiel ist 1100 eine Anforderung zur Autorisierung und 1101 deren Wiederholung.

### Bitmaps

Bitmaps sind eine Indextechnik, die in ISO-8583-Nachrichten dazu verwendet wird, anzuzeigen, welche Datenelemente vorhanden sind.
Eine Nachricht enthält mindestens eine Bitmap, die erste Bitmap (primary bitmap), die das Vorhandensein der Datenelemente 1 bis 64 anzeigt.
Datenelement 1 kann eine zweite Bitmap enthalten, daher gibt das erste Bit in der ersten Bitmap an, ob eine zweite Bitmap existiert. Die zweite Bitmap zeigt die Existenz der Datenelemente 65 bis 128 an.
In der neuesten Version des ISO-8583-Standards können Nachrichten bis zu drei Bitmaps enthalten.

### Datenelemente

Datenelemente (Data Elements) enthalten die eigentlichen Transaktionsdaten. Der ursprüngliche Standard von 1987 definierte bis zu 128 Datenelemente, spätere Ausgaben erweiterten dies auf bis zu 192.
Für jedes Datenelement sind Bedeutung und Format spezifiziert. ISO 8583 enthält außerdem einige Mehrzweck- und system-spezifische Datenelemente, die von abgeleiteten Standards unterschiedliche verwendet werden.

#### Format der Datenelemente

Jedes Datenelement hat ein Standardformat, bestehend aus dem erlaubten Inhalt des Feldes (numerisch, binär usw.) und seiner zulässigen Länge. Diese werden gesondert als „erlaubter Inhalt“ (allowed content), gefolgt von „Länge“ (length) angegeben, wie in den folgenden Abschnitten beschrieben.

#### Attribute für den Feldtyp

| Abkürzung | Bedeutung |
| a | Buchstaben (Alpha) inklusive Leerzeichen |
| n | nur numerische Werte |
| s | nur Sonderzeichen |
| an | Alphanumerisch (Buchstaben und Ziffern) |
| as | nur Buchstaben & Sonderzeichen |
| ns | nur Ziffern und Sonderzeichen |
| b | Binärdaten |
| ans | Buchstaben, Ziffern und Sonderzeichen |

#### Feldlänge

Die Länge eines Datenelements kann entweder fest oder variabel sein. Feldern variabler Länge ist in einer Nachricht ein Längenkennzeichen (length indicator) vorangestellt.

##### Datenelemente fester Länge

Die Längen von Datenelementen fester Länge sind im Standard festgelegt, daher wird kein Längenkennzeichen in der Nachricht benötigt.
Felder fester Länge werden im Standard dadurch gekennzeichnet, dass ihrem Typkennzeichen die Länge angehängt wird.
Z. B. hat das Datenelement 3 das Format „n6“, das ein Zahlenfeld fester Länge mit 6 Ziffern definiert.

##### Datenelemente variabler Länge

Andere Datenelemente können variable Längen haben, daher ist ihnen in der Nachricht ein Längenkennzeichen vorangestellt. Das Längenkennzeichen hat selbst eine definierte Länge: So reicht zum Beispiel Längenkennzeichen der Länge 1 nur für variable Feldlängen von 1 bis 9. Ein Längenkennzeichen der Länge 3 reicht für Feldlängen bis zu 999.
Variable Felder werden im Standard durch zwei Punkte „..“, gefolgt von der Maximallänge des Feldes definiert. Das Längenkennzeichen wird durch eine Anzahl von „Ls“ dargestellt, die der Länge des Längenkennzeichens entsprechen.
Zum Beispiel hat das Datenelement 2 das Format „n..19, LLVAR“. Das bedeutet, dass das Feld höchstens 19 Ziffern enthält und ein zweistelliges Längenkennzeichen besitzt.

### Definitionen

Im Folgenden sind einige wichtige Datenfelder beschrieben.

#### Nachrichtentyp

Der Nachrichtentyp (Message Type Indicator, MTI) wird für alle ISO-8583-Nachrichten benötigt, um die Nachrichtenklasse zu bestimmen. Er hat das Format „n4“, ist also eine natürliche Dezimalzahl der Länge 4.
Die folgende Tabelle zeigt eine Auswahl von Nachrichtentypen.
| MTI | Nachrichtentyp | Beschreibung |
| x100 | Authorization Request | Aufforderung zur Autorisierung |
| x101 | Repeat Authorization Request | Wiederholung der Aufforderung zur Autorisierung |
| x110 | Authorization Response | Autorisierungs-Antwort |
| x120 | Authorization Advice | Hinweis zur Autorisierung |
| x130 | Authorization Advice Response | Antwort auf Hinweis zur Autorisierung |
| x200 | Financial Request | Anforderung einer Finanztransaktion |
| x210 | Financial Response | Antwort auf Finanztransaktion |
| x220 | Financial Advice | Hinweis zu einer Finanztransaktion |
| x230 | Financial Advice Response | Antwort auf Hinweis zu einer Finanztransaktion |
| x300 | Acquirer File Update Request | Anforderung zur Aktualisierung einer Käuferdatei (Kundendaten) |
| x302 | Issuer File Update Request | Anforderung zur Aktualisierung einer Ausstellerdatei (Bankdaten) |
| x310 | Acquirer File Update Response | Antwort zur Aktualisierung einer Käuferdatei |
| x312 | Issuer File Update Response | Antwort zur Aktualisierung einer Ausstellerdatei |
| x320 | Acquirer File Update Advice | Hinweis zur Aktualisierung einer Käuferdatei |
| x322 | Issuer File Update Advice | Hinweis zur Aktualisierung einer Ausstellerdatei |
| x330 | Acquirer File Update Advice Response | Antwort auf Hinweis zur Aktualisierung einer Käuferdatei |
| x332 | Issuer File Update Advice Response | Antwort auf Hinweis zur Aktualisierung einer Ausstellerdatei |
| x400 | Acquirer Reversal Request | Stornierungsanforderung des Käufers (Kunden) |
| x401 | Acquirer Reversal Request | Wiederholung einer Stornierungsanforderung des Käufers (Kunden) |
| x402 | Issuer Reversal Request | Stornierungsanforderung des Ausstellers (Bank) |
| x410 | Acquirer Reversal Request Response | Antwort auf Stornierungsanforderung des Käufers |
| x412 | Issuer Reversal Request Response | Antwort auf Stornierungsanforderung des Ausstellers |
| x420 | Acquirer Reversal Advice | Hinweis zur Stornierung durch den Käufer |
| x422 | Issuer Reversal Advice | Hinweis zur Stornierung durch den Aussteller |
| x430 | Acquirer Reversal Advice Response | Antwort auf Hinweis zur Stornierung durch den Käufer |
| x432 | Issuer Reversal Advice Response | Antwort auf Hinweis zur Stornierung durch den Aussteller |
| x5xx | Reconciliation Request Messages | Anforderung zum Abgleich |
| x6xx | Administrative Request Messages | verwaltungstechnische Nachricht |
| x800 | Network Management Request | Nachricht zur Netzverwaltung |
| x810 | Network Management Request Response | Antwort für Netzverwaltung |