AdjustInventoryRequest
| Field | Type |
|---|---|
product_id | string |
location_id | string |
quantity_delta | optional int64 |
target_available | optional int64 |
reason | string |
Both operations use POST /public-api/publicapi.v1.Inventory/ and require
inventory write access plus inventory:adjust or inventory:move, respectively.
They do not reserve, allocate, consume, return, or release order stock.
Provide product/location UUIDs, a nonblank reason of at most 1,000 characters,
and exactly one of quantityDelta or targetAvailable.
The product must be an active simple product; discovery alone does not prove
stock-operation compatibility.
{ "productId": "<product-id>", "locationId": "<inventory-location-id>", "quantityDelta": "-1", "reason": "Cycle count correction"}quantityDelta is a nonzero signed integer correction, not a new balance.
targetAvailable is a nonnegative integer target for available stock, not
on-hand stock; reserved stock remains reserved. To use it, replace
quantityDelta with, for example, "targetAvailable": "10".
Returns balance; inbound is not recalculated in this response. Read
ListInventoryBalances for inbound stock.
Neither mode is idempotent, including target-available correction: intervening
stock changes make a blind retry unsafe.
POST /public-api/publicapi.v1.Inventory/AdjustInventory Requires exactly one explicit correction mode and a reason. Not idempotent, including target_available: intervening stock changes make retries unsafe.
| Field | Type |
|---|---|
product_id | string |
location_id | string |
quantity_delta | optional int64 |
target_available | optional int64 |
reason | string |
| Field | Type | Description |
|---|---|---|
balance | InventoryBalance | Inbound is not recalculated by this correction; use ListInventoryBalances. |
Immediately moves available stock to one destination. Supply 1 through 100 lines, each with product/source-location UUIDs and a positive integer quantity.
{ "destinationLocationId": "<destination-location-id>", "lines": [{ "productId": "<product-id>", "sourceLocationId": "<source-location-id>", "quantity": "2" }], "reference": "Shelf replenishment", "idempotencyKey": "move-2026-09-06-001"}Reference is optional, maximum 200 characters; notes maximum 2,000. The required
nonblank idempotencyKey is at most 200 characters. Reuse it only for the same
request: retries return the original operationId; a different payload conflicts.
Do not change the key to retry an uncertain move. Insufficient available stock
or an incompatible product/location prevents the operation; this is not a way
to move reserved or infinite stock.
POST /public-api/publicapi.v1.Inventory/MoveInventory Immediately moves available stock. Reuse the key only for the same request.
| Field | Type |
|---|---|
destination_location_id | string |
lines | repeated InventoryMoveLineInput |
reference | string |
notes | string |
idempotency_key | string |
| Field | Type |
|---|---|
operation_id | string |