# `shipment.dispatch`

Envio despachado.

A Kernos faz o POST no endereço cadastrado no webhook da conexão. Responda 2xx em até 10 s; sem isso, ela tenta de novo com espera crescente (30 s × 2ⁿ, até 1 h) por 3 dias. Confira a `Kernos-Signature` antes de confiar no corpo.

## Cabeçalhos

- `Kernos-Signature` (string, obrigatório): `t=<unix>,v1=<hex>`, com `v1 = HMAC-SHA256(webhook_secret, "<t>.<corpo>")`. Recuse `t` velho: barra o replay.
- `Kernos-Event-Id` (uuid, obrigatório): O id do evento: o mesmo em cada nova tentativa. Use para não processar duas vezes.

## Corpo

- `created_at` (data e hora, obrigatório)
- `data` (objeto, obrigatório)
  - `dispatched_at` (data e hora)
  - `id` (uuid)
  - `order_refs` (lista de string)
  - `orders` (integer)
  - `packages` (integer)
  - `status` ("dispatched")
  - `weight_g` (integer)
- `id` (uuid, obrigatório): O id do fato, igual ao `Kernos-Event-Id`.
- `object` (objeto, obrigatório)
  - `id` (uuid)
  - `type` ("shipment")
- `tenant` (string, obrigatório): A empresa, pelo endereço (`minha-empresa` em `minha-empresa.kernos.com.br`).
- `type` ("shipment.dispatch", obrigatório)

## Exemplo

A forma do corpo, sem dado real.

**shipment.dispatch**

```json
{
  "created_at": "2026-10-03T12:00:00Z",
  "data": {
    "dispatched_at": "2026-10-03T12:00:00Z",
    "id": "3f1e0c8a-5b7d-4c21-9a3e-0b1c2d3e4f50",
    "order_refs": [
      "…"
    ],
    "orders": 0,
    "packages": 0,
    "status": "dispatched",
    "weight_g": 0
  },
  "id": "3f1e0c8a-5b7d-4c21-9a3e-0b1c2d3e4f50",
  "object": {
    "id": "3f1e0c8a-5b7d-4c21-9a3e-0b1c2d3e4f50",
    "type": "shipment"
  },
  "tenant": "…",
  "type": "shipment.dispatch"
}
```
