Cómo integrar y procesar webhooks de Stripe para automatizaciones. Incluye ejemplo de payload normalizado y código listo para producción.
Cuando Stripe 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": "stripe",
"id_transaccion": "pi_3ABC...",
"monto": 49.99,
"moneda": "USD",
"cliente_email": "buyer@ejemplo.com",
"estado_pago": "aprobado"
}
Este es el payload crudo que Stripe envía a tu servidor:
{
"id": "evt_1ABC...",
"type": "payment_intent.succeeded",
"data": {
"object": {
"id": "pi_3ABC...",
"amount": 4999,
"amount_received": 4999,
"currency": "usd",
"customer": "cus_ABC",
"customer_email": "buyer@ejemplo.com",
"charges": { "data": [ { ... } ] },
"metadata": {},
... 40+ 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=stripe Content-Type: application/json [body del webhook de Stripe aquí]✓ Sin lógica adicional ✓ <100ms ✓ 500 llamadas gratis
// ⚠ Requiere mantener esta lógica por cada actualización de Stripe
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 →