# ISO 8583

> ISO 8583 — padrão de mensagens de cartões (aquisição, autorização)

Padrão ISO publicado em 1987 que define o formato das mensagens trocadas entre os atores de cartões (terminal POS, PSP adquirente, scheme, emissor). Continua sendo o padrão dominante da autorização, da aquisição e da liquidação de cartões. Visa, Mastercard, CB e Amex usam todos ele.

_Categoria: technique_

---

## Definição

O **ISO 8583** é o padrão ISO (1987, revisado em 1993 e 2003) que define o formato das mensagens trocadas entre os atores do pagamento por cartão: terminal POS, PSP adquirente, switch da rede (Visa, Mastercard, CB) e banco emissor.

É o padrão dominante da autorização, da aquisição e da liquidação de cartões. Formato binário baseado em um MTI (_Message Type Indicator_, 4 dígitos: `0100` request, `0110` response…), um bitmap que indica os campos presentes e até 128 _data elements_. Concebido em 1987, continua incontornável — Visa (BASE I/II), Mastercard (MIP/MDS), CB, Amex, JCB e UnionPay usam todos ele, com variantes proprietárias.

## Estrutura de uma mensagem

```
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)
```

Uma mensagem tem cerca de 300 a 500 bytes, transmitida em menos de 200 ms.

## O ciclo de vida de uma transação

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

    Note over TPE,Em: AUTORIZAÇÃO (online, tempo real)
    TPE->>Acq: 0100 (auth request)
    Acq->>Scheme: 0100 (forward)
    Scheme->>Em: 0100 (route)
    Em->>Em: Decisão (fundos, fraude, SCA)
    Em-->>Scheme: 0110 (auth response, approve/decline)
    Scheme-->>Acq: 0110
    Acq-->>TPE: 0110 (exibe "approved")

    Note over TPE,Em: CLEARING (batch, fim do dia)
    Acq->>Scheme: 0200 (financial transaction batch)
    Scheme->>Em: 0220 (advice)
    Em-->>Scheme: 0230 (response)

    Note over TPE,Em: SETTLEMENT (D+1 ou +2)
    Scheme->>Em: Débito líquido (soma)
    Scheme->>Acq: Crédito líquido (soma - interchange - taxas)
    Acq->>Acq: Credita o lojista (D+1 ou +2)
```

Três etapas: a **autorização** (online em menos de um segundo), o **clearing** (batch diário) e o **settlement** (liquidação líquida entre emissor e adquirente via rede, em D+1 ou D+2).

## Variantes por rede

Cada rede deriva o ISO 8583 em seu próprio formato: Visa (BASE I para a auth, BASE II para o clearing), Mastercard (MIP + MDS), CB (próximo da Visa), Amex (proprietário), além de JCB, Discover e UnionPay. Um PSP adquirente multirredes (Stripe, Adyen, Worldline) deve, portanto, lidar com vários dialetos.

## ISO 8583 vs ISO 20022

| Aspecto | ISO 8583 (1987) | ISO 20022 (2004) |
|--------|------------------|-------------------|
| Formato | Bitmap binário | XML / JSON |
| Legibilidade | Baixa | Boa |
| Riqueza | Limitada | Muito rica |
| Latência | < 200 ms | Mais pesado (parsing XML) |
| Domínio | Cartões | Tudo (pagamentos, títulos, FX) |
| Adoção | Universal (cartões) | Universal (SEPA / SWIFT MX) |

O ISO 8583 resiste por quatro motivos: latência ultrabaixa (auth crítica em < 200 ms), compacidade (~300 bytes vs vários KB em XML), 40 anos de legado nos sistemas core e um custo de migração estimado em bilhões de dólares. Visa e Mastercard, no entanto, trabalham em uma transição gradual (Visa Direct e Mastercard Send já estão em ISO 20022), com um clearing de cartão em ISO 20022 previsto após 2030.

## Atores

- **Redes**: Visa, Mastercard, Amex, JCB, Discover, UnionPay, CB (FR).
- **Switches / processadores**: Worldline (FR), Nexi (IT), Fiserv, TSYS / Global Payments, FIS.
- **Ferramentas**: jPOS (a biblioteca Java open-source de referência), OpenISO8583.Net, iso8583py e HSMs Thales ou Utimaco para os criptogramas.

## O que o ISO 8583 não é

- **Não é um padrão universal de pagamento**: é específico para cartões; transferências e débitos diretos pertencem ao ISO 20022.
- **Não é um protocolo de transporte**: ele descreve o formato das mensagens, sendo o transporte TCP/IP (ou X.25 historicamente).
- **Não é exigido pelos novos trilhos**: FedNow, TIPS e SCT Inst estão em ISO 20022.
- **Não é criptografado por padrão**: são necessárias camadas adicionais (TLS, P2PE, HSM).
- **Não é estritamente padronizado**: cada rede tem sua variante ("sabor" Visa, Mastercard, CB).

## No ecossistema PSD2 / Open Finance

O ISO 8583 é invisível para os TPPs da PSD2 (que trabalham em API REST/JSON), mas onipresente no lado do cartão: os adquirentes (Stripe, Adyen) traduzem suas APIs REST para o ISO 8583, os emissores BaaS (Treezor, Swan, Solaris) traduzem o ISO 8583 recebido para suas APIs de negócio, e parte dos desafios 3DS por ele transita. Continua, portanto, fundamental para entender o pagamento por cartão, mesmo na era do Open Banking.

## Exemplos concretos

- **Stripe**: recebe uma solicitação de pagamento, traduz para ISO 8583 em direção à Visa BASE I, recebe o 0110 de aprovação e confirma ao lojista.
- **Treezor**: recebe um 0100 do switch de cartão, verifica saldo e scoring e devolve um 0110 approve/decline.
- **Worldline**: opera vários switches FR e UE que processam mais de 50 mi de transações por dia.
- **jPOS**: biblioteca open-source usada por centenas de processadores e fintechs emissoras.
- **Migração ISO 20022**: Visa Direct e Mastercard Send (push payments) já migrados, mas o 0100/0110 histórico permanecerá em 8583 até depois de 2030.
- **Dois mundos**: um desenvolvedor de fintech de crédito vê JSON/REST; um desenvolvedor de PSP adquirente vê bitmap 8583 em hexadecimal.

## Fontes

- [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)

---

Fonte: https://openfinanceguide.com/pt-br/glossary/iso-8583
