Os Webhooks permitem que você receba notificações HTTP em tempo real sobre mudanças em objetos específicos. Por exemplo, podemos enviar uma notificação quando um usuário envia uma mensagem ou quando o status de um modelo de mensagem é alterado. Isso evita que você tenha que consultar nossas APIs em busca de mudanças em objetos que podem ou não ter acontecido. Além disso, os Webhooks também ajudam a evitar que você atinja seu limite de volume.
Este documento fornece uma visão geral de Webhooks e da sua aplicabilidade à API de Gerenciamento do WhatsApp Business, à API de Nuvem da Plataforma do WhatsApp Business e à API Local da Plataforma do WhatsApp Business.
Cada API pode ter múltiplos tipos de objetos, por isso, sempre que configurar um Webhook, você deve primeiro escolher um tipo de objeto. Como os campos variam dependendo do objeto, é preciso assinar campos específicos para cada tipo de objeto. Você receberá uma notificação sempre que houver alterações no valor de campos de objeto assinados por você.
As notificações são enviadas como solicitações POST HTTP e contêm uma carga JSON que descreve a alteração.
A seguinte tabela apresenta as informações que você pode receber de Webhooks.
API | Objetos |
---|---|
API de Nuvem |
|
API Local |
|
API de Gerenciamento do WhatsApp Business |
|
Os seguintes exemplos representam uma notificação do Webhook enviada quando um usuário envia uma mensagem de texto.
Para a API de Nuvem, o objeto sempre é whatsapp_business_account
, mas o field
será indicativo do tipo de informação enviada.
{ "object": "whatsapp_business_account", "entry": [{ "id": "WHATSAPP_BUSINESS_ACCOUNT_ID", "changes": [{ "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": PHONE_NUMBER, "phone_number_id": PHONE_NUMBER_ID }, "contacts": [{ "profile": { "name": "NAME" }, "wa_id": PHONE_NUMBER }], "messages": [{ "from": PHONE_NUMBER, "id": "wamid.ID", "timestamp": TIMESTAMP, "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }, "field": "messages" }] }] }
Para a API Local, como o cliente está enviando o Webhook em vez da Meta, o objeto será contacts
e messages
, errors
ou statuses
e pricing
.
{ "contacts": [{ "profile": { "name": "NAME" }, "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID" }], "messages":[{ "from": "PHONE_NUMBER", "id": "wamid.ID", "timestamp": "TIMESTAMP", "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }
Todos os webhooks são enviados usando HTTPS. Por isso, seu servidor precisa ser capaz de receber e processar solicitações HTTPS, além de ter um certificado TLS/SSL válido instalado. Os certificados autoatribuídos não são compatíveis.
Saiba mais sobre os Webhooks para uma API específica.