Flujo
- Configuras un endpoint público en tu sistema.
- En el Panel de Esolbay registras la URL del webhook.
- Esolbay envía eventos (p. ej.
order.create) autenticados por cabecera.
- Tu servicio valida la cabecera y procesa el evento.
Configuración en el Panel
Ve a Panel → API Key & Webhooks y crea un webhook:
- Label descriptivo
- URL (POST pública)
- Eventos habilitados
Encabezados
x-api-key (string): API Key de tu organización.
x-esolbay-event-id (string): recomendado para idempotencia.
x-esolbay-timestamp (ISO8601): recomendado para protección anti-replay.
Validación
Valida que el valor de x-api-key coincida con tu API Key de Esolbay almacenada en tu entorno.
import express from 'express';
const app = express();
app.post('/webhooks/esolbay', express.text({ type: '*/*' }), (req, res) => {
const providedKey = req.header('x-api-key');
const expectedKey = process.env.ESOLBAY_API_KEY;
if (!providedKey || providedKey !== expectedKey) {
return res.status(401).send('Unauthorized');
}
// Opcional: usar x-esolbay-event-id para idempotencia
// const eventId = req.header('x-esolbay-event-id');
return res.status(200).send('ok');
});
Usa el cuerpo RAW (texto) si necesitas procesarlo como texto antes de parsearlo.
Reintentos e idempotencia
- Usa
x-esolbay-event-id como clave idempotente (no procesar el mismo id dos veces).
- Rechaza eventos con
x-esolbay-timestamp muy antiguos (p. ej. > 5 minutos).
Catálogo de eventos
Los esquemas de payload están documentados en OpenAPI (ver x-webhooks).