Skip to content

Adjust and Move Inventory

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.

Generated Reference
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.

Request AdjustInventoryRequest
Response AdjustInventoryResponse

AdjustInventoryRequest

Field Type
product_id string
location_id string
quantity_delta optional int64
target_available optional int64
reason string

AdjustInventoryResponse

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.

Generated Reference
POST /public-api/publicapi.v1.Inventory/MoveInventory

Immediately moves available stock. Reuse the key only for the same request.

Request MoveInventoryRequest
Response MoveInventoryResponse

MoveInventoryRequest

Field Type
destination_location_id string
lines repeated InventoryMoveLineInput
reference string
notes string
idempotency_key string

MoveInventoryResponse

Field Type
operation_id string