{
"idempotency_key": "count-2026-08-07-main",
"external_user_id": "user_counter",
"store_id": "str_main_01...",
"scope": "PARTIAL",
"count_type": "DAILY",
"counted_at": "2026-08-07T06:00:00.000Z",
"entries": [
{
"item_id": "itm_chicken_01...",
"counted_quantity": 3.5,
"counted_qty_base": 3500,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"stock_count_id": "cnt_01j5k...",
"idempotent": false
}
Stock Counts
Create stock count
Submits a physical inventory count. For FULL scope, BOH reconciles the entire store balance; for PARTIAL, only counted items are adjusted. Returns HTTP 202.
POST
/
api
/
v1
/
public
/
vendors
/
{vendorId}
/
operations
/
stock-counts
{
"idempotency_key": "count-2026-08-07-main",
"external_user_id": "user_counter",
"store_id": "str_main_01...",
"scope": "PARTIAL",
"count_type": "DAILY",
"counted_at": "2026-08-07T06:00:00.000Z",
"entries": [
{
"item_id": "itm_chicken_01...",
"counted_quantity": 3.5,
"counted_qty_base": 3500,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"stock_count_id": "cnt_01j5k...",
"idempotent": false
}
string
required
API key with
inventory:write scope.string
required
Vendor UUID.
string
required
Idempotency key (1–128 chars).
string
required
Actor for audit trail.
string
required
UUID of the store being counted.
string
required
FULL or PARTIAL.string
DAILY, WEEKLY, MONTHLY, or AUDIT.string
ISO 8601 timestamp of when the count was taken (defaults to
now()).object
Map of area code → item_id → counted quantity in base units. Used for the area-level collaborative count view.
string
Free-text notes (max 500 chars).
object
Free-form extra data.
object[]
required
Counted lines (at least 1):
Show entry fields
Show entry fields
string
required
UUID of the item counted.
number
required
Quantity in the display unit.
number
required
Quantity converted to the item’s base unit.
string
required
UUID of the base unit.
string
UUID of the display unit.
string
Display label for the unit.
number
required
Conversion factor.
string
Lot UUID if tracking lots.
object
Extra data per line.
string
Polling token.
string
Transaction UUID.
string
Created stock count UUID.
boolean
true if duplicate.{
"idempotency_key": "count-2026-08-07-main",
"external_user_id": "user_counter",
"store_id": "str_main_01...",
"scope": "PARTIAL",
"count_type": "DAILY",
"counted_at": "2026-08-07T06:00:00.000Z",
"entries": [
{
"item_id": "itm_chicken_01...",
"counted_quantity": 3.5,
"counted_qty_base": 3500,
"base_unit_id": "unit_g_01...",
"unit_id": "unit_kg_01...",
"unit_label": "kg",
"unit_to_base_factor": 1000
}
]
}
{
"tracking_id": "trk_01j5k...",
"inventory_transaction_id": "txn_01j5k...",
"stock_count_id": "cnt_01j5k...",
"idempotent": false
}

