Saltar al contenido principal
Para consultar el catálogo completo derivado del esquema, consulta todos los ejemplos.

Qué es

Gestiona eventos de terminación de llamadas, grabación y transcripción de WhatsApp.

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 HTTP POST cuando ocurre el evento. Verifica la firma, registra el evento de forma duradera, devuelve una respuesta 2xx y procesa las tareas lentas de manera asíncrona.

Solicitud

Los escenarios a continuación muestran solicitudes enviadas a tu URL de Webhook. Trata el id del evento como el identificador de entrega y usa type para enrutar el payload.

Respuesta

Devuelve un estado 2xx después de aceptar el evento.
Para configurar el endpoint, validar la firma y conocer el comportamiento de reintento, consulta Configurar webhooks.
Tanto la empresa como el usuario de WhatsApp pueden finalizar la llamada en cualquier momento. Cuando la empresa o el usuario de WhatsApp finalizan la llamada, recibes un Webhook de finalización de llamada (Call Terminate):

Llamada completada

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Enruta el evento mediante type, desduplícalo por id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

Llamada fallida

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Enruta el evento mediante type, desduplícalo por id y traslada el trabajo lento o propenso a errores a un procesador asíncrono.

Grabación de llamada disponible

Para una llamada originada por API con la grabación activada, whatsapp.call.recording.updated informa la disponibilidad de la grabación o un fallo permanente en el procesamiento.

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Usa callingRecording.wacid para identificar la llamada y phoneId para identificar el número de teléfono de la empresa. Descarga mediaAssetId solo cuando status sea AVAILABLE. El procesamiento de la grabación es independiente del resultado de terminación de la llamada. Para FAILED, inspecciona error.code y error.retryable. Consulta grabaciones y transcripciones.

Error en la transcripción de la llamada

Para una llamada originada por API con la transcripción activada, whatsapp.call.transcription.updated informa la disponibilidad de la transcripción o un fallo permanente en el procesamiento.

Solicitud

Respuesta

Confirma la entrega tras aceptar el evento de forma duradera.

Explicación

Lee callingTranscription en lugar de callingRecording. En este ejemplo, status es FAILED y error.retryable es false. No intentes descargar el recurso fallido. Un resultado AVAILABLE utiliza mediaAssetId para la descarga; el resultado de la transcripción es independiente del resultado de la grabación y del estado de finalización de la llamada.