Verificar firmas webhook Square: la trampa de la URL de notificación

Aprende a verificar firmas webhook de Square sin caer en la trampa de la URL de notificación. Evita errores comunes y asegura tus pagos.

martes, 14 de julio de 2026 • 3 min de lectura • Equipo Q2BSTUDIO

Evita los errores en la validación de firmas de Square

La integración de webhooks de Square es una práctica habitual en muchas plataformas que procesan pagos o gestionan suscripciones. Sin embargo, validar la firma de estos webhooks esconde un detalle que suele pasar desapercibido y que provoca fallos difíciles de depurar: la URL de notificación forma parte del mensaje firmado. Si no se replica exactamente como Square la tiene registrada, cada notificación fallará la verificación, incluso cuando el código HMAC parezca correcto. Entender este mecanismo a fondo es clave para garantizar que las transacciones se procesen sin pérdidas ni retrasos.

Square utiliza HMAC-SHA256 para firmar sus webhooks. El valor del encabezado x-square-hmacsha256-signature se calcula concatenando la URL de notificación configurada en el panel de Square con el cuerpo sin procesar de la solicitud (raw body), aplicando después el algoritmo HMAC con la clave de firma asociada a esa suscripción y codificando el resultado en base64. Esto significa que cualquier discrepancia en la URL, ya sea un protocolo diferente, un cambio de host, una barra final o un path ligeramente distinto, hará que la firma no coincida. Además, el cuerpo debe ser exactamente el que Square envió, sin parsearlo ni re-serializarlo, porque los espacios, el orden de las claves o el formato de los números alteran el resultado.

Uno de los errores más comunes es reconstruir la URL a partir de las cabeceras de la petición (req.protocol, req.headers.host). Un proxy inverso o un balanceador de carga que termine TLS puede devolver HTTP en lugar de HTTPS, o un nombre de host diferente al registrado. La solución más segura es tratar la URL como una constante por entorno, exactamente la que se configuró en Square. Otro error frecuente es verificar contra un cuerpo re-serializado después de parsear JSON; la firma espera los bytes originales, no una representación reconstruida.

La seguridad no termina en la comparación de firmas. Es fundamental usar una función de comparación en tiempo constante, como crypto.timingSafeEqual, para evitar ataques de temporización que permitan deducir la firma correcta byte a byte. Además, Square está retirando el encabezado legacy x-square-signature (basado en SHA1) a favor del actual SHA256. Mantener código antiguo expone la integración a vulnerabilidades y a fallos de compatibilidad.

Desde una perspectiva empresarial, una validación incorrecta de webhooks puede traducirse en notificaciones perdidas sobre pagos completados, reembolsos o disputas. Square reintenta las entregas fallidas durante un tiempo limitado; si el servidor no responde correctamente, la suscripción puede desactivarse. Esto representa un riesgo directo para la continuidad del negocio. Por eso, contar con una infraestructura robusta que capture el cuerpo en crudo, verifique la firma de forma constante y gestione reintentos es crítico.

En Q2BSTUDIO somos especialistas en ciberseguridad y desarrollo de software seguro. Ayudamos a empresas a implementar validaciones de webhook que resistan estos escenarios, combinando buenas prácticas de seguridad con servicios cloud como AWS y Azure para garantizar alta disponibilidad. Nuestro equipo también integra inteligencia artificial para empresas y agentes IA que automatizan la respuesta a eventos, así como soluciones de inteligencia de negocio con Power BI para monitorizar el flujo de transacciones en tiempo real. Ya sea que necesites aplicaciones a medida para manejar webhooks o una plataforma completa de notificaciones, nuestro enfoque multidisciplinario asegura que cada evento se procese de forma fiable y segura.

La clave está en no subestimar el detalle de la URL. Configurarla como constante, capturar el raw body antes de cualquier parseo y utilizar siempre comparación en tiempo constante son prácticas que, aunque sencillas, marcan la diferencia entre una integración robusta y una que falla en producción. Con el apoyo de un equipo experto en software a medida y servicios cloud, puedes evitar los dolores de cabeza que generan estos errores y centrarte en lo importante: tu negocio.

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.