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

# eventos de pedidos

> todos os eventos relacionados a pedidos

## lista de eventos

| evento                     | quando acontece             |
| -------------------------- | --------------------------- |
| `order.created`            | novo pedido foi criado      |
| `order.status.draft`       | pedido mudou para rascunho  |
| `order.status.in_revision` | pedido está em revisão      |
| `order.status.on_approval` | pedido aguardando aprovação |
| `order.status.approved`    | pedido foi aprovado         |
| `order.status.sent`        | pedido foi enviado          |
| `order.status.canceled`    | pedido foi cancelado        |
| `order.status.abandoned`   | pedido foi abandonado       |
| `order.status.rejected`    | pedido foi rejeitado        |
| `order.status.suggested`   | pedido foi sugerido         |

## exemplo de payload

<Tabs>
  <Tab title="novo pedido">
    ```json theme={null}
    {
      "eventId": "9f91a4f8-9268-4457-8a04-990f31bc3d83",
      "eventType": "order.created",
      "eventVersion": "1.0",
      "timestamp": "2026-04-16T22:21:40.087Z",
      "subscriptionId": "e71a0f57-4c93-4ed5-b6f7-21e20a64ac9c",
      "brand": {
        "id": "9556cca6-8604-4728-a744-eb27112dfeda",
        "name": "dalton teste api"
      },
      "entity": {
        "type": "order",
        "id": "f3c092ce-1eca-40d8-9038-fb8f622b4d61",
        "href": "https://integration.teceo.co/v1/orders/f3c092ce-1eca-40d8-9038-fb8f622b4d61"
      },
      "data": {
        "code": "4",
        "totalAmount": 0,
        "customer": {
          "id": "3d4c499d-6c0c-4c2a-ab76-afe3163923db",
          "commercialName": "Loja Dalton"
        }
      },
      "metadata": {
        "changedBy": {
          "type": "user",
          "id": "30cac3a9-ceb1-46db-bd94-038c8a7f9331",
          "name": "Dalton"
        }
      }
    }
    ```
  </Tab>

  <Tab title="alteração de status">
    todos os eventos de alteração de status de pedido `order.status.*` têm a mesma estrutura de payload.

    ```json theme={null}
    {
      "eventId": "655d7561-1adc-4587-ad1d-779d1594282c",
      "eventType": "order.status.canceled",
      "eventVersion": "1.0",
      "timestamp": "2026-04-16T22:20:36.029Z",
      "subscriptionId": "e71a0f57-4c93-4ed5-b6f7-21e20a64ac9c",
      "brand": {
        "id": "9556cca6-8604-4728-a744-eb27112dfeda",
        "name": "dalton teste api"
      },
      "entity": {
        "type": "order",
        "id": "0066f0a7-51cc-4d66-b481-f1d967d76b50",
        "href": "https://integration.teceo.co/v1/orders/0066f0a7-51cc-4d66-b481-f1d967d76b50"
      },
      "data": {
        "code": "3",
        "previousStatus": "DRAFT",
        "currentStatus": "CANCELED",
        "totalAmount": 0,
        "customer": {
          "id": "3d4c499d-6c0c-4c2a-ab76-afe3163923db",
          "commercialName": "Loja Dalton"
        },
        "reason": "pedido duplicado"
      },
      "metadata": {
        "changedBy": {
          "type": "user",
          "id": "30cac3a9-ceb1-46db-bd94-038c8a7f9331",
          "name": "Dalton"
        }
      }
    }
    ```
  </Tab>
</Tabs>

## casos de uso comuns

### sincronizar com ERP

quando um pedido é aprovado, você pode criar o registro no seu ERP. quando é aprovado, você dispara o fluxo de faturamento.

```javascript theme={null}
if (eventType === "order.status.approved") {
  createInERP(data);
} else if (eventType === "order.status.approved") {
  triggerBilling(entity.id);
}
```

### reagir a novos pedidos

quando um pedido é criado, você pode enviar uma notificação para o time de vendas ou criar uma tarefa de follow-up.

```javascript theme={null}
if (eventType === "order.created") {
  notifySalesTeam(data.customer.commercialName, data.totalAmount);
  createFollowUpTask(entity.id);
}
```

### reagir a cancelamentos

quando um pedido é cancelado, você pode notificar o cliente ou reverter reservas de estoque.

```javascript theme={null}
if (eventType === "order.status.canceled") {
  notifyCustomer(data.customer.id, data.reason);
  releaseStockReservation(entity.id);
}
```

### reagir a abandonos

quando um pedido é abandonado, você pode enviar um email de recuperação ou acionar um fluxo de remarketing.

```javascript theme={null}
if (eventType === "order.status.abandoned") {
  sendRecoveryEmail(data.customer.id, entity.id);
  triggerRemarketing(entity.id);
}
```

## dados inclusos

o objeto `data` contém apenas dados básicos do pedido: id do cliente, valores e status. se precisar de algo mais específico, use `entity.href` para buscar os dados completos via API.
