Configurar Webhooks para recibir eventos
Cómo enterarte en tiempo real de lo que pasa en tu plataforma MTR.
Configurar Webhooks para recibir eventos
Los Webhooks te permiten recibir notificaciones HTTP en tu sistema cuando algo pasa en MTR (factura emitida, lead nuevo, mensaje al bot, etc.).
Crear un webhook
1. Andá a Configuración → Webhooks. 2. Click en + Nuevo webhook. 3. Completá:
- URL: tu endpoint público (HTTPS).
- Eventos: cuáles disparan POST.
- Secret: para validar firma (opcional pero recomendado).
4. Guardá.
Eventos disponibles
factura.emitidafactura.pagadafactura.vencidaorden.creadaorden.pagadalead.nuevobot.mensaje_recibidobot.mensaje_enviadocliente.creadocliente.actualizadoproducto.creadousuario.invitado
Estructura del payload
json { "event": "factura.pagada", "timestamp": "2026-05-07T14:32:00.000Z", "data": { "id": 123, "numero": "FA-A-0001-00000123", "total": 25000, "empresa": { "id": 45, "nombre": "Cafetería Almendra" } }, "signature": "sha256=..." }
Validar firma
Si configuraste secret:
`js const crypto = require("crypto");
function validar(req, secret) { const sig = req.headers["x-mtr-signature"]; const body = JSON.stringify(req.body); const expected = "sha256=" + crypto .createHmac("sha256", secret) .update(body) .digest("hex"); return sig === expected; } `
Reintentos
Si tu endpoint devuelve 5xx o no responde en 10s:
- Reintentamos con backoff exponencial: 1 min, 5 min, 30 min, 2h, 6h.
- Después de 5 fallos, marcamos el webhook como suspendido.
- Te notificamos por email.
Buenas prácticas
- Devolvé
200 OKrápido (en menos de 5s). Procesá el evento async después. - Idempotencia: el mismo evento puede llegar más de una vez (raro pero posible). Usá el
iddel payload para deduplicar. - Logueá todo lo que entra para debug.
Test
En la página del webhook hay botón Disparar evento de prueba. Te manda un POST con payload de ejemplo.
Webhooks de entrada
También podés exponer endpoints para que otros sistemas te disparen acciones en MTR. Ver Configuración → Webhooks de entrada.
¿Te resultó útil este artículo?