Los webhooks te permiten recibir notificaciones HTTP en tiempo real sobre cambios en objetos específicos. Por ejemplo, podemos enviarte una notificación cuando un usuario te envía un mensaje o cuando cambia el estado de la plantilla de mensaje. De esta manera, se evita la necesidad de enviar una consulta a nuestras API para saber si ciertos cambios ya se han producido o no. También ayuda a evitar que se alcance el límite de frecuencia.
Este documento proporciona información general de los webhooks, que se aplican a la API de administración de WhatsApp Business, la API de la nube de la Plataforma de WhatsApp Business y la API de instalaciones locales de la Plataforma de WhatsApp Business.
Las API pueden tener varios tipos de objeto, por lo que es necesario que, al configurar un webhook, primero elijas un tipo de objeto. Como los distintos objetos cuentan con campos diferentes, el siguiente paso es suscribirte a los campos específicos de ese tipo de objeto. Recibiremos una notificación cada vez que se produzca un cambio en el valor de cualquiera de los campos de objeto al que te hayas suscrito.
Las notificaciones se envían como solicitudes HTTP POST e incluyen una carga JSON con la que se describe el cambio.
En la siguiente tabla, se incluye la información que puedes recibir de los webhooks.
API | Objetos |
---|---|
API de la nube |
|
API de instalaciones locales |
|
API de administración de WhatsApp Business |
|
Los siguientes ejemplos muestran una notificación de webhook que recibes cuando un usuario te envía un mensaje de texto.
En relación con la API de la nube, el objeto siempre es whatsapp_business_account
, pero field
indicará el tipo de información que se envía.
{ "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" }] }] }
En relación con la API de instalaciones locales, el objeto será contacts
y messages
, errors
o statuses
y pricing
, porque tu cliente es quien envía el webhook, no Meta.
{ "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 los webhooks se envían por medio de HTTPS, por lo cual tu servidor debe ser capaz de recibir y procesar solicitudes HTTPS, y debe tener instalado un certificado TLS/SSL válido. No se admiten los certificados autofirmados.
Obtén más información sobre los webhooks de una API específica.