Définition
ISO 8583 est le standard ISO (1987, révisé en 1993 et 2003) qui définit le format des messages échangés entre les acteurs du paiement carte : TPE/POS, PSP acquéreur, switch du réseau (Visa, Mastercard, CB) et banque émettrice.
C'est le standard dominant de l'autorisation, de l'acquisition et du règlement carte. Format binaire reposant sur un MTI (Message Type Indicator, 4 chiffres : 0100 request, 0110 response…), un bitmap indiquant les champs présents, et jusqu'à 128 data elements. Conçu en 1987, il reste incontournable — Visa (BASE I/II), Mastercard (MIP/MDS), CB, Amex, JCB et UnionPay l'utilisent tous, avec des variantes propriétaires.
Structure d'un message
MTI : 0100 (Authorization Request)
Bitmap : 7234050108E18000... (indique champs présents)
DE2 PAN : 4242424242424242
DE3 Proc Code : 000000 (purchase)
DE4 Amount : 000000050000 (50.00 €)
DE7 Trans DT : 0419103045 (avril 19, 10:30:45)
DE11 STAN : 123456 (System Trace Audit Number)
DE22 POS Entry : 051 (chip + PIN)
DE32 Acquirer : 12345678 (BIN PSP)
DE41 TID : 00012345 (terminal)
DE42 MID : 123456789012345 (merchant)
DE49 Currency : 978 (EUR)
DE52 PIN Block : ... (encrypted)
DE55 EMV Data : 9F26... (chip data)Un message fait environ 300 à 500 octets, transmis en moins de 200 ms.
Le cycle de vie d'une transaction
Trois étapes : l'autorisation (online en moins d'une seconde), le clearing (batch quotidien) et le settlement (règlement net entre émetteur et acquéreur via le réseau, en J+1 ou J+2).
Variantes par réseau
Chaque réseau dérive ISO 8583 dans son propre format : Visa (BASE I pour l'auth, BASE II pour le clearing), Mastercard (MIP + MDS), CB (proche de Visa), Amex (propriétaire), ainsi que JCB, Discover et UnionPay. Un PSP acquéreur multi-réseaux (Stripe, Adyen, Worldline) doit donc gérer plusieurs dialectes.
ISO 8583 vs ISO 20022
| Aspect | ISO 8583 (1987) | ISO 20022 (2004) |
|---|---|---|
| Format | Binaire bitmap | XML / JSON |
| Lisibilité | Faible | Bonne |
| Richesse | Limitée | Très riche |
| Latence | < 200 ms | Plus lourd (parsing XML) |
| Domaine | Cartes | Tout (paiements, titres, FX) |
| Adoption | Universelle (cartes) | Universelle (SEPA / SWIFT MX) |
ISO 8583 résiste pour quatre raisons : latence ultra-faible (auth critique en < 200 ms), compacité (~300 octets vs plusieurs Ko en XML), 40 ans de legacy dans les systèmes core, et un coût de migration estimé en milliards de dollars. Visa et Mastercard travaillent toutefois sur une bascule progressive (Visa Direct et Mastercard Send sont déjà en ISO 20022), avec un clearing carte en ISO 20022 envisagé après 2030.
Acteurs
- Réseaux : Visa, Mastercard, Amex, JCB, Discover, UnionPay, CB (FR).
- Switches / processeurs : Worldline (FR), Nexi (IT), Fiserv, TSYS / Global Payments, FIS.
- Outils : jPOS (la librairie open-source Java de référence), OpenISO8583.Net, iso8583py, et des HSM Thales ou Utimaco pour les cryptogrammes.
Ce qu'ISO 8583 n'est pas
- Pas un standard universel de paiement : il est spécifique aux cartes ; virements et prélèvements relèvent d'ISO 20022.
- Pas un protocole de transport : il décrit le format des messages, le transport étant TCP/IP (ou X.25 historiquement).
- Pas requis pour les nouveaux rails : FedNow, TIPS et SCT Inst sont en ISO 20022.
- Pas chiffré par défaut : il faut des couches additionnelles (TLS, P2PE, HSM).
- Pas strictement standardisé : chaque réseau a sa variante (« parfum » Visa, Mastercard, CB).
Dans l'écosystème PSD2 / Open Finance
ISO 8583 est invisible pour les TPP DSP2 (qui travaillent en API REST/JSON), mais omniprésent côté carte : les acquéreurs (Stripe, Adyen) traduisent leurs API REST vers ISO 8583, les émetteurs BaaS (Treezor, Swan, Solaris) traduisent l'ISO 8583 reçu vers leurs API métier, et une partie des challenges 3DS y transite. Il reste donc fondamental pour comprendre le paiement carte, même à l'ère de l'Open Banking.
Exemples concrets
- Stripe : reçoit une demande de paiement, la traduit en ISO 8583 vers Visa BASE I, reçoit le 0110 d'approbation, confirme au marchand.
- Treezor : reçoit un 0100 du switch carte, vérifie solde et scoring, renvoie un 0110 approve/decline.
- Worldline : opère plusieurs switches FR et EU traitant plus de 50 M de transactions par jour.
- jPOS : librairie open-source utilisée par des centaines de processeurs et fintechs émettrices.
- Migration ISO 20022 : Visa Direct et Mastercard Send (push payments) déjà migrés, mais le 0100/0110 historique restera en 8583 jusqu'après 2030.
- Deux mondes : un développeur de fintech crédit voit du JSON/REST ; un développeur PSP acquéreur voit du bitmap 8583 en hexadécimal.