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.

Entre los eventos de OMS que puedes notificar está la anulación de factura: al ejecutar la acción Cancelar factura desde el detalle de un pedido (Pedidos → detalle del pedido → Cancelar factura), Janis emite el evento oms:order:invoice-canceled una única vez por cada anulación. El evento ya está disponible en el catálogo, pero la suscripción se crea de forma manual: mientras no exista una suscripción activa apuntando a tu endpoint, la anulación no se notifica.

{
  "service": "oms",
  "entity": "order",
  "eventName": "invoice-canceled",
  "eventDate": "2026-08-11T19:52:09.819Z",
  "metadata": {
    "id": "6a7b791bb3dc2643c23fc846",
    "commerceId": "1653480533443-01",
    "commerceSequentialId": "533443",
    "orderGroupId": "6a7b7910742446949803904",
    "orderGroupCommerceId": "1653480533443-01",
    "sellerSalesChannelId": "6321f4f20573ce17985ee3e1",
    "sellerSalesChannelReferenceId": "<YOUR_SALES_CHANNEL_REFERENCE_ID>",
    "sellerSalesChannelName": "<YOUR_SALES_CHANNEL_NAME>",
    "carrierRefId": "<YOUR_CARRIER_REF_ID>",
    "invoiceIds": ["6a7b7cac9a0ef8124fe716cb"],
    "invoices": [
      { "id": "6a7b7cac9a0ef8124fe716cb", "number": "F6a7b7b203fa2dbfbe244ff98", "value": 235.67 }
    ]
  }
}
🚧

El campo invoices puede no llegar

Si el pedido conservaba solo los identificadores de sus facturas, la notificación viaja sin el campo invoices. El campo invoiceIds siempre está presente, así que conviene tomarlo como referencia principal al procesar el evento.

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 perteneciente 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.


Did this page help you?