Webhook de errores de publicación de stock en VTEX

Notificación de cada publicación de stock de Janis hacia VTEX que no se completa con éxito.

Cuando Janis publica stock hacia una cuenta de VTEX, puede ocurrir que la publicación no se complete: el SKU o el warehouse todavía no existen en VTEX, VTEX rechaza la request o la plataforma no responde después de varios reintentos. Este webhook notifica cada uno de esos casos a un sistema externo (ERP, middleware o herramienta de monitoreo), para que el equipo de integración pueda detectarlos y darles tratamiento sin tener que revisar la publicación de forma manual.

📘

Antes de empezar

Configuración de la suscripción

La notificación solo se envía si existe una suscripción activa con el evento correspondiente. Aunque Janis detecte el error, sin suscripción no se notifica nada.

  1. Ingresar a Webhooks y crear una suscripción nueva.
  2. Completar el Nombre, la URL del endpoint y, si el endpoint lo requiere, el esquema de autenticación.
  3. En el campo de eventos, seleccionar el trigger Vtex Wms - Stock - Stock Publish Error.
  4. Opcional: configurar un Filtro para recibir solo algunos tipos de error (por ejemplo, filtrando por errorType).
  5. Guardar la suscripción.

Para el detalle general de suscripciones y filtros, ver Suscripción de Webhook para notificar Eventos.

Estructura de la notificación

Cada error genera un evento stockPublishError del servicio vtex-wms, con la siguiente información en metadata:

CampoDescripción
skuVtexIdID del SKU en VTEX. Puede llegar en null si el SKU todavía no existe en VTEX.
skuReferenceIdReference ID del SKU en Janis Catalog.
warehouseVtexIdID del warehouse en VTEX. Puede llegar en null.
warehouseReferenceIdReference ID del warehouse en Janis.
accountVtexNameNombre o código de la cuenta VTEX.
stockStock físico del SKU en el warehouse.
availableStockStock disponible que se intentó publicar en VTEX.
errorTypeTipo de error. Ver Tipos de error.
errorMessageMensaje descriptivo del error.
vtexResponse.statusCódigo de respuesta de VTEX. Solo llega cuando la request alcanzó a VTEX.
vtexResponse.statusTextMensaje de respuesta de VTEX. Solo llega cuando la request alcanzó a VTEX.

El campo eventDate indica la fecha del evento en UTC.

🚧

errorType puede llegar vacío

Cuando el error ocurre antes de que la request llegue a VTEX y no corresponde a ninguno de los tipos de la tabla, la notificación viaja sin errorType y solo con errorMessage. Conviene contemplar este caso al procesar el evento.

Tipos de error

Errores previos a la publicación

Janis detecta el problema antes de enviar la request a VTEX:

errorTypeCuándo ocurre
skuNotFoundJanis todavía no tiene el ID de VTEX del SKU, sin importar si el SKU llega por importación o por publicación.
skuNotPublishedJanis no logró publicar el SKU en VTEX.
warehouseNotFoundJanis no tiene la referencia del warehouse en VTEX.
🚧

Solo en la primera publicación de stock

Estos tres errores se evalúan únicamente cuando la combinación de SKU y warehouse publica stock por primera vez en esa cuenta VTEX. Si el SKU ya venía publicando stock y luego falla, el error se informa con el tipo que devuelva VTEX (por ejemplo, vtexClientError).

Consideraciones sobre warehouseNotFound:

  • Si el warehouse no está asociado a un canal de venta de la cuenta VTEX, su stock no se envía a publicar, por lo que no se genera ningún error ni notificación.
  • Si la cuenta está configurada para publicar warehouses hacia VTEX (en lugar de importarlos), el warehouse se crea en VTEX automáticamente al poco tiempo y el error deja de notificarse.

Errores al publicar en VTEX

La request llega a VTEX y la respuesta no es exitosa:

errorTypeRespuesta de VTEX¿Se reintenta?
vtexTooManyRequests429 Too Many RequestsSí. Se notifica al agotar los reintentos.
vtexLocked423 LockedSí. Se notifica al agotar los reintentos.
vtexServerError5xx Error interno de VTEXSí. Se notifica al agotar los reintentos.
vtexClientError4xx (por ejemplo 400, 401, 403 o 404)No. Se notifica en el momento.
👍

Revisar credenciales ante vtexClientError

Un vtexClientError con 401 o 403 suele indicar un problema con las credenciales de la cuenta VTEX configurada en Janis. Ver Cuentas VTEX.

Ejemplos

SKU que todavía no existe en VTEX:

{
  "service": "vtex-wms",
  "entity": "stock",
  "eventName": "stockPublishError",
  "metadata": {
    "skuVtexId": null,
    "skuReferenceId": "<YOUR_SKU_REFERENCE_ID>",
    "warehouseVtexId": "<YOUR_WAREHOUSE_VTEX_ID>",
    "warehouseReferenceId": "<YOUR_WAREHOUSE_REFERENCE_ID>",
    "accountVtexName": "<YOUR_VTEX_ACCOUNT>",
    "stock": 80,
    "availableStock": 23,
    "errorType": "skuNotFound"
  },
  "eventDate": "2026-03-19T11:20:42.348Z"
}

Reintentos agotados por límite de requests de VTEX:

{
  "service": "vtex-wms",
  "entity": "stock",
  "eventName": "stockPublishError",
  "metadata": {
    "skuVtexId": 12345,
    "skuReferenceId": "<YOUR_SKU_REFERENCE_ID>",
    "warehouseVtexId": "<YOUR_WAREHOUSE_VTEX_ID>",
    "warehouseReferenceId": "<YOUR_WAREHOUSE_REFERENCE_ID>",
    "accountVtexName": "<YOUR_VTEX_ACCOUNT>",
    "stock": 105,
    "availableStock": 105,
    "errorType": "vtexTooManyRequests",
    "errorMessage": "429 - Too Many Requests",
    "vtexResponse": {
      "status": 429,
      "statusText": "Too Many Requests"
    }
  },
  "eventDate": "2026-03-19T11:55:10.768Z"
}
📘

Volumen de notificaciones

Ante un incidente de publicación (por ejemplo, una caída de VTEX), se puede recibir un volumen alto de notificaciones en pocos minutos, una por cada registro de stock afectado. El endpoint debe estar preparado para responder rápido y procesar los eventos de forma asíncrona. Ver Webhooks: Buenas prácticas.


Did this page help you?