---
title: "Create a consignment"
method: POST
path: "/consignments"
tags: ["Consignments"]
---

# Create a consignment

`POST /consignments`

Creates a new consignment.

The consignment type can be `SUPPLIER`, `OUTLET`, `STOCKTAKE` or `RETURN`. The workflows for these are:

- `SUPPLIER` workflow: `OPEN` -> `SENT` -> `DISPATCHED` -> `RECEIVED`
  * Can be `CANCELLED` at any time, except from `RECEIVED`
  * Cannot create a `DISPATCHED` or `RECEIVED` consignment directly
  * In the response `reference` refers to `Order number` and `name` refers to `Note`
- `OUTLET` workflow: `OPEN` -> `SENT` -> `RECEIVED` (can be `CANCELLED` at any time after `OPEN`)
- `RETURN` workflow: `OPEN` -> `SENT` or `CANCELLED`
- `STOCKTAKE` workflow: `STOCKTAKE` or `STOCKTAKE_SCHEDULED` -> `STOCKTAKE_IN_PROGRESS` -> `STOCKTAKE_IN_PROGRESS_PROCESSED` -> `STOCKTAKE_COMPLETE` (can be `CANCELLED` or `CLOSED` at any time)

🔒 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

## Request body

- ConsignmentRequest
  - `data` Consignment, required
    - `consignment_date` string, nullable — 11-28T19:02:15+00:00 (timestamp) - Consignment creation date.
    - `created_at` string, nullable — Creation timestamp in UTC.
    - `deleted_at` string, nullable — Deletion timestamp in UTC.
    - `due_at` string, nullable — 11-30T19:08:541+00:00 (timestamp) - Due date.
    - `id` string, uuid — Auto-generated object ID.
    - `name` string, required — Tue 29 Nov 2016 (string) - Consignment name. For orders, the note field in the UI will be the name value.
    - `outlet_id` string, uuid, required — A valid ID of an outlet where stock will be received.
    - `received_at` string, nullable — 11-30T19:08:541+00:00 (timestamp) - The date when consignment was received.
    - `reference` string, nullable — Order number.+ `total_count_gain` (number)
    - `source_outlet_id` string, uuid, nullable — A valid ID of an outlet where stock will come from. **Stock transfers only**.
    - `status` 'OPEN' | 'SENT' | 'DISPATCHED' | 'RECEIVED' | 'STOCKTAKE_IN_PROGRESS' | 'STOCKTAKE_SCHEDULED' | 'STOCKTAKE_IN_PROGRESS_PROCESSED' | 'STOCKTAKE_COMPLETE' | 'CLOSED' | 'CANCELLED' — * Supplier Order: One of `OPEN`, `SENT`, `DISPATCHED`, `RECEIVED`, `CANCELLED` * Outlet Transfer: One of `OPEN`, `SENT`, `RECEIVED`, `CANCELLED` * Return Order: One of `OPEN`, `SENT`, `CANCELLED` * Stocktake: One of `STOCKTAKE_SCHEDULED`, `STOCKTAKE_IN_PROGRESS`, `STOCKTAKE_IN_PROGRESS_PROCESSED`, `STOCKTAKE_COMPLETE`, `CLOSED`, `CANCELLED` This is not a definitive list and may be extended in future
    - `supplier_id` string, uuid, nullable — a valid supplier ID.
    - `supplier_invoice` string, nullable — Supplier invoice number.
    - `total_cost_gain` number, double, nullable — The cost of items over the expected level.
    - `total_cost_loss` number, double, nullable — The cost of items below the expected level.
    - `total_count_gain` number, double, nullable — The number of items over the expected level.
    - `total_count_loss` number, double, nullable — The number of items below the expected level.
    - `type` 'SUPPLIER' | 'OUTLET' | 'STOCKTAKE' | 'RETURN', required — One of `SUPPLIER`, `OUTLET`, `STOCKTAKE`, `RETURN`.
    - `updated_at` string — Last update timestamp in UTC.
    - `version` integer — Auto-incrementing object version number.

## Response `201`

- ConsignmentResponse
  - `data` Consignment
    - `consignment_date` string, nullable — 11-28T19:02:15+00:00 (timestamp) - Consignment creation date.
    - `created_at` string, nullable — Creation timestamp in UTC.
    - `deleted_at` string, nullable — Deletion timestamp in UTC.
    - `due_at` string, nullable — 11-30T19:08:541+00:00 (timestamp) - Due date.
    - `id` string, uuid — Auto-generated object ID.
    - `name` string, required — Tue 29 Nov 2016 (string) - Consignment name. For orders, the note field in the UI will be the name value.
    - `outlet_id` string, uuid, required — A valid ID of an outlet where stock will be received.
    - `received_at` string, nullable — 11-30T19:08:541+00:00 (timestamp) - The date when consignment was received.
    - `reference` string, nullable — Order number.+ `total_count_gain` (number)
    - `source_outlet_id` string, uuid, nullable — A valid ID of an outlet where stock will come from. **Stock transfers only**.
    - `status` 'OPEN' | 'SENT' | 'DISPATCHED' | 'RECEIVED' | 'STOCKTAKE_IN_PROGRESS' | 'STOCKTAKE_SCHEDULED' | 'STOCKTAKE_IN_PROGRESS_PROCESSED' | 'STOCKTAKE_COMPLETE' | 'CLOSED' | 'CANCELLED' — * Supplier Order: One of `OPEN`, `SENT`, `DISPATCHED`, `RECEIVED`, `CANCELLED` * Outlet Transfer: One of `OPEN`, `SENT`, `RECEIVED`, `CANCELLED` * Return Order: One of `OPEN`, `SENT`, `CANCELLED` * Stocktake: One of `STOCKTAKE_SCHEDULED`, `STOCKTAKE_IN_PROGRESS`, `STOCKTAKE_IN_PROGRESS_PROCESSED`, `STOCKTAKE_COMPLETE`, `CLOSED`, `CANCELLED` This is not a definitive list and may be extended in future
    - `supplier_id` string, uuid, nullable — a valid supplier ID.
    - `supplier_invoice` string, nullable — Supplier invoice number.
    - `total_cost_gain` number, double, nullable — The cost of items over the expected level.
    - `total_cost_loss` number, double, nullable — The cost of items below the expected level.
    - `total_count_gain` number, double, nullable — The number of items over the expected level.
    - `total_count_loss` number, double, nullable — The number of items below the expected level.
    - `type` 'SUPPLIER' | 'OUTLET' | 'STOCKTAKE' | 'RETURN', required — One of `SUPPLIER`, `OUTLET`, `STOCKTAKE`, `RETURN`.
    - `updated_at` string — Last update timestamp in UTC.
    - `version` integer — Auto-incrementing object version number.

---

[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)
