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

# Receber eventos de pagamento

> Processe os sete eventos públicos com validação de assinatura e idempotência.

A Azentech envia um `POST` com JSON para a URL cadastrada na inscrição.

```json theme={null}
{
  "event": "capture",
  "transaction": {
    "id": "10000000-0000-4000-8000-000000000101",
    "merchant_transaction_id": "50000000-0000-4000-8000-000000000101",
    "status": "success",
    "flow_type": "cashin",
    "events": [
      {
        "id": "60000000-0000-4000-8000-000000000102",
        "success": true,
        "status": "pending_settlement",
        "event_type": "capture",
        "amount": "125.90",
        "batch_id": null
      },
      {
        "id": "60000000-0000-4000-8000-000000000101",
        "success": true,
        "status": "success",
        "event_type": "auth",
        "amount": "125.90",
        "batch_id": null
      }
    ],
    "statement": [
      {
        "e2e_id": "E0000000020261023143100000000001",
        "date": "2026-10-23T14:31:00+00:00",
        "amount": "125.90",
        "acc_info": {
          "ispb": "00000000",
          "bank_code": "001",
          "bank_agency": "0001",
          "acc_number": "123456-7",
          "acc_type": "CACC",
          "document": "12345678909",
          "name": "Cliente Exemplo"
        },
        "created_at": "2026-10-23T14:31:00+00:00"
      }
    ]
  }
}
```

Os eventos públicos desta versão são:

* `auth`, `capture`, `void` e `expired` para entradas.
* `payment`, `refund` e `transfer` para saídas.

**1. Capture o corpo sem alterações**

Preserve os bytes recebidos antes de converter o JSON.

**2. Valide a assinatura**

Compare `x-azentech-webhook-signature` em tempo constante. Rejeite a requisição quando a assinatura não corresponder.

**3. Registre a entrega**

Persista a transação, o evento, a data e o corpo recebido antes de executar efeitos dependentes.

**4. Aplique o efeito uma vez**

Use uma chave idempotente derivada de `transaction.id`, `event` e do evento correspondente na lista.

**5. Confirme o recebimento**

Responda com HTTP 200 a 226 depois da persistência durável.

Uma inscrição, uma URL ou um processador ausente pode impedir a entrega. A existência do evento no código não confirma que a inscrição do seu estabelecimento está ativa.

As transações de origem `funding`, `balancing`, `settlement` ou `internal` podem ter o nome do evento substituído pela origem na entrega atual. Esses nomes reclassificados não fazem parte dos sete webhooks públicos desta versão. Confirme a configuração quando usar aportes, liquidação ou fluxos internos.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.