Inventory
Read stock levels per product and warehouse, per lot, and per sales channel.
Inventory is read-only. It changes when inbound shipments are received, orders ship and returns arrive. No endpoint sets quantities.
Operations
List inventories
Stock per product and warehouse, with lots.
List bundle inventories
Available bundles, calculated from their components.
List allocation inventories
Stock allocated to each sales channel.
Stock counts
Each row is one product in one warehouse:
productstring^[A-Za-z0-9]{4}-[A-Za-z0-9]{6}-[A-Za-z0-9]{4}$warehousestring^[A-Za-z]{2}-[A-Za-z]{3}-[0-9]{3}$availableintegerUnits you can sell now: in the warehouse, in good condition and not reserved for an order. Publish this number to your storefront.
in_warehouseintegerUnits in the warehouse in good condition, including units reserved for unshipped orders. Doesn't include damaged, quality control or expired units.
damagedintegerquality_controlintegerUnits held for inspection, usually received with block_for_quality_control.
Can't be sold until released.
expiredintegerUnits past their sell-by limit, set by the product's
lot_expiry_threshold_days. Can't be sold.
backorderedintegerlotsInventory.Lot[]Counts per lot. Only included when lot tracking is on for your account and the
product has track_lots. Up to 100 lots per row.
Reserved units are in_warehouse - available. There is no reserved field in
ListInventories, but the
inventory webhook includes one.
Zero counts are left out of responses. Treat a missing count as 0.
Lots
Products with track_lots report counts per lot:
lot_codestringlot_expiration_datestringlot_expiration_timestringlot_expiration_date instead.in_warehouseintegerdamagedintegerquality_controlintegerexpiredintegerLots have no available count. Availability is calculated per product. The
warehouse picks the lot that expires first, unless the
order line sets lot_code or
lot_expiration_days_range_rule.
Keeping a storefront in sync
Load all stock once
Page through ListInventories with page_size: 1000.
Receive changes by webhook
Register an inventory webhook. Bigblue sends changed rows, up to 100 per request.
Check again every night
Page through ListInventories again each night to catch any change a webhook
missed.