# Payload

Leia o envelope e os campos normalizados da transação.

## Envelope

- **`event`** `string`
  Nome do evento emitido.

- **`timestamp`** `string`
  ISO 8601 da montagem do payload.

- **`data`** `object`
  Projeção da transação. id é o uuid público.

Campos nulos são omitidos.

## Valores

`amount` e `amount_cents` são o mesmo inteiro; o mesmo vale para `fee` e `net_amount`.

- **`data.id`** `uuid`
  Uuid público da transação.

- **`data.amount_cents`** `integer`
  Valor em centavos inteiros.

- **`data.fee_cents`** `integer` (opcional)
  Tarifa em centavos, quando presente.

- **`data.net_amount_cents`** `integer` (opcional)
  Valor líquido em centavos, quando presente.

## Campos condicionais

`payment_method` vem em minúsculas. PIX, pagador e end-to-end só aparecem se houver valor.

- `correlation_id`
- `provider_transaction_id`
- `refunded_amount`
- `refunded_amount_cents`
- `pix_code`
- `pix_expiration`
- `refunded_at`
- `fee`
- `fee_cents`
- `net_amount`
- `net_amount_cents`
- `end_to_end_id`
- `payer`
- `error_code`
- `error_message`
- `paid_at`
- `failed_at`

## Exemplos paid e failed

**Exemplos de payload**

```json title="transaction.paid"
{
  "event": "transaction.paid",
  "timestamp": "2026-03-13T17:05:32.000Z",
  "data": {
    "id": "4d78d8ca-a9f1-4c2a-bf15-7f8ca71e3a70",
    "external_id": "GP-9a5f1eb3-6885-4f26-93f3-3c0954d0f42f",
    "type": "cash_in",
    "status": "paid",
    "amount": 1500,
    "amount_cents": 1500,
    "fee": 15,
    "fee_cents": 15,
    "net_amount": 1485,
    "net_amount_cents": 1485,
    "currency": "BRL",
    "payment_method": "pix",
    "end_to_end_id": "E123456782026031317000000001",
    "description": "Assinatura mensal",
    "payer": {
      "name": "Maria de Souza",
      "document": "12345678901",
      "email": "maria@example.com"
    },
    "paid_at": "2026-03-13T17:05:32.000Z",
    "created_at": "2026-03-13T17:00:00.000Z"
  }
}
```

```json title="transaction.failed"
{
  "event": "transaction.failed",
  "timestamp": "2026-03-13T17:10:00.000Z",
  "data": {
    "id": "4d78d8ca-a9f1-4c2a-bf15-7f8ca71e3a70",
    "external_id": "GP-9a5f1eb3-6885-4f26-93f3-3c0954d0f42f",
    "type": "cash_in",
    "status": "failed",
    "amount": 1500,
    "amount_cents": 1500,
    "currency": "BRL",
    "payment_method": "pix",
    "error_code": "PROVIDER_FAILED",
    "error_message": "Payment failed via webhook",
    "failed_at": "2026-03-13T17:10:00.000Z",
    "created_at": "2026-03-13T17:00:00.000Z"
  }
}
```
