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

> ## Agent Instructions
> Wabox é uma API não-oficial de WhatsApp (aparelho vinculado). Tudo é snake_case; a base é https://api.wabox.me/instances/{instance_id}/token/{token}.
> Envios respondem { id, message_id, wabox_id, status: "queued" } na hora; o resultado real chega no webhook delivery. Envios não são idempotentes: confira GET /queue antes de repetir.
> Sempre verifique X-Wabox-Signature (HMAC-SHA256 de "<t>.<corpo cru>") nos webhooks e deduplique por event_id.
> Botões, listas, carrossel e catálogo são best effort e não renderizam no WhatsApp Web/Desktop. Não existem: chamadas, listas de transmissão, histórico de mensagens, instância mobile.
> Não invente endpoints ou campos: use o OpenAPI em https://api.wabox.me/openapi.json.

# Webhook chat_presence

> Contato digitando, gravando áudio, online ou ausente.

```json theme={"system"}
{
  "type": "chat_presence",
  "event_id": "01J5Q8ZK3M4N5P6Q7R8S9T0V1Y",
  "instance_id": "8f2a3c1e-6b7d-4e5f-9a0b-1c2d3e4f5a6b",
  "momment": 1786968540000,
  "phone": "5511988887777",
  "status": "COMPOSING",
  "last_seen": null
}
```

| `status`      | Significado                                                                           |
| ------------- | ------------------------------------------------------------------------------------- |
| `COMPOSING`   | Digitando                                                                             |
| `RECORDING`   | Gravando áudio                                                                        |
| `PAUSED`      | Parou de digitar/gravar sem enviar                                                    |
| `AVAILABLE`   | Online                                                                                |
| `UNAVAILABLE` | Saiu do app; `last_seen` (epoch ms) quando o contato compartilha o "visto por último" |

## Para que serve

* Segurar a resposta automática enquanto o cliente ainda está digitando (espere `PAUSED` ou a mensagem chegar).
* Mostrar "digitando…" no seu painel de atendimento.
* Detectar que o cliente está online antes de enviar algo urgente.

## O que esperar

* O WhatsApp só envia presença de contatos com quem há conversa recente e que não a ocultaram na privacidade. Nem todo contato gera eventos.
* É o webhook de maior volume: cada tecla pode virar um `COMPOSING`. Ele vem **desligado** por padrão (`chat_presence_url: null`); ligue só se for usar, e considere um endpoint separado para não atrasar os demais.
* Em grupos, `phone` é o id do grupo; hoje o Wabox não informa qual participante está digitando.

Para sinalizar presença **sua** para o contato (digitando, gravando), use `POST /send-presence` ou `delay_typing` nos envios.
