Definición rápida
Un Webhook es un mecanismo de comunicación entre sistemas donde una aplicación envía automáticamente datos a otra aplicación en tiempo real cuando ocurre un evento específico, sin necesidad de que la segunda aplicación esté consultando constantemente.
¿Qué es un Webhook?
Imagina que quieres saber cuándo llega un paquete a tu casa. Podrías llamar a la empresa de courier cada hora para preguntar (eso es «polling» en software) —ineficiente y molesto. O podrías darles tu número de teléfono para que te llamen cuando llegue (eso es un webhook) —eficiente y automático.
En software, un webhook es una URL que una aplicación expone, y a la cual otra aplicación envía un POST HTTP cuando ocurre algo relevante. Es la forma más eficiente de integración en tiempo real entre sistemas.
Los webhooks son fundamentales en el ecosistema de integraciones modernas. Stripe, Mercado Pago, GitHub, Slack, Shopify y prácticamente todo SaaS moderno usa webhooks para notificar eventos a sistemas externos.
¿Cómo funciona un Webhook en la práctica?
El flujo de un webhook es simple:
- Registro: Le dices a la plataforma emisora (ej: Stripe) cuál es tu URL de webhook (ej:
https://tuapp.com/webhooks/stripe) y qué eventos quieres recibir (ej:payment.success). - Evento ocurre: Un cliente paga en Stripe.
- Notificación automática: Stripe hace un POST a tu URL con los datos del pago (en JSON).
- Procesamiento: Tu aplicación recibe el POST, valida que viene de Stripe (usando la firma del webhook), y ejecuta la lógica: activar la cuenta del usuario, enviar el email de confirmación, actualizar la base de datos.
- Respuesta 200: Tu servidor responde con HTTP 200 para confirmar que recibió el evento. Si no responde, Stripe reintentará.
Los webhooks se combinan perfectamente con herramientas de automatización como n8n, que puede recibir webhooks y disparar flujos complejos de automatización sin escribir código.
Ejemplos reales en LATAM
Mercado Pago (regional): La plataforma de pagos de Mercado Libre usa webhooks extensivamente. Cuando un comprador paga, Mercado Pago envía un webhook al sistema del vendedor notificando el pago exitoso. Sin este webhook, el vendedor tendría que hacer polling constante a la API para saber si llegó el pago.
Integraciones en startups chilenas: Una startup de e-commerce en Chile conecta Shopify (tienda) → webhook → n8n → automatización que actualiza su ERP, envía confirmación por WhatsApp al cliente y notifica al equipo de bodega. Todo sin código, todo en tiempo real.
Fintechs de cobranza: Sistemas de cobranza automática en LATAM usan webhooks de pasarelas de pago para confirmar pagos y actualizar estados de deuda en tiempo real.
Webhook vs Polling vs API REST
| Mecanismo | Cómo funciona | Eficiencia | Tiempo real |
|---|---|---|---|
| Polling | Tu app pregunta repetidamente si hay algo nuevo | Baja | No (delay) |
| Webhook | La otra app te avisa cuando algo pasa | Alta | Sí |
| WebSocket | Conexión bidireccional persistente | Muy alta | Sí |
| API REST | Consulta bajo demanda | Media | No (pull) |
Errores comunes con Webhooks
- No validar la firma: Cualquier persona puede enviar un POST a tu URL de webhook. Sin validar la firma criptográfica (que los proveedores incluyen en los headers), estás vulnerable a ataques de replay o inyección.
- Lógica pesada en el handler: El endpoint de webhook debe responder con 200 lo más rápido posible. Si la lógica es pesada, procesa el evento de forma asíncrona (queue) y responde inmediatamente.
- Sin manejo de idempotencia: Los webhooks pueden llegar duplicados (el proveedor reintenta si no recibe 200). Tu sistema debe manejar el mismo evento dos veces sin efectos secundarios duplicados.
- URL de webhook en texto plano: La URL del webhook no es un secreto, pero tampoco debe compartirse innecesariamente. Usa HTTPS siempre.
Preguntas Frecuentes (FAQ)
¿Cómo testear webhooks en desarrollo local?
Usa ngrok o LocalTunnel para exponer tu servidor local a internet temporalmente. También puedes usar el «webhook.site» para inspeccionar payloads antes de implementar la lógica. Stripe y GitHub tienen herramientas de testing de webhooks en sus dashboards.
¿Qué pasa si mi servidor está caído cuando llega un webhook?
Los buenos proveedores (Stripe, GitHub) tienen mecanismos de retry con backoff exponencial —reintentan el webhook después de 1 min, 5 min, 1 hora, etc. Tienes un período de gracia para recuperar tu servidor. Pero si no respondes después de todos los reintentos, el evento se pierde permanentemente.
¿Cuál es la diferencia entre webhook y WebSocket?
Un webhook es unidireccional (el servidor te envía datos cuando algo pasa) y sin conexión persistente. Un WebSocket es una conexión bidireccional persistente ideal para comunicación en tiempo real continua (ej: chat). Para notificaciones de eventos, webhook es suficiente y más simple.









