Solución a errores de webhooks y IPN, causas y cómo resolver el problema de recepción de notificaciones de Mercado Pago.
Este error suele deberse a problemas de conectividad entre tu aplicación y los servidores de Mercado Pago. Un código HTTP 500 (Error Interno del Servidor) indica un fallo en la comunicación, a menudo por problemas de DNS o firewall. Además, la latencia o la congestión en la red pueden impedir la recepción inmediata de las notificaciones IPN, generando este error.
import crypto from 'node:crypto';
import express from 'express';
const app = express();
app.post('/webhook/mercadopago', express.json(), (req, res) => {
const sig = req.headers['x-signature'] || '';
const ts = sig.match(/ts=(\d+)/)?.[1];
const v1 = sig.match(/v1=([a-f0-9]+)/)?.[1];
const reqId = req.headers['x-request-id'];
const data = `id:${req.body.data.id};request-id:${reqId};ts:${ts};`;
const expected = crypto
.createHmac('sha256', process.env.MP_WEBHOOK_SECRET)
.update(data)
.digest('hex');
if (expected !== v1) return res.sendStatus(401);
// Idempotencia: deduplicar por (data.id, action)
res.sendStatus(200);
});
Comorando intercepta cada evento de Mercado Pago, ejecuta reintentos inteligentes y te avisa cuando hay un problema — sin que escribas una sola línea de código extra.
Automatizá tus pagos gratis →Sin tarjeta de crédito · 250 eventos gratis · En vivo en 5 minutos