# ISO 8583

> ISO 8583 — estándar de mensajes de tarjetas (adquirencia, autorización)

Estándar ISO publicado en 1987 que define el formato de los mensajes intercambiados entre los actores de tarjetas (terminal POS, PSP adquirente, scheme, emisor). Sigue siendo el estándar dominante de la autorización, la adquirencia y la liquidación de tarjetas. Visa, Mastercard, CB y Amex lo usan todos.

_Categoría: technique_

---

## Definición

**ISO 8583** es el estándar ISO (1987, revisado en 1993 y 2003) que define el formato de los mensajes intercambiados entre los actores del pago con tarjeta: terminal POS, PSP adquirente, switch de la red (Visa, Mastercard, CB) y banco emisor.

Es el estándar dominante de la autorización, la adquirencia y la liquidación de tarjetas. Formato binario basado en un MTI (_Message Type Indicator_, 4 dígitos: `0100` request, `0110` response…), un bitmap que indica los campos presentes y hasta 128 _data elements_. Diseñado en 1987, sigue siendo ineludible — Visa (BASE I/II), Mastercard (MIP/MDS), CB, Amex, JCB y UnionPay lo usan todos, con variantes propietarias.

## Estructura de un mensaje

```
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 mensaje pesa aproximadamente de 300 a 500 bytes, transmitido en menos de 200 ms.

## El ciclo de vida de una transacción

```mermaid
sequenceDiagram
    autonumber
    participant TPE as Terminal POS
    participant Acq as PSP adquirente
    participant Scheme as Scheme<br/>(Visa BASE I)
    participant Em as Emisor

    Note over TPE,Em: AUTORIZACIÓN (online, tiempo real)
    TPE->>Acq: 0100 (auth request)
    Acq->>Scheme: 0100 (forward)
    Scheme->>Em: 0100 (route)
    Em->>Em: Decisión (fondos, fraude, SCA)
    Em-->>Scheme: 0110 (auth response, approve/decline)
    Scheme-->>Acq: 0110
    Acq-->>TPE: 0110 (muestra "approved")

    Note over TPE,Em: CLEARING (batch, fin del día)
    Acq->>Scheme: 0200 (financial transaction batch)
    Scheme->>Em: 0220 (advice)
    Em-->>Scheme: 0230 (response)

    Note over TPE,Em: SETTLEMENT (T+1 o +2)
    Scheme->>Em: Débito neto (suma)
    Scheme->>Acq: Crédito neto (suma - interchange - comisiones)
    Acq->>Acq: Abona al comercio (T+1 o +2)
```

Tres etapas: la **autorización** (online en menos de un segundo), el **clearing** (batch diario) y el **settlement** (liquidación neta entre emisor y adquirente vía red, en T+1 o T+2).

## Variantes por red

Cada red deriva ISO 8583 en su propio formato: Visa (BASE I para la auth, BASE II para el clearing), Mastercard (MIP + MDS), CB (cercano a Visa), Amex (propietario), así como JCB, Discover y UnionPay. Un PSP adquirente multirred (Stripe, Adyen, Worldline) debe, por tanto, gestionar varios dialectos.

## ISO 8583 vs ISO 20022

| Aspecto | ISO 8583 (1987) | ISO 20022 (2004) |
|--------|------------------|-------------------|
| Formato | Bitmap binario | XML / JSON |
| Legibilidad | Baja | Buena |
| Riqueza | Limitada | Muy rica |
| Latencia | < 200 ms | Más pesado (parsing XML) |
| Dominio | Tarjetas | Todo (pagos, valores, FX) |
| Adopción | Universal (tarjetas) | Universal (SEPA / SWIFT MX) |

ISO 8583 resiste por cuatro razones: latencia ultrabaja (auth crítica en < 200 ms), compacidad (~300 bytes vs varios KB en XML), 40 años de legado en los sistemas core y un coste de migración estimado en miles de millones de dólares. Visa y Mastercard, no obstante, trabajan en una transición gradual (Visa Direct y Mastercard Send ya están en ISO 20022), con un clearing de tarjeta en ISO 20022 previsto después de 2030.

## Actores

- **Redes**: Visa, Mastercard, Amex, JCB, Discover, UnionPay, CB (FR).
- **Switches / procesadores**: Worldline (FR), Nexi (IT), Fiserv, TSYS / Global Payments, FIS.
- **Herramientas**: jPOS (la biblioteca Java open-source de referencia), OpenISO8583.Net, iso8583py y HSM Thales o Utimaco para los criptogramas.

## Lo que ISO 8583 no es

- **No es un estándar universal de pago**: es específico de las tarjetas; transferencias y adeudos directos corresponden a ISO 20022.
- **No es un protocolo de transporte**: describe el formato de los mensajes, siendo el transporte TCP/IP (o X.25 históricamente).
- **No es necesario para los nuevos rails**: FedNow, TIPS y SCT Inst están en ISO 20022.
- **No está cifrado por defecto**: hacen falta capas adicionales (TLS, P2PE, HSM).
- **No está estrictamente estandarizado**: cada red tiene su variante ("sabor" Visa, Mastercard, CB).

## En el ecosistema PSD2 / Open Finance

ISO 8583 es invisible para los TPP de la PSD2 (que trabajan en API REST/JSON), pero omnipresente del lado de la tarjeta: los adquirentes (Stripe, Adyen) traducen sus API REST a ISO 8583, los emisores BaaS (Treezor, Swan, Solaris) traducen el ISO 8583 recibido a sus API de negocio, y parte de los desafíos 3DS transitan por él. Sigue siendo, por tanto, fundamental para entender el pago con tarjeta, incluso en la era del Open Banking.

## Ejemplos concretos

- **Stripe**: recibe una solicitud de pago, la traduce a ISO 8583 hacia Visa BASE I, recibe el 0110 de aprobación y confirma al comercio.
- **Treezor**: recibe un 0100 del switch de tarjeta, comprueba saldo y scoring y devuelve un 0110 approve/decline.
- **Worldline**: opera varios switches FR y UE que procesan más de 50 M de transacciones al día.
- **jPOS**: biblioteca open-source usada por cientos de procesadores y fintech emisoras.
- **Migración ISO 20022**: Visa Direct y Mastercard Send (push payments) ya migrados, pero el 0100/0110 histórico seguirá en 8583 hasta después de 2030.
- **Dos mundos**: un desarrollador de fintech de crédito ve JSON/REST; un desarrollador de PSP adquirente ve bitmap 8583 en hexadecimal.

## Fuentes

- [ISO 8583 — Wikipedia](https://en.wikipedia.org/wiki/ISO_8583) — Wikipedia
- [ISO 8583:1987 — Bank card originated messages](https://www.iso.org/standard/15870.html) — ISO, 1987
- [A Guide To ISO 8583: What You Should Know](https://www.ir.com/guides/introduction-to-iso-8583) — IR (Integrated Research)

---

Fuente: https://openfinanceguide.com/es/glossary/iso-8583
