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

# Webhooks

> Verifique os bytes exatos do body. Deliveries são at-least-once e sem ordem global.

# Webhooks

[Intro](#intro)

<h2 id="intro">
  Intro
</h2>

Webhooks públicos projetam eventos canônicos. Verifique o body cru, não um JSON reencoded. Dedupe pela identidade da delivery. Não há garantia de ordem global. A política de dto segue o catálogo público.

Veja [domains](./domains#intro) e [errors](./errors#intro).

`retrievePayout` continua uma leitura current-state de `payout_ref`; snapshots de webhook permanecem event-time. O `operation_id` público não muda.

<h2 id="verify">
  Verify
</h2>

Header: `Trepzy-Signature: t=<unix>,v1=<hex>`

Bytes da mensagem = ASCII `t` + `.` + bytes exatos do body. HMAC-SHA256 com o secret do endpoint. A tolerância de relógio é 300 segundos nos dois sentidos. Durante a rotação o header pode trazer um `t` e dois valores `v1`.

```ts theme={null}
const operationId: string = 'retrievePayout'
const headerName: string = 'Trepzy-Signature'
const toleranceSeconds: number = 300
```

Os verifiers das sete linguagens ficam em `snippets/webhook-verify/`.
