We announce the release of a new API version aimed at providing convenience for our partners using the service.
| Field | Description |
|---|---|
stock_quantity | Physical on-hand quantity — units that have been put away into stock locations and are part of warehouse inventory. |
incoming_quantity | Units that have arrived at the warehouse but not yet been put away (e.g. waiting at the receiving dock). Not yet counted in stock_quantity. |
reserved_quantity | Units of stock_quantity that are manually reserved (typically via the Reserved Stock API). Not tied to any specific in-process order. |
awaiting_quantity | Units that are waiting to be packed, or currently being packed but not yet completed. Decreases only when the order moves to Ready-to-Ship status. |
available_quantity | available_quantity = stock_quantity − reserved_quantity − awaiting_quantity |
adjust | Delta of the current event. Positive = quantity added, negative = quantity removed. |
refer_type | Type of business document that caused the change. See scenario tables below. |
refer_code | Identifier of the business document (ASN code, order code, adjustment code, etc.). |
note | Free-text description of the event. |
update_time | Unix timestamp (seconds) when the change occurred. |
condition_level | Stock condition grade (A,D1,D2,D3 = good, etc.). Each condition level is tracked separately. |
Tracks: Physical on-hand quantity ( stock_quantity)
| # | Scenario | adjust | refer_type | refer_code |
|---|---|---|---|---|
| 1 | Inbound putaway completed — ASN goods received into stock | +qty | inbound | ASN code (e.g. SM-VN-…) |
| 2 | Outbound handover completed — order picked, packed and shipped | −qty | outbound | Order code |
| 3 | Return putaway completed — RTO / customer return received back into stock | +qty | return | Return order code |
| 4 | Abnormal inventory adjustment — damaged, lost, found, cycle-count correction | +/−qty | abnormal | Adjustment code |
Abnormal events: An abnormal adjustment fires three webhooks simultaneously — Inventory Change, Available Stock Change, and Abnormal Inventory Change Push (which carries the reason/category). Subscribe to whichever fits your downstream system.
Tracks: Sellable quantity ( available_quantity)
available_quantity = stock_quantity − reserved_quantity − awaiting_quantity| # | Scenario | adjust | refer_type | Physical stock changed? |
|---|---|---|---|---|
| 1 | Order received — units held in awaiting_quantity to be packed | −qty | hold | No |
| 2 | Inbound putaway completed — new stock arrives | +qty | inbound | Yes |
| 3 | Return putaway completed — returned units back into available pool | +qty | return | Yes |
| 4 | Order Ready-to-Ship & handed over — awaiting_quantity −1 and stock_quantity −1 cancel each other; available_quantity is unchanged | 0 | release | Already accounted for |
| 5 | Order cancelled before pick & pack — awaiting_quantity released back to available | +qty | void | No |
| 6 | Abnormal inventory change — damaged, found, cycle-count adjustment | +/−qty | abnormal | Yes |
Abnormal events: The system fires all three webhooks together: Inventory Change, Available Stock Change, and Abnormal Inventory Change Push.
| Need | Subscribe to |
|---|---|
| Keep physical warehouse stock in sync with ERP / accounting | Inventory Change |
| Keep sellable quantity in sync with sales channels | Available Stock Change |
| Both physical and sellable views | Both (each fires independently per business event) |
awaiting_quantity +1 → available quantity drops.Available Stock Change adjust = -1 refer_type = holdInventory Change is NOT fired — no physical movement yet.
stock_quantity −1 and awaiting_quantity −1 cancel each other in the available formula.Inventory Change adjust = -1 refer_type = outbound
Available Stock Change adjust = 0 refer_type = releaseawaiting_quantity released; physical stock never moved.Available Stock Change adjust = +1 refer_type = voidInventory Change is NOT fired.
Note: The Awaitingstate represents units inawaiting_quantity— waiting to be packed or currently being packed. This is distinct fromreserved_quantity, which tracks manually held units not tied to any specific in-process order.