Digitação e gravação

Evento: presence · Transporte: POST para o seu receptor

Acompanhe presença dentro de uma conversa, como digitação e gravação de áudio.

Como interpretar

event.State informa o estado de atividade (composing ou paused); event.Media pode indicar áudio. Preserve Chat/chatid e as identidades de remetente disponíveis.

Não use este evento como confirmação de que o usuário está online ou offline. A API não envia notificações de conectividade (Presence); o fluxo de atividade da conversa (ChatPresence) é o que produz estes eventos.

Estados de atividade são transitórios e não representam envio, entrega ou leitura de mensagens.

Habilitar este evento

Adicione presence à lista events do webhook da instância. Preserve os outros eventos de que sua integração precisa.

{
  "enabled": true,
  "url": "https://seu-sistema.example/hooks/whatsapp",
  "events": [
    "presence"
  ]
}

Envie essa configuração para POST /webhook, usando o header token. O JSON acima configura a assinatura; os exemplos de entrega abaixo são o que seu servidor recebe.

Campos do payload

O envelope comum vem na raiz. Campos condicionais podem estar ausentes ou nulos conforme o evento; não use a tabela como obrigação de presença de todos os campos.

CampoTipoSignificado
EventTypestringObrigatório. Tipo de evento, por exemplo connection ou messages.
ownerstringObrigatório. Consulte o objeto ou exemplo correspondente.
tokenstringObrigatório. Token da instância; dado sensível.
BaseUrlstringObrigatório. Consulte o objeto ou exemplo correspondente.
instanceNamestringConsulte o objeto ou exemplo correspondente.
typestringO fluxo de ChatPresence usa presence.
eventobjectAtividade na conversa.
event.chatidstringJID da conversa, quando resolvido.
event.chatlidstring / nullLID da conversa; pode ser ausente ou null.
event.sender_pnstring / nullJID por telefone, quando conhecido.
event.sender_lidstring / nullIdentificador LID, quando conhecido.
event.ChatstringJID da conversa.
event.SenderstringJID do participante.
event.StatestringAtividade recebida.
event.MediastringTipo de atividade, por exemplo audio; pode estar vazio.
event.IsFromMebooleanOrigem na conta conectada.
event.IsGroupbooleanConversa de grupo.

Exemplos de entrega

Exemplos ilustrativos com identificadores fictícios. O conteúdo específico e os campos opcionais variam.

Contato digitando

{
  "EventType": "presence",
  "owner": "5511999999999",
  "token": "INSTANCE_TOKEN",
  "BaseUrl": "https://seu-servidor.example",
  "instanceName": "Atendimento",
  "type": "presence",
  "event": {
    "Chat": "5511888888888@s.whatsapp.net",
    "Sender": "5511888888888@s.whatsapp.net",
    "chatid": "5511888888888@s.whatsapp.net",
    "State": "composing",
    "Media": "",
    "IsFromMe": false,
    "IsGroup": false
  }
}

Responder ao webhook

Seu receptor deve aceitar o POST JSON e devolver uma resposta 2xx rapidamente, após validar e registrar o recebimento. O corpo da resposta não é um comando para a API. Processe trabalho demorado separadamente.

O worker não repete automaticamente uma entrega HTTP malsucedida. Consulte diagnóstico de webhooks e implemente a reconciliação necessária. Eventos repetidos ou fora de ordem ainda precisam ser tolerados pelo receptor.

Referências