---
title: "Create or update inventory"
method: POST
path: "/v1/inventory"
tags: ["Store Catalog"]
---

# Create or update inventory

`POST /v1/inventory`

Create or update inventory levels for products at specific store locations. Links products to store locations with quantity and availability information.

## Request body

- StoreInventoryListInputSerializer
  - `inventory` StoreInventoryInputSerializer[], required — List of store inventory to create or update
    - `externalProductId` string, nullable — The external product ID from an external system
    - `externalStoreLocationId` string, nullable — The external store ID from an external system
    - `quantity` integer, nullable — The quantity of the product in stock
    - `valueCents` integer, nullable — The price of the product in cents
    - `currency` string, nullable — The currency code for the product price
    - `available` boolean, required — Whether the product is available for purchase
    - `location` LocationDataInputSerializer
      - `aisle` string, nullable — The aisle location of the product in the store
      - `bay` string, nullable — The bay location of the product in the store
      - `shelf` string, nullable — The shelf location of the product in the store
    - `details` StoreInventoryDetailsInputSerializer
      - `weightedItemInfo` StoreInventoryWeightedItemInfoInputSerializer
        - `valueCentsPerMeasurementUnit` integer, nullable — The price per cents per measurement unit
      - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)
    - `providerConfigs` InventoryProviderConfigInputSerializer[], nullable — Provider-specific configurations for this inventory item
      - `provider` string, required — Provider name
      - `serviceType` string, required — Service type (e.g., pick_and_deliver, marketplace)
      - `valueCents` integer, required — The price of the product in cents for this provider
      - `currency` string, required — The currency code for the product price
      - `details` StoreInventoryDetailsInputSerializer
        - `weightedItemInfo` StoreInventoryWeightedItemInfoInputSerializer
          - `valueCentsPerMeasurementUnit` integer, nullable — The price per cents per measurement unit
        - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)
      - `available` boolean, nullable — Whether this provider config is available
      - `discount` InventoryDiscountInputSerializer
        - `valueCents` integer, required — The discounted price in cents
        - `startTime` string, required — The start time of the discount period in ISO 8601 format
        - `endTime` string, required — The end time of the discount period in ISO 8601 format
      - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)

## Response `200`

OK

- StoreInventoryOutputSerializer[] — Expected output when listing products, it will return an array of StoreInventoryOutputSerializer.
  - `id` string, required
  - `productId` string, required — The product ID associated with this inventory item
  - `externalProductId` string, nullable — The external product ID from an external system
  - `storeLocationId` string, required — The store location ID where this inventory is located
  - `externalStoreLocationId` string, nullable — The external store ID from an external system
  - `quantity` integer, required — The quantity of the product in stock
  - `valueCents` integer, nullable — The price of the product in cents
  - `currency` string, nullable — The currency code for the product price
  - `available` boolean, required — Whether the product is available for purchase
  - `location` LocationDataOutputSerializer
    - `aisle` string, nullable — The aisle location of the product in the store
    - `bay` string, nullable — The bay location of the product in the store
    - `shelf` string, nullable — The shelf location of the product in the store
  - `details` StoreInventoryDetailsOutputSerializer
    - `weightedItemInfo` StoreInventoryWeightedItemInfoOutputSerializer
      - `valueCentsPerMeasurementUnit` integer, nullable — The price per cents per measurement unit
    - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)
  - `providerConfigs` InventoryProviderConfigOutputSerializer[], nullable — Provider-specific configurations for this inventory item
    - `provider` string, required — Provider name
    - `serviceType` string, required — Service type (e.g., pick_and_deliver, marketplace)
    - `valueCents` integer, required — The price of the product in cents for this provider
    - `currency` string, required — The currency code for the product price
    - `details` StoreInventoryDetailsOutputSerializer
      - `weightedItemInfo` StoreInventoryWeightedItemInfoOutputSerializer
        - `valueCentsPerMeasurementUnit` integer, nullable — The price per cents per measurement unit
      - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)
    - `available` boolean, nullable — Whether this provider config is available
    - `discount` InventoryDiscountOutputSerializer
      - `valueCents` integer, required — The discounted price in cents
      - `startTime` string, required — The start time of the discount period in ISO 8601 format
      - `endTime` string, required — The end time of the discount period in ISO 8601 format
    - `taxPercentage` number, nullable — Tax rate as a decimal (e.g., 0.1 for 10%)

## Other responses

- `422` — Unprocessable Content

---

[API](https://skmtc.net/usenash/apis/nash-api.md) · [All operations](https://skmtc.net/usenash/apis/nash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usenash/nash-api/revisions/09a23a95889b/schema)
