Saltar para o conteúdo principal

Webhook

Webhooks são retornos de chamada de HTTP definidos pelo usuário que são acionados por eventos específicos. Sempre que ocorrer um evento de acionamento, o cliente da API do WhatsApp Business verá o evento, coletará os dados e imediatamente enviará uma notificação (solicitação HTTP) ao URL do WhatsApp especificado nas configurações do aplicativo atualizando o status das mensagens enviadas ou indicando quando você receber uma mensagem.
É importante que seu Webhook retorne uma resposta HTTPS 200 OK às notificações. Caso contrário, o cliente da API do WhatsApp Business considerará essa notificação uma falha e tentará novamente após um atraso.

Configuração do Webhook

Para receber notificações, o cliente precisa cadastrar a URL do seu Webhook no número. Definir/atualizar a URL do Webhook:
O campo webhook é opcional (pode ser null para remover) e tem no máximo 255 caracteres. Se a URL do Webhook não estiver definida, as notificações não serão entregues.
Além do Webhook principal, é possível configurar um webhook secundário (secondary_webhook). Quando definido, ele recebe as mesmas notificações que o Webhook principal.
Testar o Webhook (handshake): para validar que a URL está respondendo corretamente, dispare uma mensagem de teste. A Positus enviará uma notificação de teste ("Beep Beep!") para a URL configurada:
É importante que seu Webhook retorne uma resposta HTTP 200 OK às notificações. Caso contrário, a notificação será considerada uma falha e haverá tentativas de reenvio.

Definir configurações de notificações

Os números da Positus utilizam a WhatsApp Cloud API. O cliente recebe, na URL de Webhook cadastrada, um subconjunto normalizado do payload da Meta (sem o envelope entry/changes). Os objetos entregues são os objetos crus da Cloud API.
Nomeconteúdo do objeto
messagesNotificações de mensagens de entrada
statusesAtualizações de status das mensagens
errorsErros sérios fora da banda
Sempre que possível, os nomes serão mantidos constantes nas funções. (Por exemplo, todos os registros de data e hora são denominados timestamp.

Formato do Webhook de notificações

Uma notificação de mensagem recebida tem o topo { "contacts": [...], "messages": [...] }. Uma notificação de status tem o topo { "statuses": [...], "contacts": [...] } (o contacts só está presente quando o status não é failed). Exemplo (mensagem de texto recebida)

Atualizações de status das mensagens

Além das mensagens recebidas, o cliente recebe notificações de status das mensagens que enviou. Essas notificações têm o topo { "statuses": [...], "contacts": [...] }. Exemplo (status delivered)
O campo status pode assumir os seguintes valores:
ValorDescrição
sentA mensagem foi enviada ao servidor do WhatsApp.
deliveredA mensagem foi entregue ao dispositivo do destinatário.
readA mensagem foi lida pelo destinatário.
failedHouve falha no envio da mensagem.
Quando o status é failed, o objeto de status inclui uma matriz errors com o detalhe da falha e o contacts não é enviado. Exemplo (status failed)

Erros de notificações

Quando houver erros fora da banda que ocorrerem na operação normal do aplicativo, a matriz errors fornecerá uma descrição do erro. Esse tipo de erro pode ser provocado por erros de conectividade de rede temporários, credenciais inválidas, controladores de gerenciamento com status indisponível e assim por diante. Se você receber um erro, consulte Mensagens de erro e status para obter mais informações. Exemplo
O objeto errors
O objeto errors contém os seguintes parâmetros:
Nome do campoDescriçãoTipo
codeCódigo de erroNumérico
titleTítulo do erroCadeia de caracteres
detailsOpcional. Detalhes do erro fornecidos, se disponíveis/aplicáveisCadeia de caracteres
hrefOpcional. Detalhes da localização do erro.Cadeia de caracteres

Notificações de mensagens de entrada

Você recebe uma notificação quando sua empresa recebe uma mensagem. A seção do objeto messages apresenta todas as informações que podem ser recebidas sobre uma mensagem de entrada.

Exemplo: Mensagem recebida Text

Exemplo: Mensagem de localização estática recebida

Exemplo: Mensagem com contatos recebida

Notificações de mensagens de mídia de entrada

Quando uma mensagem com mídia é recebida, a notificação enviada ao seu Webhook contém um objeto de mídia com os campos que identificam o arquivo. Na Cloud API, o objeto de mídia traz apenas id, mime_type e sha256 (mais caption opcional para imagem, documento e vídeo). Não há campos file nem link. Para baixar a mídia, use o id no endpoint de download: GET https://api.positus.global/v2/whatsapp/numbers/{chave}/media/{id}.

Exemplo: Mensagem com imagem recebida

Exemplo: Mensagem com documento recebida

Exemplo: Mensagem com áudio recebida

Na Cloud API, mensagens de áudio (incluindo mensagens de voz) são entregues com o tipo audio, não voice.

Exemplo: Mensagem com vídeo recebida

Exemplo: Mensagem com figurinha recebida

Respostas de entrada a mensagens enviadas

Os usuários podem responder a uma mensagem específica no WhatsApp. Para que a empresa entenda o contexto da resposta a uma mensagem, incluímos o objeto context. Esse objeto context fornece o id da mensagem à qual o cliente respondeu e o ID do WhatsApp do remetente da mensagem original.

Exemplo: Cliente respondeu à sua mensagem

Documentação oficial WhatsApp Cloud API

A Positus utiliza a WhatsApp Cloud API e entrega os objetos no mesmo formato do padrão oficial da Meta. A documentação completa e atualizada pode ser encontrada no link abaixo:https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components