---
title: "Bulk update consignment products"
method: POST
path: "/consignments/{consignment_id}/bulk"
tags: ["Consignment Products"]
---

# Bulk update consignment products

`POST /consignments/{consignment_id}/bulk`

Add or update the products in a consignment in bulk.

**Note**: Must include either count or received for each product.

**Note**: It is not recommended to update more than 500 products at a time, as this may lead to server timeouts.

**Note**:

If the type is SUPPLIER then:

- Cannot add a composite product by this api
- Cannot update products if the consignment has a status of RECEIVED or CANCELLED
- If status is OPEN or SENT, the count value will be accumulated
- If status is DISPATCHED, the received quantity will be accumulated
- If status is OPEN, SENT or DISPATCHED, the cost will be updated
- If a received field is provided for consignment products in an OPEN or SENT Supplier Order - the order will be automatically marked as DISPATCHED. Remove the received field if you don't intend to dispatch the OPEN or SENT purchase order

🔒 Requires: One of the following scopes:
- `consignments:write:stock_order` scope for `SUPPLIER` and `RETURN` consignments
- `consignments:write:stock_transfer` scope for `OUTLET` consignments
- `consignments:write:inventory_count` scope for `STOCKTAKE` consignments

## Path parameters

- `consignment_id` string, uuid, required

## Request body

- ConsignmentProduct[]
  - `cost` string, nullable — The cost of the item.
  - `count` string, nullable — Expected item count.
  - `created_at` string — The creation timestamp in UTC.
  - `deleted_at` string, nullable — The deletion timestamp in UTC.
  - `is_included` boolean — Indicated whether the item was included via a filter. Can be `null`. For full count (no filters) always `true`.
  - `product_id` string, uuid, required — The ID of the product.
  - `product_sku` string, nullable — The SKU of the product.
  - `received` string — Observed item count.
  - `status` string — The status of the item. One of: `PENDING`, `SUCCESS`.
  - `updated_at` string — Last update timestamp in UTC.
  - `version` integer — Auto-incrementing object version number.

## Response `200`

OK

- object
  - `data` object
    - `product_id` object
      - `count` string
      - `received` string

---

[API](https://skmtc.net/lightspeedhq/apis/api-2026-07.md) · [All operations](https://skmtc.net/lightspeedhq/apis/api-2026-07/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightspeedhq/api-2026-07/revisions/72d4ceb46dbb/schema)
