Saltar al contenido principal
Verifica que tu integración de webhooks funcione antes de desplegarla en producción. Esta página explica cómo recibir webhooks en tu máquina local y cómo diagnosticar errores comunes de entrega y verificación.

Desarrollo local

Los webhooks requieren una URL accesible públicamente, por lo que tendrás que exponer tu servidor local a Internet durante el desarrollo.

Uso de Cloudflare Tunnels

Cloudflare Tunnels ofrece una forma gratuita de exponer tu servidor local sin necesidad de abrir puertos en el firewall:
cloudflared tunnel --url localhost:3000
Obtendrás una URL pública como https://abc123.trycloudflare.com. Utiliza esta URL en la configuración de tu webhook:
{
  "url": "https://abc123.trycloudflare.com/webhook"
}

Resolución de problemas

Los webhooks no llegan

  • Endpoint no accesible: Comprueba que tu servidor sea accesible públicamente y que los firewalls permitan conexiones entrantes
  • Uso de HTTP: Las URLs de webhook deben usar HTTPS
  • Eventos incorrectos: Revisa el filtro de events en la configuración de tu webhook

Error en la verificación de la firma

La causa más común es usar el cuerpo JSON ya parseado en lugar del cuerpo bruto de la solicitud.
// Incorrecto: usando el body parseado
const signature = crypto
  .createHmac('sha256', secret)
  .update(JSON.stringify(req.body))
  .digest('hex');

// Correcto: usando el body en crudo
app.use('/webhook', express.raw({ type: 'application/json' }));
app.post('/webhook', (req, res) => {
  const signature = crypto
    .createHmac('sha256', secret)
    .update(req.body) // Buffer en crudo
    .digest('hex');
});

Otros problemas

  • Secreto incorrecto - Verifica que estés usando la clave secreta correcta en la configuración de tu cuenta
  • Errores de tiempo de espera (timeout) - Asegúrate de que tu endpoint responda en menos de 10 segundos