Suscripción de Webhook para notificar Eventos
La funcionalidad de Webhook permite configurar notificaciones en diferentes eventos hacia sistemas externos del cliente. Los Webhooks se pueden configurar desde [aquí] (https://app.janis.in/webhooks/subscription/browse) creando uno Nuevo.
1. Resumen
Al momento de crear un Webhook se deberá configurar:
- Nombre.
- El/los evento/s que se quieren notificar.
- Filtros
- URL asociada al endpoint.
- Los headers en caso que el endpoint así lo requiera.
La estructura de notificación del webhook por ejemplo para un pedido "Listo para facturar" será la siguiente:
{
"service": "oms",
"entity": "order",
"eventName": "ready-for-invoice",
"eventDate": "2024-04-03T12:09:00.000Z",
"metadata": {
"id": "d555345345345as67a342a"
}
}
Una vez que la suscripción fue configurada, se enviará un POST
(incluyendo los headers configurados) con el siguiente body:
{
"setup": true
}
Para mayor información, consultar la documentación técnica de webhooks.
2. Configuración de filtros
JANIS también permite configurar filtros para realizar o no las notificaciones en base al contenido que tenga el webhook.
Para configurar un filtro se debe ingresar el contenido por el que se requiere filtrar dentro del campo Filtro.
Notificación de Webhooks por módulo
Para conocer a detalle la estructura y los datos notificados por cada servicio, se sugiere revisar la siguiente documentación:
- Notificaciones de OMS (Pedidos): https://docs.janis.in/v2/service/oms#tag/Webhooks
- Notificaciones de Delivery (Rutas y Entregas): https://docs.janis.in/v2/service/delivery#tag/Webhooks
- Notificaciones de WMS (Movimientos de pedidos entre almacenes): https://docs.janis.in/v2/service/wms#tag/Webhooks
El siguiente ejemplo muestra la notificación de una entrega pertenenciente al módulo de Delivery.
{
"service": "delivery",
"entity": "shipping",
"eventName": "scheduled",
"eventDate": "2024-04-03T12:09:00.000Z",
"metadata": {
"id": "634eb9fc96cdaa068d8cf42a",
"status": "scheduled",
"displayId": "290922-AHHS10",
"refId": "2RT-90922",
"trackingId": "UHES873NSDA8-01",
"realTimeId": "211004-BDZ82NH1",
"integ": "uber",
"type": "express_delivery",
"shippingTypeId": "633c8e225d10601e4aed2b9d",
"shippingTypeTitle": "Standard delivery",
"carrierId": "633c8e5f1ee1d732b1158bc9",
"carrierName": "Standard delivery Uber",
"companyId": "633c8e80a4915c4ea17ccaca",
"companyName": "Uber Express",
"price": 10
}
}
En función de la notificación anterior, si se necesitara notificar vía webhook sólo entregas que sean de la integración de Delivery, los datos cargados en el filtro deberían ser los siguientes:
{
"type": "object",
"properties": {
"integ": {
"const": "uber"
}
},
"required": ["integ"]
}
3. Reintentos
JANIS realizará hasta 7 reintentos frente a escenarios de NO respuestas exitosas. Para conocer mayor detalle de la política de reintentos, se sugiere revisar la siguiente documentación.
Updated 8 months ago