One product's position at a warehouse, decomposed
What is there, what is held, what is coming and what is left to sell, for one product at one warehouse: on_hand, reserved broken down by why each unit is spoken for and by which order holds it, expected_inbound broken down by the purchase or transfer order it is coming on, and atp.
The identity holds on every answer: on_hand - reserved.hard + expected_inbound.quantity + expected_inbound.returns_expected = atp. atp is computed from those four and read from nowhere else, so a figure you are shown can always be counted off the rows under it.
reserved.hard is what atp subtracts and reserved.soft warns without consuming anything. At a warehouse the connector masters, the hard figure takes the LARGER of Tightly's own order holds and the source's committed_quantity, and the part no Tightly document explains is served as its own source_committed row.
on_hand_basis says which fact the head figure is. source_on_hand is the connector's own physical count; source_available is its available figure standing in where it serves no physical one, and that figure is already net of what the store has promised its own orders; ledger is the sum of the movements, which is the on hand at a warehouse Tightly masters.
Leave location_id off for the total over every warehouse the product is known at, with a row per warehouse under locations. The last 20 movements ride along; the whole ledger is list_movements.
Scope: inventory:read.
Request
- Base URL: https://api.app.tightly.io
- URL: https://api.app.tightly.io/api/v1/inventory/position
- Auth: HTTP bearer
Query parameters
The product variant to read the position of.
The warehouse. Omit for the sum over every warehouse the product is known at, in which case the head figures are the sums of the locations rows.
Headers
The date train to answer on. One train exists today, 2026-11, the one this reference describes and the one every key is minted on, so the call answers on it with or without this header. Send it anyway, so a client built now names its train from the start.
Response
The position, its decomposition and the last 20 movements behind it.
Changes
No recorded changes to this operation across all 1 revision of this API.