Referencia

Errores y reintentos seguros

Los errores usan application/problem+json. Registra code, request_id y X-Request-Id, sin credenciales ni información personal.

{
  "type": "https://developers.moku.cl/reference/errors/#inventory-version-conflict",
  "title": "Inventory version conflict",
  "status": 409,
  "code": "INVENTORY_VERSION_CONFLICT",
  "detail": "Inventory changed; retrieve the item and retry.",
  "request_id": "req_…"
}

Qué reintentar

RespuestaAcción
400Corrige la solicitud; no reintentes igual.
401/403Corrige token o scopes.
409Lee el estado actual y reconcilia.
429Espera Retry-After con jitter.
500/503Verifica el estado y reintenta con backoff; conserva la misma clave para una escritura idéntica.

Códigos

STOCK_EFFECT_CONFLICT · 409

Consulta la operación y verifica cuenta, autoridad, revisión y mapeo antes de continuar.

STOCK_EFFECT_BUSY · 409

La operación tiene una concesión vigente. Respeta Retry-After y vuelve a consultar su estado.

STOCK_SOURCE_BUSY · 409

Otra operación ocupa el mismo artículo fuente. Respeta Retry-After sin cambiar la identidad del pedido.

STOCK_EFFECT_VERSION_CONFLICT · 409

Vuelve a leer la versión de la operación antes de solicitar una nueva concesión.

STOCK_CLAIM_EXPIRED · 409

La concesión venció o cambió. Vuelve a consultar la operación y conserva cualquier comando incierto.

STOCK_RECONCILIATION_REQUIRED · 409

Consulta el recibo del comando original. Un recibo ausente nunca autoriza a repetir el débito.

INVALID_MEDIA · 400

Verifica el SHA-256 y envía una imagen JPEG, PNG o WebP válida, de un solo cuadro y hasta 16 megapíxeles.

MEDIA_TOO_LARGE · 413

Reduce la imagen: tanto el archivo original como la salida normalizada deben medir hasta 2 MiB.

MEDIA_QUOTA_EXCEEDED · 409

La tienda alcanzó su presupuesto de 256 MiB o 1000 imágenes, incluidas cargas pendientes. Contacta a Moku antes de agregar más; reintentar el mismo contenido no consume otra admisión.

AUTHORITY_CONFLICT · 409

Detén escrituras, liquida reservas y pedidos pendientes, vuelve a leer la autoridad y reintenta el reemplazo de roles.

CONNECTION_STATE_CONFLICT · 409

Vuelve a leer la conexión o conflicto y reintenta con su versión actual.

EXTERNAL_ORDER_LINES_LOCKED · 409

Conserva las líneas comerciales originales; corrige el pedido en el sistema fuente mediante una operación compatible.

EXTERNAL_ORDER_SOURCE_CONFLICT · 409

No reutilices una versión fuente para contenido diferente; envía una nueva versión y timestamp.

EXTERNAL_ORDER_STALE · 409

Descarta la observación antigua y continúa desde el último source_updated_at aceptado.

EXTERNAL_ORDER_TERMINAL · 409

No intentes reabrir un pedido terminal; consulta su estado y crea un pedido distinto si corresponde.

EXTERNAL_ORDER_TERMINAL_REVIEW_REQUIRED · 409

Resuelve primero terminal-resolution con la versión actual del pedido externo.

FULFILLMENT_REVIEW_REQUIRED · 409

Detén fulfillment y completa la revisión terminal antes de avanzar.

FULFILLMENT_STATE_CONFLICT · 409

Vuelve a leer el pedido y aplica solo la siguiente transición monotónica permitida.

FULFILLMENT_VERSION_CONFLICT · 409

Vuelve a leer fulfillment y reintenta con expected_version actualizado.

IDEMPOTENCY_KEY_REUSED · 409

Usa una clave nueva para trabajo distinto; conserva la clave original solo para un replay idéntico.

INSUFFICIENT_SCOPE · 403

Crea o usa un PAT con el bundle requerido para el endpoint.

INTERNAL_ERROR · 500

Registra request_id y contacta soporte; verifica el estado antes de repetir una escritura.

INVALID_CURSOR · 400

Usa sin modificar el next_cursor de la página anterior y con el mismo recurso y filtros.

INVALID_REQUEST · 400

Corrige cuerpo, parámetros o cabeceras conforme al esquema OpenAPI; no repitas la misma solicitud.

INVENTORY_VERSION_CONFLICT · 409

Vuelve a leer el item, recalcula target_on_hand y reintenta con una clave nueva.

INVENTORY_UNAVAILABLE · 409

Actualiza disponibilidad y reduce o elimina las unidades que ya no pueden reservarse.

LISTING_CONFLICT · 409

Vuelve a leer el listing y corrige identidad, estado o versión fuente antes de reintentar.

ON_HAND_BELOW_RESERVED · 409

No bajes on_hand por debajo de reserved; libera compromisos o usa una cantidad mayor.

PRODUCT_REVISION_CONFLICT · 409

Vuelve a leer el producto, fusiona cambios y reintenta con expected_revision actualizado.

PRODUCT_SLUG_CONFLICT · 409

Elige otro slug estable para el vendedor.

PRODUCT_STATE_CONFLICT · 409

Vuelve a leer el producto y usa una transición válida para su estado actual.

RATE_LIMITED · 429

Espera Retry-After, agrega jitter y reduce concurrencia por PAT.

RESERVATION_CONFLICT · 409

Vuelve a leer la reserva y no mezcles comandos de pedido externo con comandos públicos.

RESERVATION_EXPIRED · 409

Crea una reserva nueva después de refrescar disponibilidad.

RESERVATION_MANAGED_BY_EXTERNAL_ORDER · 409

Cambia el estado mediante external-orders; no renueves, consumas ni liberes la reserva directamente.

RESOURCE_NOT_FOUND · 404

Verifica el ID y el vendor concedido al PAT; Moku no revela recursos de otro vendedor.

SERVICE_UNAVAILABLE · 503

Reintenta con backoff; para una escritura idéntica conserva la misma Idempotency-Key y verifica el estado.

UNAUTHENTICATED · 401

Envía un PAT válido, no vencido ni revocado en Authorization: Bearer.