Cómo integrar y procesar webhooks de Shopify para SaaS. Incluye ejemplo de payload normalizado y código listo para producción.
Cuando Shopify envía un evento de pago, el cuerpo del webhook contiene decenas de campos anidados. Procesar webhook implica extraer solo los datos relevantes y convertirlos a un formato plano que cualquier sistema pueda consumir sin lógica adicional.
El resultado esperado siempre sigue el mismo esquema de 6 campos:
{
"plataforma": "shopify",
"id_transaccion": "pi_3ABC...",
"monto": 49.99,
"moneda": "USD",
"cliente_email": "buyer@ejemplo.com",
"estado_pago": "aprobado"
}
Este es el payload crudo que Shopify envía a tu servidor:
{
"id": 820982911946154500,
"email": "buyer@ejemplo.com",
"financial_status": "paid",
"total_price": "49.99",
"currency": "MXN",
"line_items": [ { ... } ],
"shipping_address": { ... },
"billing_address": { ... },
... 60+ campos más
}
Como ves, el objeto contiene campos innecesarios para la mayoría de los casos de uso. La API de traducción elimina el ruido y devuelve solo lo esencial.
Envía el webhook tal como llega con un parámetro de plataforma:
POST https://webhook-translator-microapi.vercel.app/?plataforma=shopify Content-Type: application/json [body del webhook de Shopify aquí]✓ Sin lógica adicional ✓ <100ms ✓ 500 llamadas gratis
// ⚠ Requiere mantener esta lógica por cada actualización de Shopify
const monto = event.data.object.amount_received / 100;
const email = event.data.object.customer_email
?? event.data.object.billing_details?.email;
// ... 20 líneas más para cubrir todos los casos edge
✗ Frágil ante cambios de API
Usa la API que normaliza Stripe, Shopify y PayPal en un JSON plano uniforme. 500 llamadas gratis al mes.
Obtener acceso gratuito →