Skip to main content

Qué es

Suscríbete a whatsapp.echo_message.updated. Recibes este evento cuando YCloud procesa un estado de eco saliente coincidente para un Agent creado mediante API. Conserva el contenido del mensaje del evento creado: las actualizaciones de estado omiten el contenido del mensaje y type. Las actualizaciones fallidas incluyen detalles del error de origen cuando están disponibles. El contrato actual mantiene el nombre del evento sin cambios y expone las modificaciones de estado bajo whatsappMessage, coincidiendo con el objeto utilizado por el evento creado correspondiente.

Antes de comenzar

  1. Incorpora el Agent a través de la API REST pública.
  2. Suscribe un endpoint de webhook activo en la misma cuenta a whatsapp.echo_message.updated.
  3. Verifica YCloud-Signature contra el cuerpo sin procesar de la solicitud, acepta cada evento de forma duradera y procésalo de manera idempotente.
Los Agents creados en la consola no emiten este webhook para clientes. La sincronización de su Inbox es un flujo independiente.
Consulta Configurar webhooks para configurar el endpoint.

Cómo funciona

Todos los ejemplos utilizan identificadores de marcador de posición. Enruta mediante el type exterior y lee whatsappMessage, no whatsappMetaBusinessAgent, whatsappEchoMessage ni data. Desduplica entregas repetidas con el id exterior. El createTime exterior es la hora del evento del webhook; el updateTime anidado y las horas específicas del estado son horas de origen RFC 3339.
  • Haz coincidir las actualizaciones con el evento creado mediante id o wamid, con ámbito limitado a tu cuenta y número comercial.
  • El teléfono del cliente y el BSUID son independientes. Cuando el estado de origen suministra tanto recipient_id como recipient_user_id, el evento incluye to junto con recipientUserId o parentRecipientUserId.
  • Si un elemento de estado omite esas identidades y la misma devolución de llamada contiene exactamente un contacto, YCloud puede usar el wa_id y user_id explícitos de ese contacto. Con cero o múltiples contactos, las identidades faltantes permanecen omitidas; nunca se infieren entre sí.
  • from se incluye solo cuando la devolución de llamada de origen suministra un número de teléfono visible comercial válido. No se deriva de phoneNumberId.
  • Mantén el historial de eventos separado del estado actual del mensaje. Un evento sent tardío puede llegar después de read; regístralo sin degradar el estado actual.
  • El ejemplo de envío tardío a continuación hace referencia al mensaje del ejemplo leído. El ejemplo fallido hace referencia a un mensaje diferente.
  • Los estados sin cambios y del mismo rango que se repiten se suprimen durante el procesamiento. Esto no garantiza una entrega HTTP exactamente una vez.
  • Un estado recibido antes de su registro de eco puede reintentarse internamente. No dependas del orden de entrega.
  • Los estados de mensajes ordinarios enviados por API utilizan whatsapp.message.updated, no este evento.

Solicitud

YCloud envía estos cuerpos JSON en solicitudes HTTP POST a tu URL de webhook configurada.

Respuesta

Devuelve una respuesta 2xx tras aceptar cada evento de forma duradera. Procesa las tareas lentas de forma asíncrona.

Mensaje eco entregado

Solicitud

Correlaciona con el evento creado mediante id o wamid. Los eventos actualizados omiten el contenido y el tipo del mensaje.

Respuesta

Explicación

Registra la transición a entregado y conserva el contenido del mensaje recibido en el evento creado.

Mensaje eco leído

Solicitud

Correlaciona con el evento creado mediante id o wamid. Los eventos actualizados omiten el contenido y el tipo del mensaje.

Respuesta

Explicación

Registra la transición a leído utilizando updateTime y readTime como horas de eventos de origen.

Estado de envío tardío tras lectura

Solicitud

Un estado de origen de menor rango puede llegar tras la lectura. Registra el evento sin degradar el estado actual del mensaje.

Respuesta

Explicación

Conserva este evento en el historial de entregas, pero no degrades un estado actual posterior como read.

Mensaje eco fallido

Solicitud

Este es un mensaje fallido independiente, no una transición desde leído. Las actualizaciones fallidas incluyen detalles del error de origen cuando están disponibles.

Respuesta

Explicación

Usa errorCode y errorMessage para diagnósticos cuando la devolución de llamada de origen los proporcione.

Ejemplos relacionados