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:

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.