Ventas
8- invoice.created
- invoice.updated
- invoice.voided
- invoice.paid
- invoice.overdue
- payment.received
- credit_note.issued
- quote.accepted
INTEGRACIONES
Aprovecha 40 tipos de eventos distintos para sincronizar tu stack. Con reintentos exponenciales y firmas criptográficas, tus datos siempre llegan seguros y a tiempo.
Cada cambio relevante en tu negocio dispara un evento que puedes capturar y procesar en tus sistemas.
40 eventos cubriendo cada cambio que importa.
Registra la URL de tu servidor y genera una clave secreta. Mosce ERP firmará cada solicitud con HMAC-SHA256 para que puedas verificar la autenticidad.
Elige de los 40 eventos disponibles cuáles deseas recibir. Puedes ajustar tu suscripción en cualquier momento desde el panel.
Verifica la firma HMAC en tu servidor y procesa el payload con confianza. Usa el event_id para garantizar idempotencia.
Cada entrega está diseñada para ser segura, rastreable y a prueba de fallos.
Cada solicitud lleva una firma criptográfica que permite verificar que proviene de Mosce ERP y que el payload no fue alterado en tránsito.
Si tu endpoint falla o responde fuera de tiempo, Mosce ERP reintenta con retroceso exponencial hasta por 24 horas, cubriendo interrupciones transitorias.
Cada evento incluye un event_id único. Úsalo para detectar y descartar duplicados en tu sistema sin riesgo de procesar el mismo evento dos veces.
Consulta el historial de entregas, estados de respuesta y tiempos de latencia para cada endpoint directamente desde el panel.
Verifica firmas y procesa eventos con pocas líneas de código en cualquier lenguaje.
# Verificar firma HMAC en cURL (ejemplo de payload) curl -X POST https://tu-app.com/webhooks/tu-servidor \ -H "Content-Type: application/json" \ -H "X-Helix-Signature: sha256=<firma>" \ -H "X-Helix-Event: invoice.paid" \ -d '{ "event": "invoice.paid", "event_id": "evt_01HXYZ9ABCDE", "timestamp": "2025-05-09T14:30:00Z", "data": { "invoice_id": "inv_01HXYZ123", "amount": 15000, "currency": "DOP", "customer_name": "Empresa ABC" } }'
import crypto from 'crypto'; import express from 'express'; const app = express(); app.use(express.raw({ type: 'application/json' })); app.post('/webhooks/tu-servidor', (req, res) => { const signature = req.headers['x-helix-signature']; const eventId = req.headers['x-helix-event-id']; // Verificar firma HMAC-SHA256 const expected = 'sha256=' + crypto .createHmac('sha256', process.env.WEBHOOK_SECRET) .update(req.body) .digest('hex'); if (!crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) )) { return res.status(401).send('Firma inválida'); } const event = JSON.parse(req.body.toString()); // event.event_id sirve para idempotencia console.log('Evento recibido:', event.event, eventId); res.status(200).send('OK'); });
import hashlib, hmac, json, os from flask import Flask, request, abort app = Flask(__name__) WEBHOOK_SECRET = os.environ['WEBHOOK_SECRET'] @app.post('/webhooks/tu-servidor') def handle_webhook(): signature = request.headers.get('X-Helix-Signature', '') event_id = request.headers.get('X-Helix-Event-Id', '') body = request.get_data() # Calcular firma esperada expected = 'sha256=' + hmac.new( WEBHOOK_SECRET.encode(), body, hashlib.sha256 ).hexdigest() if not hmac.compare_digest(signature, expected): abort(401) payload = json.loads(body) # Usar event_id para idempotencia print(f"Evento: {payload['event']} - ID: {event_id}") return '', 200
Conecta Mosce ERP con tu stack hoy y automatiza los flujos que hoy haces manualmente.