> ## 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 casos

> todos os eventos relacionados a casos de suporte

## lista de eventos

| evento                     | quando acontece                    |
| -------------------------- | ---------------------------------- |
| `case.created`             | novo caso foi aberto               |
| `case.status_base.new`     | caso entrou com status base "novo" |
| `case.status_base.open`    | caso está em andamento             |
| `case.status_base.pending` | caso aguardando resposta           |
| `case.status_base.closed`  | caso foi encerrado                 |

## exemplo de payload

<Tabs>
  <Tab title="novo caso">
    ```json theme={null}
    {
      "eventId": "7f3a1c2e-9b4d-4e8f-a1c2-5d3e6f8a0b1c",
      "eventType": "case.created",
      "eventVersion": "1.0",
      "timestamp": "2026-04-16T09:30:00.123Z",
      "subscriptionId": "a8fa74b1-af91-4dde-b68b-82e06e1d51a1",
      "brand": {
        "id": "5d84bfd8-c9ae-44bc-acfb-dbc1721fa1be",
        "name": "nome da marca"
      },
      "entity": {
        "type": "case",
        "id": "b2c4d6e8-f0a2-4b8c-9d1e-3f5a7c9e1b3d",
        "href": "https://integration.teceo.co/v1/cases/b2c4d6e8-f0a2-4b8c-9d1e-3f5a7c9e1b3d"
      },
      "data": {
        "caseCode": "001",
        "subject": "Produto chegou com defeito na embalagem",
        "externalCode": null,
        "currentStatus": {
          "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
          "name": "Novo",
          "statusBase": "new"
        },
        "customer": {
          "id": "e6892af7-75d6-4036-8779-9d2ad1336dab",
          "commercialName": "Loja Centro"
        },
        "caseType": {
          "id": "f1e2d3c4-b5a6-7890-abcd-123456789012",
          "name": "Devolução"
        }
      },
      "metadata": {
        "changedBy": {
          "type": "user",
          "id": "30cac3a9-ceb1-46db-bd94-038c8a7f9331",
          "name": "Nome do Usuário"
        }
      }
    }
    ```
  </Tab>

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

    ```json theme={null}
    {
      "eventId": "2d4f6a8c-0e2b-4c8f-a3d5-7e9b1f3a5c7e",
      "eventType": "case.status_base.closed",
      "eventVersion": "1.0",
      "timestamp": "2026-04-16T16:00:00.456Z",
      "subscriptionId": "a8fa74b1-af91-4dde-b68b-82e06e1d51a1",
      "brand": {
        "id": "5d84bfd8-c9ae-44bc-acfb-dbc1721fa1be",
        "name": "nome da marca"
      },
      "entity": {
        "type": "case",
        "id": "b2c4d6e8-f0a2-4b8c-9d1e-3f5a7c9e1b3d",
        "href": "https://integration.teceo.co/v1/cases/b2c4d6e8-f0a2-4b8c-9d1e-3f5a7c9e1b3d"
      },
      "data": {
        "caseCode": "001",
        "subject": "Produto chegou com defeito na embalagem",
        "externalCode": null,
        "previousStatus": {
          "id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",
          "name": "Em andamento",
          "statusBase": "open"
        },
        "currentStatus": {
          "id": "d1e2f3a4-b5c6-7890-abcd-123456789012",
          "name": "Encerrado",
          "statusBase": "closed"
        },
        "customer": {
          "id": "e6892af7-75d6-4036-8779-9d2ad1336dab",
          "commercialName": "Loja Centro"
        },
        "caseType": {
          "id": "f1e2d3c4-b5a6-7890-abcd-123456789012",
          "name": "Devolução"
        }
      },
      "metadata": {
        "changedBy": {
          "type": "user",
          "id": "30cac3a9-ceb1-46db-bd94-038c8a7f9331",
          "name": "Nome do Usuário"
        }
      }
    }
    ```
  </Tab>
</Tabs>

## casos de uso comuns

### sincronizar com helpdesk

quando um caso é aberto ou muda de status, você mantém seu sistema de suporte em sincronia.

```javascript theme={null}
if (eventType === "case.created") {
  createTicketInHelpdesk(data);
} else if (eventType.startsWith("case.status_base.")) {
  updateTicketInHelpdesk(entity.id, data.currentStatus);
}
```

### notificar cliente

quando um caso é encerrado, você notifica o cliente.

```javascript theme={null}
if (eventType === "case.status_base.closed") {
  notifyCustomer(data.customer.id, data.subject);
}
```

## dados inclusos

o objeto `data` contém o código do caso, assunto, cliente, tipo e status (anterior e atual). se precisar de mais informações, use `entity.href` para buscar os dados completos via API.
