Create a cycle count batch
Creates a cycle count batch, which fans out into one session per warehouse in scope.
Scope Type A (location, default): warehouse_ids is required; location_ids is optional and requires count_mode: bin_location.
Scope Type B (item): supply product_ids or lot_ids instead; warehouse_ids is an optional narrowing filter (omit it to count every warehouse where the selection has stock). Requires the CS_8871_CYCLE_COUNT_LOCATION_SCOPE feature flag — a tenant without it gets a 403, exactly as their UI would hide the option.
Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Body
Request body for creating a cycle count batch.
Scope Type A (location, the default): warehouse_ids is required. Optionally narrow to specific bins with location_ids (which requires count_mode: bin_location).
Scope Type B (item, requires the CS_8871_CYCLE_COUNT_LOCATION_SCOPE feature flag): supply product_ids or lot_ids instead. warehouse_ids becomes an optional narrowing filter — omit it to count every warehouse where the selection has stock.
location, item Required unless scope_type=item (then an optional narrowing filter).
Requires count_mode: bin_location.
Scope Type B "Products" sub-mode.
Scope Type B "Lots" sub-mode.
sku, bin_location Response
Created. Returns the batch with its per-warehouse sessions. May include a non-blocking warning when some selected products/lots had no stock.
A cycle count batch — the top-level grouping created by POST /pickflow/cycle-counts. A batch fans out into one session per warehouse in scope (see sessions).
location (Scope Type A) counts whole warehouses/bins; item (Scope Type B) counts specific products or lots. Item scope requires the CS_8871_CYCLE_COUNT_LOCATION_SCOPE feature flag.
location, item sku, bin_location When true, counters do not see the expected quantity while counting.
The per-warehouse sessions belonging to this batch.
Total number of sessions in the batch. Present on the batch list/detail endpoints (redundant with sessions.length when the full collection is also returned).
Present only on the create response when scope_type=item and some selected products/lots had no stock and were dropped from the count.