Saltar al contenido principal

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:
El campo 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.
Probar el Webhook (handshake): para validar que la URL responde correctamente, dispare un mensaje de prueba. Positus enviará una notificación de prueba ("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 sobre entry/changes). Los objetos entregados son los objetos crudos de la Cloud API.
Nombrecontenido del objeto
messagesNotificaciones de mensajes entrantes
statusesActualizaciones de estado de los mensajes
errorsErrores 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)
El campo status puede tomar los siguientes valores:
ValorDescripción
sentEl mensaje fue enviado al servidor de WhatsApp.
deliveredEl mensaje fue entregado al dispositivo del destinatario.
readEl mensaje fue leído por el destinatario.
failedHubo un fallo en el envío del mensaje.
Cuando el 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 arreglo errors 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
El objeto errors contiene los siguientes parámetros:
Nombre del campoDescripciónTipo
codeCódigo de errorNumérico
titleTítulo del errorCadena de caracteres
detailsOpcional. Detalles del error proporcionados, si están disponibles/aplicablesCadena de caracteres
hrefOpcional. 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 objeto messages 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 trae id, 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 objeto context. 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