Para consultar el catálogo exhaustivo derivado del esquema, consulta todos los ejemplos.
Qué es
Comprende las actualizaciones de mensajes de WhatsApp enviados, entregados, leídos y fallidos.Antes de comenzar
- Crea un endpoint HTTPS público en tu aplicación.
- Configura un endpoint de webhook de YCloud para los tipos de eventos que necesites.
- Almacena el secreto de firma del endpoint de forma segura.
- Haz que el procesamiento de eventos sea idempotente.
Cómo funciona
YCloud envía una solicitud HTTPPOST cuando ocurre el evento. Verifica la firma, registra el evento de forma duradera, devuelve una respuesta 2xx y procesa las tareas lentas de forma asíncrona.
Solicitud
Los siguientes escenarios muestran solicitudes entregadas a tu URL de webhook. Trata el eventoid como el identificador de entrega y utiliza type para enrutar el payload.
Respuesta
Devuelve un estado2xx después de aceptar el evento.
Para la configuración de endpoints, validación de firmas y comportamiento de reintentos, consulta Configurar webhooks.
accepted. Las actualizaciones de estado del mensaje activarán el webhook whatsapp.message.updated.
Por lo general, el estado del mensaje:
- Cambia a
failedsi no podemos entregar este mensaje. - Cambia a
sentsi es posible entregar este mensaje, y más adelante puede cambiar afailed,deliveredoread. - Cambia a
deliveredoreadsi este mensaje se entregó al dispositivo del destinatario.
delivered pueden ocurrir después de failed, y viceversa, especialmente cuando el usuario final utiliza varios dispositivos.
Mensaje enviado
En este caso, tu endpoint de webhook recibió un evento de mensajesent:
- El
statusdel mensaje essent, lo que significa que el mensaje está en tránsito dentro de los sistemas de WhatsApp. - Contiene información sobre la conversación, incluida la hora en que caduca la conversación y el tipo de origen.
- Contiene el
pricingCategoryy latotalPriceestimados que podríamos cobrarte. - Contiene
wamid, que es el ID del mensaje original en la plataforma de WhatsApp, comenzando conwamid..
Solicitud
Respuesta
Confirma la entrega después de aceptar el evento de forma duradera.Explicación
-
totalPricees solo un precio estimado antes de que se entregue el primer mensaje, y se convierte en el precio final cuando elstatusesdeliveredoread. El saldo ocupado por aquellos mensajes que se envían pero aún no se han entregado no estará disponible hasta que se descarten los mensajes (los mensajes enviados que no se entreguen durante 30 días se descartan). -
Por lo general, un mensaje
sentcambia adeliveredoreaden poco tiempo, excepto si:- La cuenta de WhatsApp del destinatario está sin conexión; los mensajes de WhatsApp enviados no se entregarán hasta que el destinatario disponga de servicios de internet activos o funcionales.
- Cualquier mensaje enviado a un contacto que te haya bloqueado siempre mostrará el mensaje
senty nunca cambiará adelivered. - El destinatario ha desactivado las confirmaciones de lectura, por lo que no recibirás las confirmaciones de mensaje
read. - El mensaje cambia a
failedmás adelante con el código de error131026, lo que significa “Message Undeliverable.” o “Receiver is incapable of receiving this message”. Lo más probable es que el destinatario no esté registrado o esté utilizando una versión antigua de WhatsApp. - El mensaje no se entregó para preservar una experiencia de usuario de alta calidad. Consulta Límites de mensajes de plantillas de marketing por usuario.
Mensaje entregado
En este caso, tu endpoint de webhook recibió un evento de mensajedelivered:
- El
statusdel mensaje esdelivered, lo que significa que el mensaje se entregó al dispositivo del destinatario.
Solicitud
Respuesta
Confirma la entrega después de aceptar el evento de forma duradera.Explicación
- Este evento indica que el mensaje enviado por tu empresa se entregó al dispositivo del usuario.
- Para que un estado sea
read, debe haber sidodelivered. En algunos escenarios, como cuando un usuario se encuentra en la pantalla de chat y llega un mensaje, el mensaje se marca comodeliveredyreadcasi simultáneamente. En este u otros escenarios similares, no se devolverá la notificación dedelivered, ya que se sobreentiende que un mensaje ha sido entregado si ha sido leído. La razón de este comportamiento es una optimización interna. - Es posible que generemos más de 1 evento de webhook de
deliveredpara el mismo mensaje, especialmente si el usuario final utiliza varios dispositivos. - pricingModel: “PMP” — indica que se aplica el precio por mensaje. Consulta también whatsapp-message-pricing-updates
- pricingType
- regular — indica que el mensaje es facturable.
- free_customer_service : indica que el mensaje es gratuito porque fue un mensaje de plantilla de utilidad o un mensaje sin plantilla enviado dentro de una ventana de servicio de atención al cliente.
- free_entry_point : indica que el mensaje es gratuito porque forma parte de una conversación de punto de entrada gratuito.
Mensaje leído
En este caso, tu endpoint de webhook recibió un evento de mensajeread:
- El
statusdel mensaje esread, lo que significa que el destinatario leyó el mensaje.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
- Si el destinatario ha desactivado las confirmaciones de lectura, no recibirás las confirmaciones
readdel mensaje.
Mensaje fallido
En este caso, tu endpoint de webhook recibió un evento de mensajefailed:
- El
statusdel mensaje esfailed. - Contiene
errroCode,errorMessageywhatsappApiError.
Solicitud
Respuesta
Confirma la entrega tras aceptar el evento de forma duradera.Explicación
- Estos eventos están diseñados para notificarte los cambios de estado de los mensajes salientes que enviaste previamente a los clientes.
- El motivo del error en la mensajería suele ser que los parámetros de solicitud del mensaje no son válidos, el número de teléfono del cliente no está registrado, etc. Consulta también WhatsApp Errors para el manejo de errores.
whatsappApiErrorse proporciona si intentamos enviar este mensaje a la plataforma de WhatsApp de Meta para ayudarte a comprender los detalles del error. Consulta también Cloud API Error Codes.- No te cobramos por los mensajes fallidos.

