BigblueDevelopers

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

Stock counts

Each row is one product in one warehouse:

productstring
Product ID.
Pattern^[A-Za-z0-9]{4}-[A-Za-z0-9]{6}-[A-Za-z0-9]{4}$
warehousestring
Warehouse ID.
Pattern^[A-Za-z]{2}-[A-Za-z]{3}-[0-9]{3}$
availableinteger

Units you can sell now: in the warehouse, in good condition and not reserved for an order. Publish this number to your storefront.

in_warehouseinteger

Units in the warehouse in good condition, including units reserved for unshipped orders. Doesn't include damaged, quality control or expired units.

damagedinteger
Damaged units. Can't be sold.
quality_controlinteger

Units held for inspection, usually received with block_for_quality_control. Can't be sold until released.

expiredinteger

Units past their sell-by limit, set by the product's lot_expiry_threshold_days. Can't be sold.

backorderedinteger
Units ordered that stock couldn't cover.

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_codestring
Lot code from the inbound shipment.
Up to 20 characters
lot_expiration_datestring
Lot expiry date.
Date as YYYY-MM-DD
lot_expiration_timestring
Use lot_expiration_date instead.
RFC 3339 in UTC, for example 2026-03-14T09:30:00Z
in_warehouseinteger
Good units in the lot.
damagedinteger
Damaged units in the lot.
quality_controlinteger
Units in the lot held for inspection.
expiredinteger
Expired units in the lot.

Lots 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.

On this page