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

# Eventos dos Webhooks

> Receba no seu servidor quando chegar mensagem, conversa ou mudança de membro no chat in-app.

<Tip>
  Na API você **pergunta**; no webhook a Notifique **avisa**. Ideal para sincronizar CRM, Inbox e métricas sem polling.
</Tip>

## Em poucas palavras

* Toda entrega é um **POST** `application/json` para a URL cadastrada.
* Eventos `chat.*` são **só chat in-app**. WhatsApp usa `message.*`, push usa `push.*`.
* `instanceId` vem **vazio** (chat não usa instância de canal).
* Ative **só** os eventos que sua integração usa.
* Responda **2xx rápido**; processamento pesado vai para fila no seu lado.

Cadastre um webhook e ative os eventos `chat.*` que sua integração usa. O Chat **sempre** dispara se o webhook estiver inscrito nesse evento — não há interruptor extra de “mensagens recebidas” no canal. Configuração geral: [Webhooks](/guides/webhooks/index). Segurança (HMAC): [Segurança de webhooks](/guides/webhooks/seguranca).

***

## Como vem o POST

```json theme={null}
{
  "event": "chat.received",
  "workspaceId": "clxx123...",
  "instanceId": "",
  "timestamp": "2026-09-05T14:30:00.000Z",
  "data": {
    "chatAppId": "clxxapp...",
    "conversationId": "clxxconv...",
    "messageId": "clxxmsg...",
    "message": {
      "id": "clxxmsg...",
      "conversationId": "clxxconv...",
      "type": "TEXT",
      "body": "Oi",
      "createdAt": "2026-09-05T14:30:00.000Z"
    }
  }
}
```

| Campo         | Descrição                                                       |
| ------------- | --------------------------------------------------------------- |
| `event`       | Nome do evento (ex.: `chat.received`)                           |
| `workspaceId` | ID do workspace                                                 |
| `instanceId`  | Sempre vazio no chat                                            |
| `timestamp`   | ISO 8601, use para anti-replay                                  |
| `data`        | `chatAppId`, `conversationId`, payload da mensagem ou do membro |

Headers: `X-Notifique-Signature`, `X-Notifique-Timestamp`, `X-Workspace-Id`, `X-Webhook-Event`.

***

## O que seu servidor deve responder

| Resposta                | Efeito                                      |
| ----------------------- | ------------------------------------------- |
| **2xx** em até \~10s    | Evento entregue; sai da fila                |
| **4xx / 5xx / timeout** | Retentativa automática (5 min, 30 min, 2 h) |

<Note>
  Processamento demorado? Responda **200** logo e processe em background.
</Note>

***

## Referência por evento

| Evento                      | Quando dispara                      | O que fazer com isso         |
| --------------------------- | ----------------------------------- | ---------------------------- |
| `chat.received`             | Mensagem de um `USER`               | Atender, Inbox, CRM          |
| `chat.sent`                 | Mensagem de um `AGENT` (painel/API) | Confirmar eco no seu sistema |
| `chat.message.deleted`      | Mensagem apagada                    | Remover do cache do cliente  |
| `chat.conversation.created` | Nova conversa                       | Abrir ticket / thread        |
| `chat.conversation.updated` | Título, políticas ou preview        | Atualizar lista              |
| `chat.conversation.deleted` | Soft delete                         | Fechar thread                |
| `chat.member.added`         | Membro entrou                       | ACL no seu lado              |
| `chat.member.removed`       | Membro saiu                         | Revogar acesso local         |
| `chat.user.blocked`         | Um `USER` bloqueou outro            | Recusar DIRECT e membership  |
| `chat.user.unblocked`       | O bloqueio foi removido             | Liberar DIRECT de novo       |

`chat.received` vs `chat.sent` segue o `kind` do remetente (`USER` → received, `AGENT` → sent). `chat.conversation.updated` também dispara quando o interruptor de capacidades da sala muda.

***

## Próximos passos

* [Introdução](/chat-api/como-funciona/introducao)
* [Quick Start](/chat-api/como-funciona/quick-start)
* [Webhooks (guia)](/guides/webhooks/index)
