---
title: "Crear orden de compra o guía"
method: POST
path: "/admin/inventory/stores/{storeId}/purchase-documents"
---

# Crear orden de compra o guía

`POST /admin/inventory/stores/{storeId}/purchase-documents`

## Request

- Base URL: `https://api.service.getjusto.com/v3`
- URL: `https://api.service.getjusto.com/v3/admin/inventory/stores/{storeId}/purchase-documents`
- Auth: none declared

Una orden de compra se guarda en borrador y requiere aprobación antes de facturarla. Una guía registra entradas de inventario. Se conservan el correlativo y los permisos del flujo existente. Requiere autorización admin y un usuario conectado; un token de integración sin usuario responde userRequired. Se aplican los mismos permisos y validaciones del formulario de inventario.

## Path parameters

- `storeId` string, required

## Request body

- ApiInventoryDocumentInput
  - `comments` string, nullable: Comentarios del documento.
  - `providerId` string, nullable, required: Proveedor de GET /admin/inventory/providers.
  - `invoiceId` string, nullable: Identificador de la guía de despacho.
  - `purchaseOrderNumber` number, nullable: Número de orden propuesto. Puede omitirse para usar el correlativo vigente del local.
  - `issueDate` string, date-time, nullable: Fecha de emisión del documento.
  - `documentType` 'purchaseOrder' | 'deliveryNote', required: Una orden de compra nace en borrador; una guía registra entradas de inventario.
  - `ingredients` object[]: Lista completa de ingredientes comprados y sus costos e impuestos.
    - `ingredientId` string, nullable, required: ID del ingrediente. Se obtiene de GET /admin/inventory/ingredients o GET /tabs/{websiteId}/ingredients.
    - `quantity` number, nullable, required: Cantidad en la unidad base del ingrediente, incluso si se indica conversionName. Para comprar 2 sacos de 25 kg de un ingrediente medido en kg, envía quantity: 50.
    - `ingredientName` string, nullable: Nombre del ingrediente; el servicio lo actualiza desde el catálogo.
    - `conversionName` string, nullable: Nombre exacto de una conversión configurada en el ingrediente.
    - `inConversionQuantity` number, nullable: Cantidad en la conversión elegida, calculada por el servicio como quantity dividido por el factor. No es necesario enviarla.
    - `stockRoomId` string, nullable: ID de bodega de la marca. Se obtiene de GET /admin/inventory/stock-rooms.
    - `totalCost` number, nullable, required: Costo total de la línea, incluidos impuestos. Las compras ingresan a la bodega definida por el flujo actual del local.
    - `discount` number, nullable: Descuento de la línea, en moneda del local.
    - `totalNetCost` number, nullable: Costo total neto de la línea.
    - `totalTaxCost` number, nullable: Impuestos de la línea.
    - `netCostPerUnit` number, nullable: Costo neto por unidad; el servicio lo recalcula.
    - `taxes` object: Impuestos de la línea. Usa el desglose del país de la marca, como en el formulario de inventario.
      - `cl` object: Desglose de impuestos para Chile.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `co` object: Desglose de impuestos para Colombia.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `mx` object: Desglose de impuestos para México.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `pe` object: Desglose de impuestos para Perú.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `ec` object: Desglose de impuestos para Ecuador.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `cr` object: Desglose de impuestos para Costa Rica.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
  - `items` object[]: Lista completa de ítems adicionales sin ingrediente; [] si no hay.
    - `description` string, nullable, required: Descripción del ítem adicional sin ingrediente.
    - `quantity` number, nullable, required: Cantidad del ítem.
    - `totalCost` number, nullable, required: Costo total del ítem.
    - `discount` number, nullable: Descuento del ítem.
    - `totalNetCost` number, nullable: Costo neto del ítem.
    - `totalTaxCost` number, nullable: Impuestos del ítem.
    - `taxes` object: Impuestos de la línea. Usa el desglose del país de la marca, como en el formulario de inventario.
      - `cl` object: Desglose de impuestos para Chile.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `co` object: Desglose de impuestos para Colombia.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `mx` object: Desglose de impuestos para México.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `pe` object: Desglose de impuestos para Perú.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `ec` object: Desglose de impuestos para Ecuador.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
      - `cr` object: Desglose de impuestos para Costa Rica.
        - `taxTypes` string[]: Códigos de impuesto del país aplicables a esta línea.
        - `baseAmount` number, nullable: Monto neto de la línea, antes de impuestos.
        - `amount` number, nullable: Monto de impuestos de la línea.
        - `totalAmount` number, nullable: Monto total de la línea, incluidos impuestos.
        - `netCost` number, nullable: Costo neto utilizado en inventario según la configuración tributaria del local.
        - `netCostPerUnit` number, nullable: Costo neto por unidad.
  - `files` object[]: Archivos previamente cargados que respaldan el documento.
    - `_id` string, nullable: ID del archivo previamente cargado en Tabs.
    - `name` string, nullable: Nombre del archivo.
    - `type` string, nullable: Tipo MIME del archivo.
    - `size` number, nullable: Tamaño en bytes.
    - `status` string, nullable: Estado del archivo devuelto por la carga.
    - `key` string, nullable: Clave de almacenamiento devuelta por la carga.
    - `bucket` string, nullable: Bucket de almacenamiento devuelto por la carga.
    - `hash` string, nullable: Huella del archivo devuelta por la carga.
    - `externalUrl` string, nullable: URL externa del archivo, si corresponde.
    - `createdBy` string, nullable: Usuario que cargó el archivo.
    - `createdAt` string, date-time, nullable: Fecha de carga.
    - `dimensions` object: Dimensiones de una imagen cargada.
      - `width` number, nullable: Ancho en píxeles.
      - `height` number, nullable: Alto en píxeles.
    - `colorsData` object: Colores de la imagen devueltos por la carga.
      - `background` string, nullable: Color de fondo.
      - `front` string, nullable: Color de primer plano.
      - `blurhash` string, nullable: Representación desenfocada de la imagen.
    - `resizedData` object: Variantes de imagen devueltas por la carga.
      - `extraLargeURL` string, nullable: URL de la variante de imagen generada durante la carga.
      - `largeURL` string, nullable: URL de la variante de imagen generada durante la carga.
      - `mediumURL` string, nullable: URL de la variante de imagen generada durante la carga.
      - `smallURL` string, nullable: URL de la variante de imagen generada durante la carga.
      - `thumbnailURL` string, nullable: URL de la variante de imagen generada durante la carga.

## Response `200`

The OpenAPI spec

- object
  - `success` boolean
  - `data` object: Registro de inventario con los campos de su operación, como estado, ingredientes, cantidades y costos. Las fechas se devuelven en el formato del servicio Tabs.
    - `_id` string: ID del registro creado, consultado o actualizado.
    - `websiteId` string: Marca propietaria del registro.
    - `storeId` string: Local propietario, para operaciones por local.

## Other responses

- `400`: Errors

## Changes

- **2026-10-31** `4ad06bd631ce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getjusto/apis/justo-api/changes/admin/inventory/stores/:storeId/purchase-documents/post.md)

---

[API](https://skmtc.dev/getjusto/apis/justo-api.md) - [All operations](https://skmtc.dev/getjusto/apis/justo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getjusto/apis/justo-api/revisions/c810bd8246fd?raw)
