Skip to main content

Qué es

Los webhooks son solicitudes HTTPS que YCloud envía a su aplicación cuando cambian la entrega de mensajes, los mensajes entrantes, los contactos, las plantillas, las llamadas y otros recursos.

Antes de comenzar

  • Guarde su clave de API de YCloud en YCLOUD_API_KEY.
  • Despliegue un endpoint HTTPS públicamente accesible.
  • Conserve el cuerpo sin procesar de la solicitud para la verificación de firmas.
  • Decida qué tipos de eventos necesita su aplicación.

Cómo funciona

  1. Cree un endpoint de Webhook y suscríbalo a tipos de eventos.
  2. Guarde el secret del endpoint devuelto.
  3. YCloud envía una solicitud de evento a su endpoint.
  4. Verifique YCloud-Signature antes de confiar en la solicitud.
  5. Devuelva una respuesta 2xx de inmediato.
  6. Procese el evento de forma idempotente, ya que la entrega puede repetirse.

Solicitud

Cree un endpoint con POST /webhookEndpoints.

Campos de solicitud

Ejemplo de solicitud

Suscribirse a eventos de echo y handover

Para los agentes incorporados a través de la API REST pública, cree un endpoint con las siguientes suscripciones. Los agentes creados desde la consola no emiten estos tres eventos. Para modificar un endpoint existente, conserve las suscripciones a eventos que aún necesite.
Los dos tipos de eventos echo incluyen una carga útil whatsappMessage con formato estándar de mensaje. El evento handover incluye whatsappMetaBusinessAgent y conserva su información de agente/control. No utilizan el contrato whatsapp.smb.message.echoes de la aplicación WhatsApp Business. Consulte los detalles de los eventos echo y handover para obtener definiciones de campos, ejemplos, orden y límites de correlación de handover.

Respuesta

La respuesta devuelve el endpoint creado y su secret de firma. Guarde el secreto de forma segura. YCloud lo utiliza para generar firmas de Webhook.

Ejemplo de respuesta

Campos de respuesta

Recibir eventos

Solicitud de evento

YCloud envía un objeto de evento JSON al url configurado. El evento incluye campos comunes como id, type, apiVersion y createTime, además de una carga útil específica del tipo. Su controlador debe:
  1. Leer el cuerpo de la solicitud sin procesar.
  2. Validar el encabezado YCloud-Signature con el secreto del endpoint antes de confiar en la carga útil.
  3. Devolver una respuesta 2xx exitosa de inmediato.
  4. Mover el procesamiento lento a una cola.
  5. Hacer que el procesamiento de eventos sea idempotente para que la entrega repetida no duplique acciones comerciales.
No analice ni modifique el cuerpo de la solicitud antes de validar la firma. Utilice exactamente los bytes sin procesar recibidos por su servidor.

Respuesta del receptor

Devuelva una respuesta HTTP 2xx exitosa tan pronto como se acepten la firma y la solicitud. El cuerpo de la respuesta puede estar vacío.
Mueva el procesamiento comercial lento a una cola. Un tiempo de espera agotado o una respuesta distinta de 2xx pueden provocar que YCloud reintente el evento, por lo que debe desduplicar por el id del evento.

Ejemplos comunes de carga útil

Despliegue un evento para inspeccionar el ejemplo completo de su carga útil. Estos ejemplos proceden de la especificación de OpenAPI para webhooks. Consulte todos los ejemplos de carga útil de webhook para ver cada tipo de evento admitido.
Carga útil de ejemplo cuando se cambian los atributos de un contacto
Carga útil de ejemplo cuando se crea un nuevo contacto
Carga útil de ejemplo cuando se elimina un contacto
Carga útil de ejemplo cuando un cliente cancela la suscripción
Carga útil de ejemplo cuando un cliente reanuda la suscripción
Carga útil de ejemplo cuando se archiva una plantilla de WhatsApp
Carga útil de ejemplo cuando se desarchiva una plantilla de WhatsApp. El estado de la plantilla es el estado actual devuelto por Meta y no representa una nueva revisión de aprobación.
Carga útil de ejemplo cuando se conecta una llamada de WhatsApp
Ejemplo de payload cuando se finaliza una llamada de WhatsApp
Ejemplo de payload cuando se actualiza el estado de una llamada de WhatsApp
Consulta Payloads de eventos de Webhook para ver el esquema completo de Event y la referencia interactiva de payloads.

Rotar el secreto del endpoint

Rota un secreto si queda expuesto o como parte de tu política de seguridad:
Implementa el nuevo secreto en tu receptor inmediatamente después de la rotación.
Un endpoint que falla repetidamente al recibir notificaciones puede pasar al estado pending y dejar de recibir eventos. Monitorea los fallos de webhook y el estado del endpoint.
Para consultar el código de verificación de firma, los intervalos de reintento y la implementación del receptor, consulta Implementar un receptor de webhook.