Introducción al Error de Webhooks en Shopify
Los webhooks son esenciales para mantener sincronizada tu tienda de Shopify con sistemas externos, ERPs, pasarelas de pago o aplicaciones personalizadas. Cuando estos fallan, dejas de recibir notificaciones críticas sobre nuevos pedidos, actualizaciones de inventario o cambios en los clientes. Solucionar este problema es vital para la operativa diaria de tu e-commerce.
Principales Causas del Fallo en los Webhooks
Existen diversos motivos por los cuales Shopify deja de enviar webhooks correctamente o tu servidor rechaza las peticiones:
- Problemas de tiempo de espera (timeout) en tu servidor receptor, superando el límite de 5 segundos que exige Shopify.
- Certificados SSL inválidos, caducados o mal configurados en el endpoint de destino.
- Cambios en la URL del servidor receptor sin actualizar el registro correspondiente en el panel de Shopify o mediante la API.
- Errores HTTP devueltos por tu servidor (como códigos 404, 500 o 403) que provocan que Shopify desactive automáticamente el webhook tras varios intentos fallidos.
Método 1: Verificar y Probar el Endpoint con Herramientas de Inspección
El primer paso es comprobar si tu servidor está respondiendo correctamente a las peticiones POST enviadas por Shopify.
- Utiliza una herramienta temporal como
Webhook.sitepara generar una URL de prueba. - Configura un webhook de prueba en tu tienda Shopify apuntando a esa URL temporal.
- Realiza una acción en tu tienda (por ejemplo, crea un producto o simula un pedido).
- Revisa si los datos llegan correctamente a la herramienta y verifica el código de estado HTTP de respuesta (debe ser un
200 OK).
Método 2: Comprobar el Registro de Eventos y Reactivar Webhooks
Shopify desactiva automáticamente los webhooks que fallan repetidamente durante 48 horas.
- Ingresa a tu panel de administración de Shopify y dirígete a Configuración > Notificaciones.
- Desplázate hasta la sección inferior de Webhooks para revisar el historial de entrega y los códigos de error recientes.
- Si encuentras un webhook desactivado, soluciona primero el error en tu servidor (problema de código o SSL).
- Elimina el webhook dañado y vuelve a crearlo con la URL correcta, o actualízalo mediante la API de Shopify para forzar su reactivación.
Método 3: Validar la Firma HMAC para Procesamiento Seguro
A menudo, el error radica en un rechazo por seguridad debido a una mala validación de la cabecera X-Shopify-Hmac-Sha256.
Asegúrate de que tu código backend procese el cuerpo crudo (raw body) de la petición antes de calcular el hash HMAC usando tu clave secreta (secret key). Un ejemplo básico en Node.js:
const crypto = require('crypto');
const hmac = crypto.createHmac('sha256', process.env.SHOPIFY_SECRET);
const digest = hmac.update(rawBody).digest('base64');
if (digest === req.headers['x-shopify-hmac-sha256']) {
// Petición válida
}