Skip to main content

Presença

O comando Presença inscreve o canal para receber atualizações de presença (online/offline) de um contato específico. Após a inscrição, você receberá webhooks sempre que o contato ficar online ou offline.

Requisição

Campos

Resposta da API

Webhook de confirmação

A aceitação da inscrição é confirmada via webhook do tipo PRESENCE_SUBSCRIPTION_RESPONSE, entregue antes das atualizações de presença:

Campos da confirmação

O webhook PRESENCE_SUBSCRIPTION_RESPONSE é apenas a confirmação da inscrição. As mudanças de status do contato chegam depois, em webhooks separados do tipo CONTACT_PRESENCE.

Webhook CONTACT_PRESENCE

Após a inscrição, você receberá webhooks do tipo CONTACT_PRESENCE sempre que o status do contato mudar.

Campos do webhook

Exemplos de evento

O campo unavailable com valor false indica que o contato está online neste momento.
O campo unavailable com valor true indica que o contato está offline. O campo lastSeen contém o horário em que o contato ficou offline.

Limitações

Se o contato desativou a exibição de “visto por último” e “online” nas configurações de privacidade do WhatsApp, você pode não receber atualizações de presença. Não há como contornar essa restrição — ela é controlada inteiramente pelo contato.
A inscrição de presença é vinculada a sessão atual. Se a sessão for desconectada e reconectada, você deve reenviar o comando PRESENCE_SUBSCRIPTION para cada contato que deseja monitorar. Considere implementar um mecanismo automático que reenvia as inscrições após receber o evento CONNECTED.
Atualizações de presença podem ter um pequeno atraso (alguns segundos) entre a mudança real do status e o recebimento do webhook. Isso é inerente ao protocolo do WhatsApp e não pode ser eliminado.

Exemplo completo

Use eventos de presença para otimizar o envio de mensagens. Enviar mensagens quando o contato está online aumenta a chance de leitura rápida. Combine com o indicador de digitação para uma experiência mais natural.