Webhook
Los Webhooks son retornos de llamada HTTP definidos por el usuario que se activan mediante eventos específicos. Siempre que ocurra un evento de activación, el cliente de la API de WhatsApp Business verá el evento, recopilará los datos e inmediatamente enviará una notificación (solicitud HTTP) a la URL de WhatsApp especificada en la configuración de la aplicación, actualizando el estado de los mensajes enviados o indicando cuándo recibe un mensaje.Es importante que su Webhook devuelva una respuesta HTTPS 200 OK a las notificaciones. De lo contrario, el cliente de la API de WhatsApp Business considerará esa notificación como un fallo y volverá a intentarlo tras un retraso.
Configuración del Webhook
Para recibir notificaciones, el cliente debe registrar la URL de su Webhook en el número. Definir/actualizar la URL del Webhook:webhook es opcional (puede ser null para eliminarlo) y tiene un máximo de 255 caracteres. Si la URL del Webhook no está definida, las notificaciones no se entregarán.
Además del Webhook principal, es posible configurar un webhook secundario (
secondary_webhook). Cuando está definido, recibe las mismas notificaciones que el Webhook principal."Beep Beep!") a la URL configurada:
Es importante que su Webhook devuelva una respuesta HTTP 200 OK a las notificaciones. De lo contrario, la notificación se considerará un fallo y habrá intentos de reenvío.
Definir la configuración de notificaciones
Los números de Positus utilizan la WhatsApp Cloud API. El cliente recibe, en la URL de Webhook registrada, un subconjunto normalizado del payload de Meta (sin el sobreentry/changes). Los objetos entregados son los objetos crudos de la Cloud API.
| Nombre | contenido del objeto |
|---|---|
| messages | Notificaciones de mensajes entrantes |
| statuses | Actualizaciones de estado de los mensajes |
| errors | Errores graves fuera de banda |
Siempre que sea posible, los nombres se mantendrán constantes en las funciones. (Por ejemplo, todas las marcas de fecha y hora se denominan
timestamp.Formato del Webhook de notificaciones
Una notificación de mensaje entrante tiene el nivel superior{ "contacts": [...], "messages": [...] }. Una notificación de estado tiene el nivel superior { "statuses": [...], "contacts": [...] } (contacts solo está presente cuando el estado no es failed).
Ejemplo (mensaje de texto entrante)
Actualizaciones de estado de los mensajes
Además de los mensajes entrantes, el cliente recibe notificaciones de estado de los mensajes que envió. Estas notificaciones tienen el nivel superior{ "statuses": [...], "contacts": [...] }.
Ejemplo (estado delivered)
status puede tomar los siguientes valores:
| Valor | Descripción |
|---|---|
sent | El mensaje fue enviado al servidor de WhatsApp. |
delivered | El mensaje fue entregado al dispositivo del destinatario. |
read | El mensaje fue leído por el destinatario. |
failed | Hubo un fallo en el envío del mensaje. |
status es failed, el objeto de estado incluye un arreglo errors con el detalle del fallo y contacts no se envía.
Ejemplo (estado failed)
Errores de notificaciones
Cuando haya errores fuera de banda que ocurran durante la operación normal de la aplicación, el arregloerrors proporcionará una descripción del error. Este tipo de error puede deberse a errores temporales de conectividad de red, credenciales no válidas, controladores de gestión con estado no disponible, etc. Si recibe un error, consulte Mensajes de error y estado para obtener más información.
Ejemplo
El objeto
errors contiene los siguientes parámetros:
| Nombre del campo | Descripción | Tipo |
|---|---|---|
| code | Código de error | Numérico |
| title | Título del error | Cadena de caracteres |
| details | Opcional. Detalles del error proporcionados, si están disponibles/aplicables | Cadena de caracteres |
| href | Opcional. Detalles de la ubicación del error. | Cadena de caracteres |
Notificaciones de mensajes entrantes
Recibe una notificación cuando su empresa recibe un mensaje. La sección del objetomessages presenta toda la información que se puede recibir sobre un mensaje entrante.
Ejemplo: Mensaje de texto recibido
Ejemplo: Mensaje de ubicación estática recibido
Ejemplo: Mensaje con contactos recibido
Notificaciones de mensajes de medios entrantes
Cuando se recibe un mensaje con medios, la notificación enviada a su Webhook contiene un objeto de medios con los campos que identifican el archivo. En la Cloud API, el objeto de medios solo traeid, mime_type y sha256 (más un caption opcional para imagen, documento y video). No hay campos file ni link.
Para descargar el medio, use el id en el endpoint de descarga: GET https://api.positus.global/v2/whatsapp/numbers/{chave}/media/{id}.
Ejemplo: Mensaje con imagen recibido
Ejemplo: Mensaje con documento recibido
Ejemplo: Mensaje con audio recibido
En la Cloud API, los mensajes de audio (incluidos los mensajes de voz) se entregan con el tipo
audio, no voice.Ejemplo: Mensaje con video recibido
Ejemplo: Mensaje con sticker recibido
Respuestas entrantes a mensajes enviados
Los usuarios pueden responder a un mensaje específico en WhatsApp. Para que la empresa entienda el contexto de la respuesta a un mensaje, incluimos el objetocontext. Este objeto context proporciona el id del mensaje al que el cliente respondió y el ID de WhatsApp del remitente del mensaje original.
Ejemplo: El cliente respondió a su mensaje
Documentación oficial de WhatsApp Cloud API
Positus utiliza la WhatsApp Cloud API y entrega los objetos en el mismo formato que el estándar oficial de Meta. La documentación completa y actualizada se puede encontrar en el enlace a continuación:https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components