Webhooks
Los webhooks de Sync Labs entregan notificaciones HTTP POST en tiempo real cuando tus jobs de generación de lip sync se completan o fallan. Usa webhooks en lugar de polling para construir flujos de trabajo eficientes y orientados a eventos que respondan a cambios de estado sin llamadas repetidas a la API.
¿Cómo configuro webhooks?
Para utilizar webhooks:
- Especifica un parámetro
webhookUrlal llamar a un endpoint de API que lo soporte. - Asegúrate de que tu endpoint de webhook pueda recibir y manejar requests HTTP
POSTy pueda consumir el Webhook Payload para actualizaciones de estado.
Por motivos de seguridad, tu webhook URL debe estar configurada para aceptar y
procesar requests HTTPS POST.
Al aprovechar webhooks, puedes simplificar tu flujo con llamadas no bloqueantes, lo que te permite enfocarte en otras tareas mientras recibes notificaciones de finalización de jobs.
Si no recibes eventos, confirma que se incluyó exactamente webhookUrl en el request de generación, que el endpoint sea públicamente accesible por HTTPS y que devuelva una respuesta 2xx rápidamente a requests POST. Si la entrega falla porque tu endpoint no está disponible o rechaza el request, haz polling del endpoint de estado de generación como fallback.
Manejo de errores en webhooks
Cuando una generación falla, el payload del webhook incluirá información de error en dos campos:
error: un mensaje de error legible por humanos que describe qué salió malerror_code: un código de error específico que puede usarse para manejo programático de errores (consulta la guía de manejo de errores para ver una lista completa de códigos)
Esta estructura de errores mejorada te permite tanto mostrar mensajes significativos a los usuarios como implementar lógica de manejo específica basada en códigos de error.
Verifica firmas de webhook
Para asegurar que los requests de webhook provengan de Sync Labs, firmamos cada request con una firma. La firma se incluye en el header Sync-Signature.
Para verificar firmas, usa tu signing secret. También puedes obtenerlo programáticamente con GET /v2/organizations/webhook/secret. Guarda de forma segura el valor completo whsec_...; masked=true es solo para visualización y no debe usarse para verificación.
La firma está compuesta por 2 componentes:
- Timestamp (al momento de enviar el evento)
- Hash de firma (el timestamp y el cuerpo JSON raw exacto del request)
Recursos relacionados
- procesamiento por lotes — usa webhooks con procesamiento por lotes para flujos de alto volumen
- Rate Limits — comprende el rate limiting de la API y cómo afecta la entrega de webhooks
Preguntas frecuentes
¿Cómo pruebo webhooks en local?
Usa una herramienta de túnel como ngrok para exponer tu servidor local a internet. Inicia tu endpoint de webhook en local y luego ejecuta ngrok para obtener una URL HTTPS pública. Pasa esa URL como webhookUrl al crear una generación. Sync Labs enviará requests POST a tu servidor local a través del túnel.
¿Qué pasa si mi endpoint está caído?
Si tu endpoint de webhook no es alcanzable cuando Sync Labs intenta la entrega, la notificación puede perderse. No hay reintento automático para entregas de webhook fallidas. Como red de seguridad, puedes hacer polling del endpoint de estado de generación para verificar jobs completados o fallidos que tu webhook pudo haber perdido.
¿Cómo verifico las firmas de webhook?
Cada request de webhook incluye un header Sync-Signature que contiene un timestamp y un hash HMAC-SHA256. Usa tu signing secret de la página de configuración de webhooks para calcular la firma esperada y compárala con una función de comparación segura en tiempo para evitar timing attacks. Consulta los ejemplos de código de arriba.

