> ## Documentation Index
> Fetch the complete documentation index at: https://docs.noxpay.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Objeto de Transação

> O envelope comum retornado por todo GET de registro único e embutido em webhooks e lançamentos do extrato.

Todo response de `GET /{resource}/{id}` e todo payload de webhook usam este envelope. O objeto `attributes` varia por template — consulte as páginas de cada recurso para as tabelas completas de campos.

## Estrutura

```json theme={null}
{
  "end2end": "NOXabc123",
  "component": "depositpix_v2",
  "state": "QRCODE",
  "template": "crossramp_checkout",
  "created_at": "2024-05-01T12:00:00Z",
  "updated_at": "2024-05-01T12:01:00Z",
  "status": {
    "en": "Pending",
    "pt": "Pendente"
  },
  "substatus": {
    "en": "Awaiting Payment",
    "pt": "Aguardando Pagamento"
  },
  "message": {
    "en": "QR code generated; awaiting customer payment confirmation",
    "pt": "QR code gerado; aguardando confirmação de pagamento do cliente"
  },
  "error_message": { "en": "", "pt": "" },
  "attributes": { }
}
```

## Campos

| Campo           | Tipo   | Descrição                                                         |
| --------------- | ------ | ----------------------------------------------------------------- |
| `end2end`       | string | Identificador único da transação (`NOX...`)                       |
| `component`     | string | Etapa atual no fluxo interno do processo                          |
| `state`         | string | Estado bruto do componente atual                                  |
| `template`      | string | Nome do template do processo                                      |
| `created_at`    | string | Timestamp de criação em ISO 8601                                  |
| `updated_at`    | string | Timestamp da última atualização em ISO 8601                       |
| `status`        | object | Rótulo de status amplo `{ "en": "...", "pt": "..." }`             |
| `substatus`     | object | Rótulo de status por etapa `{ "en": "...", "pt": "..." }`         |
| `message`       | object | Mensagem explicativa do estado atual                              |
| `error_message` | object | Mensagem de erro quando aplicável — strings vazias caso contrário |
| `attributes`    | object | Todos os campos visíveis desta transação — varia por template     |

## Usando status vs substatus

Use `status` para controlar o estado de alto nível da UI (ex: exibir um spinner, tela de sucesso, tela de erro). Use `substatus` para exibição mais granular — por exemplo, distinguir "Awaiting Payment" de "KYC Step Up Pending", ambos com `status = Pending`.

## Respostas de lista

Todos os endpoints de lista (`GET /v2/crossramp_checkouts`, `GET /v2/onramps`, etc.) retornam os mesmos objetos de transação dentro de um array `results`, envolto em um envelope de paginação:

```json theme={null}
{
  "version": "v2",
  "total": 42,
  "limit": 20,
  "offset": 0,
  "results": [ ]
}
```

## Webhooks

Os webhooks entregam o mesmo objeto JSON que o endpoint `GET /{resource}/{id}` correspondente. Configure a URL do webhook por transação no momento da criação.
