Skip to main content

Accept 3PL Counts

POST 

/api/3pl-inventory/integration-instances/:integrationInstance/snapshots/:snapshot/stock-takes

Accept the 3PL's count for the selected lines. Creates one adjustment-mode stock take per SKU.io warehouse, adjusting each product by its difference AT THE SNAPSHOT TIME and dated at the snapshot, so movements recorded since the snapshot are kept. Added units are valued at FIFO / best-available cost. Lines are stamped with the stock take that accepted them.

Required scope: inventory:write

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

Authentication: Requires Bearer token (inventory:write scope) and the inventory count permission.

Select lines with exactly one of:

  • line_ids: explicit line IDs
  • filter: the same keys as the List Comparison Lines filters (e.g. {"status": "sku_higher", "warehouse_id": "7", "filter_groups": "<base64>"}). An empty object selects every line. The filter is resolved against the stored snapshot, never the live 3PL figures.

Body fields:

  • status (required): closed finalizes the stock take; draft saves it for review. A closed stock take that would consume stock allocated to open orders is saved as a draft instead, with a warning.
  • reason (required, max 255): recorded in the stock take notes.
  • notes (optional, max 1000).

Returns 422 when the snapshot is stale (not the latest completed, or older than 48 hours), when every selected line was already accepted, or when no selected line has an acceptable difference.

Holds the integration's snapshot lock: while a capture or settle of the same integration is running the request returns 409 — retry once it finishes. Each line is re-read from the ledger at the snapshot time and adjusted by that fresh difference; lines a finalized stock take could not apply (allocated or held stock) are left unaccepted and named in warning.

Request​

Responses​

Created

Response Headers
    Content-Type