---
# System prepended metadata

title: Paylods do cardprocessor

---

# Paylods do cardprocessor

Aqui está um esboço do que eu planejo para o modelo de dados do cardprocessor.

Levando em consideração os seguintes pontos:

- Cada ISO terá um merchant_id no adquirente.
- Cada ISO terá um terminal_id por modelo (d195, a920) no adquirente.
- A partir dos ids hash de merchant/terminal, obtemos o ISO, e a partir desse ISO temos as credenciais do adquirente que serão enviadas nas mensagens ISO8583.
- A partir dos ids hash de merchant/terminal, obtemos o ISO, e a partir desse ISO temos as tabelas e chaves que devem descer para o terminal.

## Acquirer

Guarda informações do adquirente.

```json=
{
    "id": "pagseguro",
    "name": "Pagseguro",
    "created_at":"2019-12-02T19:50:08.698666202Z",
    "updated_at":"2019-12-02T19:50:08.698666258Z"
}
```

## ISO

Guarda informações do ISO.

O campo acquirer_credentials contém as credenciais desse ISO no acquirer.

O campo active informa se esse ISO está ativo, se o ISO não estiver ativo nenhuma transação abaixo dele vai passar (seria o equivalente a desligar todos os merchants desse ISO).

```json=
{
    "id": "leomadeiras",
    "name": "Leo Madeiras",
    "soft_descriptor": "Soft descriptor da Leo Madeiras",
    "acquirer_credentials": [
        {
            "acquirer_id": "pagseguro",
            "terminal_model": "d195",
            "merchant_id": "T4593125858941A",
            "terminal_id": "15112PP3",
            "table_version": "table_version",
            "table_data": "table_data",
            "keys_version": "keys_version",
            "keys_data": "keys_data"
        },
        {
            "acquirer_id": "pagseguro",
            "terminal_model": "a920",
            "merchant_id": "T4593125858941A",
            "terminal_id": "15112PP4",
            "table_version": "table_version",
            "table_data": "table_data",
            "keys_version": "keys_version",
            "keys_data": "keys_data"
        },
    ],
    "active": true,
    "created_at":"2019-12-02T19:50:08.698666202Z",
    "updated_at":"2019-12-02T19:50:08.698666258Z"
}
```

## Merchant

Guarda informações do merchant.

Os campos name, document_number, city e state são necessários para o recibo que é enviado via sms.

O campo mcc é necessário para envio na mensagem ISO8583 para o adquirente.

O campo active informa se esse merchant está ativo, se o merchant não estiver ativo nenhuma transação abaixo dele vai passar (seria o equivalente a desligar todos os terminais desse merchant).

```json=
{
    "id": "HS1234567890123",
    "iso_id": "leomadeiras",
    "name": "João Marceneiro",
    "document_number": "27.188.579/0001-14",
    "city": "São Paulo",
    "state": "SP",
    "mcc": "1234",
    "active": true,
    "created_at":"2019-12-02T19:50:08.698666202Z",
    "updated_at":"2019-12-02T19:50:08.698666258Z"
}
```


## Terminal

Guarda informações do terminal.

O campo model é necessário para obter as informações de credenciais/tabelas/chaves do ISO.

O campo active informa se esse terminal está ativo, se o terminal não estiver ativo nenhuma transação desse terminal vai passar.

```json=
{
    "id": "HS123456",
    "merchant_id": "HS1234567890123",
    "model": "d195",
    "serial_number": "1470000489",
    "active": true,
    "created_at":"2019-12-02T19:50:08.698666202Z",
    "updated_at":"2019-12-02T19:50:08.698666258Z"
}
```

## Transaction

Guarda informações da transação.

```json=
{
    "id": "01DZS7DQTX1B3P4G5CKHPD6VVH",
    "acquirer_id": "pagseguro",
    "iso_id": "leomadeiras",
    "merchant_id": "HS1234567890123",
    "terminal_id": "HS123456",
    "transaction_id": null,
    "operation": "purchase",
    "payment_method": "credit",
    "amount": 200,
    "transmission_date": "0129203616",
    "nsu": "000813",
    "capture_method": "emv",
    "installments": 1,
    "cardholder_name": "JOAO SILVA",
    "card_first_digits": "123456",
    "card_last_digits": "1234",
    "card_brand": "MASTERCARD",
    "card_app_name": "Credito Nubank",
    "card_aid": "A0000000041010",
    "card_pin_mode": "offline",
    "fingerprint": "e4c32692487b5350a1156f1dc8aa0ec2cfd67dd0",
    "app_id": "zScAKNY5t1wDn0hDZGix1kE2jk",
    "library_version": "1.08a",
    "app_version": "13",
    "serial_number": "1470000489",
    "manufacturer": "PAX",
    "model": "d195",
    "emv_data": "9F2608D083A64B8F2559189F2701809F10120014A74003020000000000000000000000FF9F3704EF682A679F36020118950500000080009A032001299C01009F02060000000001005F2A020986820239009F1A0200769F03060000000000009F34034403028F01069F3303E0F0C89F1C04313233349F3501229F1E0830303030303132338407A00000000410109F090200029F4104000000089F6E0700760000303000500A4D6173746572636172649F1101019F120E4372656469746F204E7562616E6B4F07A0000000041010",
    "second_emv_data": "9F2608D083A64B8F2559189F2701809F10120014A74003020000000000000000000000FF9F3704EF682A679F36020118950500000080009A032001299C01009F02060000000001005F2A020986820239009F1A0200769F03060000000000009F34034403028F01069F3303E0F0C89F1C04313233349F3501229F1E0830303030303132338407A00000000410109F090200029F4104000000089F6E0700760000303000500A4D6173746572636172649F1101019F120E4372656469746F204E7562616E6B4F07A0000000041010",
    "status": "confirmed",
    "metadata": {},
    "issuer_transmission_date": "0129203525",
    "issuer_authorizer_nsu": "000420002559",
    "issuer_authorization_code": "000732",
    "issuer_emv_data": "8A023030",
    "created_at":"2019-12-02T19:50:08.698666202Z",
    "updated_at":"2019-12-02T19:50:08.698666258Z"
}
```
