API

Eventos

Webhook HTTP e WebSocket por instância. Até N webhooks com filtro de eventos e Authorization próprio.

Tipos

`message.exchange` — `data.phone`, `chat.phone` e `chat.jid` (`5511…@s.whatsapp.net`) vêm do celular real (SenderAlt / RecipientAlt / mapa LID→PN). Sem PN, `chat.jid` fica `@lid` e `addressing=lid` — não inventa telefone.

`instance.state` — disconnected / qr / connected.

`presence.update` — digitando / online.

`group.update` — participantes, assunto, foto.

`call.offer` — ligação recebida.

O playground não substitui o webhook: para cliques de botão e mensagens inbound, configure a URL e observe o payload.
POST/api/events/webhook/{instance}

Definir webhook

Cria ou atualiza pelo label ou pela URL (não duplica default + cotapy). Label padrão: cotapy.

Auth: TokenInstance

Body

CampoTipoDescrição
urlstringobrigatóriohttps://seu-backend/webhook
labelstringpadrão cotapy — mesma URL atualiza o registro existente
eventsstring[]["message.exchange","instance.state"]
authorizationstringheader Authorization que a Wagzap envia
mediaBase64booleaninclui mídia no payload
enabledbooleanliga/desliga

cURL

curl -X POST https://api.wagzap.com.br/api/events/webhook/vendas \
  -H "token: $TOKEN_INSTANCE" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://exemplo.com/wag",
  "events": [
    "message.exchange",
    "instance.state"
  ],
  "authorization": "Bearer segredo"
}'
GET/api/events/webhook/{instance}

Listar webhooks

Config atual.

Auth: TokenInstance

POST/api/events/websocket/{instance}

Config WS

enabled, events[], mediaBase64.

Auth: TokenInstance

GET/api/events/websocket/{instance}

Ler config WS

Estado do canal persistente.

Auth: TokenInstance

GET/ws/{instance}

Upgrade WebSocket

Autentique com token na query (?token=) ou header. Heartbeat e reconexão ficam a cargo do cliente.

Auth: TokenInstance