<!-- Generated from https://developers.superfrete.com/openapi.yaml (operationId: orderEvent). -->

# Evento de pedido

> Webhook enviado pela SuperFrete · Referência interativa: https://developers.superfrete.com/referencia#orderEvent

- **Method:** `POST`
- **Path:** `/sua-url-de-webhook`
- **Operation ID:** `orderEvent`
- **Tags:** Webhooks

Enviado para a URL do Webhook App quando o pedido muda de etapa: `order.created`, `order.released`, `order.generated`, `order.posted`, `order.delivered` ou `order.cancelled`.

## Assinatura

Todo envio leva o header `X-ME-Signature`: o HMAC-SHA256, em hexadecimal, do corpo **exatamente como recebido**, usando o `secret_token` devolvido na criação do Webhook App. Calcule o HMAC sobre os bytes crus do corpo, antes de interpretar o JSON, e compare com o header. Exemplos em Node.js, Python e PHP estão no [guia de webhooks](https://developers.superfrete.com/guias/webhooks).

## Entrega

- Responda com qualquer status `2xx` em até **10 segundos**. Acima disso, ou com outro status, a entrega conta como falha.
- Cada evento é enviado **uma única vez** por pedido e por Webhook App. Hoje não há reenvio automático depois de uma falha: para reconciliar, consulte o pedido em [Consultar pedido](https://developers.superfrete.com/referencia/md/getOrder.md) ou [Listar pedidos](https://developers.superfrete.com/referencia/md/listOrders.md).
- Os eventos podem chegar fora de ordem, e uma etapa pode ser pulada. Use `data.status` e as datas do payload, não a ordem de chegada.
- `tracking` e `tracking_url` aparecem a partir de `order.generated`; `tracking_url` só vem em `order.posted` e `order.delivered`.
- `tags` traz a identificação do pedido enviada em `options.tags` na criação da etiqueta, no formato `{ "name": "order_id", "value": "...", "url": "..." }`.

## Effective servers

- `https://sandbox.superfrete.com`

  Sandbox (testes, etiquetas sem validade)
- `https://api.superfrete.com`

  Produção

## Authentication

No authentication required.

## Header parameters

- **`X-ME-Signature` (required)**: `string`

  HMAC-SHA256 do corpo, em hexadecimal, assinado com o `secret_token` do Webhook App.

  **Example:**

  ```json
  "5d41402abc4b2a76b9719d911017c5925d41402abc4b2a76b9719d911017c592"
  ```
- **`User-Agent` (required)**: `string`

  Sempre `SuperFrete Webhooks/1.0`.

  **Example:**

  ```json
  "SuperFrete Webhooks/1.0"
  ```

## Request body

**Required:** `true`

**Content type:** `application/json`

schema: `OrderWebhookPayload`

- **`data` (required)**: `object`
  - **`canceled_at`**: `string | null`, format: `date-time`

    Cancelamento pedido pela conta.
  - **`created_at`**: `string | null`, format: `date-time`
  - **`delivered_at`**: `string | null`, format: `date-time`
  - **`expired_at`**: `string | null`, format: `date-time`

    Cancelamento automático feito pelo sistema, por exemplo etiqueta não paga.
  - **`generated_at`**: `string | null`, format: `date-time`
  - **`id`**: `string`

    ID do pedido na SuperFrete.
  - **`order_id`**: `string`

    Igual a `id`.
  - **`paid_at`**: `string | null`, format: `date-time`
  - **`posted_at`**: `string | null`, format: `date-time`
  - **`protocol`**: `null`
  - **`self_tracking`**: `null`
  - **`status`**: `string`, possible values: `"created", "released", "generated", "posted", "delivered", "cancelled"`

    Etapa do pedido, derivada do evento. Note a grafia `cancelled`, diferente do `canceled` das rotas de pedido.
  - **`tags`**: `array`

    Identificação do pedido enviada em `options.tags`.

    **Items:**
    - **`name`**: `string`, possible values: `"order_id"`
    - **`url`**: `string`
    - **`value`**: `string`

      Número do pedido na sua plataforma.
  - **`tracking`**: `string | null`

    Código de rastreio. Disponível a partir de `order.generated`.
  - **`tracking_url`**: `string | null`

    Página de rastreio. Só em `order.posted` e `order.delivered`.
  - **`user_id`**: `string`

    ID da conta dona do pedido.
- **`event` (required)**: `string`, possible values: `"order.created", "order.released", "order.generated", "order.posted", "order.delivered", "order.cancelled"`

**Example:**

```json
{
  "event": "order.delivered",
  "data": {
    "id": "r8p3dhqjn4I0tBpnvkpU",
    "order_id": "r8p3dhqjn4I0tBpnvkpU",
    "protocol": null,
    "status": "delivered",
    "tracking": "AA123456785BR",
    "self_tracking": null,
    "user_id": "3kCKGqzlPFfCEj2X1Tkob07SN2M2",
    "tags": [
      {
        "name": "order_id",
        "value": "3101481",
        "url": "https://minhaloja.com.br/pedidos/3101481"
      }
    ],
    "created_at": "2026-10-29T14:01:47.399Z",
    "paid_at": "2026-10-29T14:02:50.120Z",
    "generated_at": "2026-10-29T14:03:12.511Z",
    "posted_at": "2026-10-30T10:15:00.000Z",
    "delivered_at": "2026-11-03T16:42:00.000Z",
    "canceled_at": null,
    "expired_at": null,
    "tracking_url": "https://rastreio.superfrete.com/#/tracking/AA123456785BR"
  }
}
```

## Responses

### 200 Recebido. Qualquer status `2xx` confirma a entrega.

## Schemas

- `OrderWebhookPayload` — shown above.
