Skip to main content

Create Stock Take

POST 

/api/stock-takes

Create a new stock take.

Required scope: inventory:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Authentication: Requires Bearer token.

status: defaults to draft if not provided.

date_count: defaults to today if not provided.

mode: full_count (default) or adjustment.

is_initial_count: marks this as the first ever count for the warehouse.

condition: optional condition label (e.g., 'new', 'used').

items: optional array of stock take line items. Can be added later. Each item: product_id (required, must exist), qty_counted (numeric, min 0), unit_cost (optional numeric, min 0 — an explicit 0 is valid and preserved, it does not fall back to the existing cost).

warehouse_id must be a standard (non-virtual) warehouse.

Response includes deletable (boolean) and delete_blocked_reasons (string[]): a draft/open stock take is always deletable; a closed stock take is deletable only when none of its FIFO cost layers have been consumed (otherwise deletable is false and delete_blocked_reasons lists the blocking stock take items).

Requires permission: inventory.count

is_blind (optional boolean, default false): a blind cycle count hides the system on-hand for items that have not yet been counted — their snapshot_inventory, snapshot_available, snapshot_reserved, and snapshot_committed_to_fulfillment are returned as null so the counter records what they find without anchoring to the expected quantity; once an item is counted the snapshots are revealed for variance review.

Each item may also carry variance_reason — a root-cause code for why the counted quantity differs from the system on-hand. One of: receiving_error, picking_error, damage, mislabel, shrinkage, unknown.

Request

Responses

OK

Response Headers
    Content-Type