Todos los artículos
Una solicitud de webhook fluyendo desde servicios en la nube hacia un portátil que muestra un panel inspector de solicitudes.
webhook debuggingStripeGitHublocal testing

Depurar webhooks en local: guía completa

La depuración local de webhooks debería ser rápida, repetible y parecida al comportamiento de producción. Sin embargo, la mayoría de los equipos sigue desplegando a staging solo para responder preguntas básicas: ¿llegó el callback?, ¿era válido el payload? y ¿pasó la verificación de firma?

El problema de probar webhooks solo en staging

El flujo por defecto te resultará familiar: desplegar a staging, configurar los endpoints del proveedor, disparar eventos, revisar logs, corregir el código, volver a desplegar. Cada ciclo cuesta tiempo y añade ruido de entornos compartidos.

Cuando tu objetivo es validar la lógica del handler, la idempotencia o el parseo del payload, esa sobrecarga es innecesaria. Necesitas una forma fiable de depurar webhooks en local manteniendo el control total de tu stack de desarrollo.

Qué necesitas para probar webhooks en localhost

Para recibir los callbacks del proveedor en tu máquina, deben alinearse tres piezas:

  • Una app local en ejecución con las rutas de webhook activadas.
  • Un endpoint HTTPS público mapeado a esa app.
  • Visibilidad de las solicitudes: cabeceras, cuerpo, estado y latencia.

Esto es exactamente lo que ofrece el túnel a localhost: un puente seguro desde los servicios externos hasta tu proceso local.

Paso a paso: depura webhooks en local con PortPreview

  1. Arranca tu aplicación en local en el puerto objetivo.
  2. Ejecuta npx portpreview 3000 para crear una URL de túnel.
  3. Pega la URL HTTPS en el panel de tu proveedor (Stripe, GitHub, Twilio, Slack, etc.).
  4. Dispara eventos de prueba e inspecciona cada callback en tiempo real.
  5. Reenvía las solicitudes capturadas con el reenvío de webhooks para validar correcciones sin volver a disparar los sistemas upstream.

PortPreview conserva las cabeceras originales, así que las comprobaciones de firma del proveedor siguen teniendo sentido durante las pruebas en local.

Checklist de depuración de webhooks por proveedor

Pruebas de webhooks de Stripe en local

Verifica el enrutado por tipo de evento, las claves de idempotencia y la validación de firma usando eventos en modo de prueba de Stripe. Captura los cuerpos de payload en crudo para confirmar que tu handler parsea bien los objetos anidados. Mira la guía dedicada a pruebas de webhooks de Stripe en local.

Depuración de webhooks de GitHub

Valida las cabeceras de entrega, los filtros de eventos y las rutas de autorización por repositorio. Reenvía entregas para probar el manejo de eventos duplicados cuando GitHub reintenta endpoints fallidos. Configuración completa en pruebas de webhooks de GitHub en local.

Twilio y callbacks de mensajería

Inspecciona los payloads form-encoded y el tiempo de respuesta. La depuración en local ayuda a detectar el comportamiento de timeout y reintento antes del tráfico de producción. Mira nuestra guía dedicada a pruebas de webhooks de Twilio en local.

Buenas prácticas para pruebas locales de webhooks fiables

Valida las firmas en modo local. No te saltes las comprobaciones de seguridad durante el desarrollo; prueba el mismo camino de código que ejecutas en producción.

Simula reintentos y duplicados. Los proveedores pueden entregar el mismo evento más de una vez. El reenvío ayuda a confirmar que tus handlers siguen siendo idempotentes.

Captura el historial de solicitudes. Mantén un registro del método, la ruta, las cabeceras y la forma del payload de cada callback durante el trabajo de la feature.

Reduce el trasiego de despliegues a staging. Usa la depuración local de webhooks para iterar rápido y luego haz las comprobaciones finales de integración en staging antes del release.

Cuándo pasar de la depuración local a staging

Los túneles locales son ideales para el desarrollo de handlers y la inspección de payloads. Pasa a staging para comprobaciones específicas del entorno como secretos gestionados, políticas de red y pipelines de release completos.

Para el desarrollo diario de callbacks, un túnel a localhost te da feedback más rápido con menos sobrecarga de infraestructura. Si estás comparando herramientas, mira nuestra guía de alternativa a ngrok y la comparativa PortPreview vs localtunnel centradas en la inspección de solicitudes y la transparencia del código abierto.

Únete a la lista de espera de PortPreview para conseguir acceso anticipado a flujos de túnel pensados para webhooks.

Preguntas frecuentes

¿Por qué los proveedores de webhooks no pueden llegar a localhost?
Los proveedores de webhooks envían solicitudes por internet público. Las direcciones de localhost como 127.0.0.1 solo son alcanzables en tu máquina, así que los proveedores necesitan una URL pública que reenvíe a tu servidor local.
¿Cómo pruebo los webhooks de Stripe en local?
Arranca tu app en local, levanta un túnel con PortPreview y luego configura el endpoint de webhook de Stripe con la URL HTTPS generada. Dispara eventos de prueba e inspecciona cada entrega en tu registro de solicitudes.
¿Puedo depurar webhooks sin desplegar a staging?
Sí. La depuración local de webhooks con un túnel reemplaza la mayoría de los despliegues temporales a staging para probar callbacks, reduciendo el tiempo de iteración de minutos a segundos.