---
title: "Corregir compra de inventario"
method: PUT
path: "/admin/inventory/stores/{storeId}/purchases/{accountingMovementId}"
---

# Corregir compra de inventario

`PUT /admin/inventory/stores/{storeId}/purchases/{accountingMovementId}`

## Request

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

Envía los ingredientes e ítems completos y el despacho actual (null si no existe), conservando costos e impuestos de las líneas que no cambian. Reutiliza updateAccountingMovement y sus movimientos compensatorios. La compra no puede convertirse en otro tipo de movimiento. 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
- `accountingMovementId` string, required

## Request body

- ApiInventoryPurchaseUpdateInput
  - `comments` string, nullable: Comentarios de la compra.
  - `providerId` string, nullable: Proveedor de GET /admin/inventory/providers.
  - `invoiceId` string, nullable, required: Número de factura o identificador de compra; se valida la duplicidad por proveedor y local.
  - `issueDate` string, date-time, nullable, required: Fecha de emisión de la factura.
  - `dueDate` string, date-time, nullable: Fecha de vencimiento.
  - `paidAt` string, date-time, nullable: Fecha de pago. Al crear con este campo se registra también el pago contable de la compra.
  - `paymentMethod` 'creditCard' | 'debitCard' | 'cash' | 'transfer' | 'check' | 'other' | 'null', nullable: Medio utilizado para el pago contable.
  - `accountingMovementCategoryId` string, nullable: Categoría contable de GET /admin/inventory/accounting-categories.
  - `ingredients` object[], required: 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[], required: 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.
  - `delivery` object, nullable, required: Costo del despacho. En una edición envía su valor actual, o null cuando la compra no tiene despacho.
    - `totalCost` number, nullable, required: Costo total del despacho, incluidos impuestos.
    - `totalNetCost` number, nullable: Costo neto del despacho.
    - `totalTaxCost` number, nullable: Impuestos del despacho.
    - `distributionType` 'proportional' | 'equal': Cómo distribuir el costo de despacho entre ingredientes, igual que en Vite.
    - `taxTypes` string[], nullable: Códigos de impuestos del despacho.
    - `taxes` object: Desglose tributario del despacho.
      - `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.
  - `invoiceFiles` object[]: Archivos previamente cargados, en el mismo formato que el formulario de Tabs.
    - `_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/purchases/:accountingMovementId/put.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)
