> ## Documentation Index
> Fetch the complete documentation index at: https://student-213fb9fc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Pruebas

> Probar y depurar webhooks

<div id="local-development">
  ## Desarrollo local
</div>

Como los webhooks deben acceder a tu servidor desde Internet, tendrás que exponer públicamente tu servidor de desarrollo local.

<div id="using-cloudflare-tunnels">
  ### Uso de Cloudflare Tunnels
</div>

[Cloudflare Tunnels](https://github.com/cloudflare/cloudflared/releases) ofrece una forma gratuita de exponer tu servidor local sin necesidad de abrir puertos en el firewall:

```bash theme={null}
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:

```json theme={null}
{
  "url": "https://abc123.trycloudflare.com/webhook"
}
```

<div id="troubleshooting">
  ## Resolución de problemas
</div>

<div id="webhooks-not-arriving">
  ### Los webhooks no llegan
</div>

* **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

<div id="signature-verification-failing">
  ### Error en la verificación de la firma
</div>

La causa más común es usar el cuerpo JSON ya parseado en lugar del cuerpo bruto de la solicitud.

```javascript theme={null}
// 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');
});
```

<div id="other-issues">
  ### Otros problemas
</div>

* **Secreto incorrecto** - Verifica que estés usando la clave secreta correcta en la [configuración de tu cuenta](https://www.firecrawl.dev/app/settings?tab=advanced)
* **Errores de tiempo de espera (timeout)** - Asegúrate de que tu endpoint responda en menos de 10 segundos
