# Códigos de error: Órdenes

> Crear y editar órdenes de Zauru desde el catálogo. Mismo cuerpo de operación que cotizaciones (`errors[]` por línea, `side_effects`).

**Cómo se detecta (toda la familia):** La respuesta (`code`, `errors[]`, `side_effects`).

**Qué hacer (toda la familia):** Corregir la línea o el campo que dice `errors[]`. Con `side_effects.lead_promoted_to_client` u `order_created`, revisa Zauru antes de reintentar.

Lo que un código no dice lo hereda de la familia.

## `agency_not_available`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La agencia elegida no está disponible para esta orden o cotización (no cotizable, inactiva o de otra entidad).

## `attachments_limit_exceeded`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Se pasó el máximo de adjuntos (una orden acepta hasta dos).

## `bundle_tracking_resolution_failed`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** No se pudo resolver el seguimiento (serie o lote) de un combo: hace falta un cliente (payee) válido en Zauru.

## `catalog_bundle_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El combo elegido no se encontró en el catálogo.

## `catalog_detail_incomplete`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El detalle del producto en el catálogo está incompleto (falta precio, unidad o datos de Zauru).

## `catalog_invoice_attachments_not_supported`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El catálogo pidió una factura (`document: "invoice"`, configuración `catalog_order_as_invoice`) con un PDF o una imagen. La guía de Zauru no documenta adjuntos al crear la factura, así que se rechaza antes de tocar Zauru.
- **Qué hacer:** Quitar los archivos (el drawer en modo factura no los muestra) o crear una orden.

## `catalog_item_not_found`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El producto elegido no se encontró en el catálogo.

## `catalog_order_as_invoice_disabled`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Se rechaza antes de leer o tocar Zauru.
- **Causa típica:** La configuración se apagó con el catálogo abierto, o alguien llamó la API con la marca sin tener la configuración.
- **Qué hacer:** Recargar el catálogo (el switch vuelve a decir +Orden) o encender la configuración en Configuraciones > Catálogo.

## `currency_resolution_failed`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** No se pudo resolver la moneda del documento (el producto o la entidad no dicen en qué moneda está).

## `delivery_address_required`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Con entrega, la dirección es obligatoria.

## `delivery_date_required`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Con entrega, la fecha es obligatoria.

## `discount_not_allowed`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El descuento elegido no está disponible para esa línea.

## `flexible_price_not_allowed`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El producto no permite editar su precio.

## `global_discount_invalid`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El descuento global no puede pasar de 100 %.

## `image_invalid_type`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La imagen adjunta tiene que ser png, jpg, jpeg o webp.

## `mixed_currency_not_supported`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Un documento no puede mezclar productos de monedas distintas.

## `order_compose_invalid`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** La orden tiene errores de armado que bloquean (ver `errors[]`).

## `order_create_failed`

- **Tipo:** detalle, HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** Zauru no creó la orden, o no devolvió su id (503). Es el mismo código cuando el catálogo crea una factura (`catalog_order_as_invoice`); el `message` dice `invoice`.
- **Qué hacer:** Revisar en Zauru si la orden quedó creada ANTES de reintentar, para no duplicarla.

## `order_create_failed_after_payee_creation`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El lead ya se promovió a cliente en Zauru pero la orden no se creó; `side_effects` lo dice. Reintentar no vuelve a crear el cliente.

## `order_locked_not_editable`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una orden emitida o pagada no se edita desde el catálogo.

## `order_payee_mismatch`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El cliente (payee) de la orden no es el del lead pedido.

## `order_source_agency_mismatch`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una orden de origen es de otra agencia.

## `order_source_quantity_exceeded`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una línea toma más cantidad de la que le queda disponible a su línea de origen.

## `order_source_unavailable`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una línea de la orden de origen ya no está disponible.

## `order_update_failed`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Zauru no aceptó la actualización de la orden.

## `order_voided_not_editable`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Una orden anulada no se edita.

## `payee_create_failed`

- **Tipo:** detalle, HTTP · **HTTP:** 503 · **Estado:** vigente
- **Qué significa:** Zauru no devolvió el id del cliente (payee) al promover el lead (503).
- **Qué hacer:** Revisar en Zauru si el cliente quedó creado antes de reintentar.

## `payment_term_not_allowed`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El término de pago elegido no está permitido para esta orden.

## `pdf_invalid_type`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El adjunto PDF tiene que ser un PDF.

## `quantity_requires_integer`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** El producto solo acepta cantidades enteras.

## `seller_not_available`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El vendedor elegido no está disponible para este documento.

## `seller_not_linked_to_zauru`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El vendedor elegido no está vinculado a un empleado de Zauru: sin eso no se puede crear el documento.
- **Qué hacer:** Vincular el usuario con su empleado de Zauru.

## `shipper_not_available`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** El transportista elegido no está disponible.

## `shipper_required`

- **Tipo:** detalle, HTTP · **HTTP:** 400 · **Estado:** vigente
- **Qué significa:** Con entrega, el transportista es obligatorio.

## `stock_exceeded`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La cantidad pedida pasa la existencia disponible.

## `tracking_not_available`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** La línea con seguimiento (serie o lote) no tiene unidades disponibles o su cantidad no es mayor a 0.

## `tracking_quantity_requires_integer`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Las líneas con serie o lote solo aceptan cantidades enteras.

## `tracking_stock_exceeded`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** No hay suficientes series o lotes disponibles para la cantidad pedida.

## `zauru_credit_limit_reached`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Zauru rechazó el término de pago porque el cliente llegó a su límite de crédito.

## `zauru_validation_error`

- **Tipo:** detalle · **HTTP:** — · **Estado:** vigente
- **Qué significa:** Zauru rechazó un campo de la orden con un error de validación; `field` y `message` dicen cuál.
