El síntoma
Configuras un webhook desde una plataforma externa (un ERP como Holded, un CRM, una pasarela u otra integración) para que envíe notificaciones a una URL de tu web, pero todas las peticiones devuelven un error 403 (Forbidden) y nunca llegan a tu aplicación. Revisas Cloudflare y no encuentras ningún bloqueo, y el proveedor de la integración no sabe decirte qué ocurre.
La causa: el User-Agent del webhook está en la lista de bloqueos
Como parte de las medidas de mitigación contra bots y scrapers, es habitual que exista en el archivo .htaccess de la cuenta una lista de User-Agents genéricos bloqueados. Muchas integraciones legítimas envían sus webhooks con clientes HTTP estándar que usan precisamente esos User-Agents, por ejemplo:
Go-http-client (aplicaciones escritas en Go, muy común en SaaS)
python-requests
curl o librerías similares
Si el User-Agent de la plataforma coincide con uno bloqueado, el servidor rechaza la petición con un 403 antes de que llegue a tu web, aunque la IP de origen sea legítima.
Cómo se diagnostica
El 403 afecta solo a las peticiones externas hacia la URL del webhook; el resto de la web funciona con normalidad.
En los logs del servidor se puede identificar la IP de origen y el User-Agent exacto que está recibiendo el 403.
Muchos proveedores no facilitan sus rangos de IP, pero si la URL del webhook solo la conoce esa plataforma, las peticiones bloqueadas sobre esa ruta serán suyas casi con total seguridad.
La solución
Abre un ticket de soporte indicando la URL exacta del webhook y, si la tienes, la fecha y hora de algún intento fallido.
Nuestro equipo localizará en los logs la IP y el User-Agent bloqueados.
Se retira ese User-Agent concreto de la lista de bloqueos (o se añade una excepción para la ruta del webhook), manteniendo el resto de protecciones activas.
Vuelve a probar el envío: la plataforma debe recibir ya una respuesta 200.
Recomendaciones
Si es posible, solicita al proveedor de la integración sus rangos de IP de salida: permite crear excepciones más precisas que retirar un User-Agent completo.
Ten en cuenta que las protecciones anti-bots son necesarias: no conviene eliminarlas de forma general, solo ajustar la excepción concreta que necesita tu integración.
