Place location-level Hold
Places an inventory hold on the specified location for the given reason. A hold freezes the entire location: its on-shelf inventory becomes held — excluded from available and advertised quantity and unavailable for allocation — until the hold is released.
Partial holds are not supported. qty is optional; when supplied it must equal the location’s
full on-shelf quantity at the time of the call, or the request returns 422. When omitted, the
whole location is held.
Authorizations
Generate a JWT access token through a Custom Global Integration and provide it with each request in the Authorization header prefixed with "Bearer" and then a single space.
Body
Target location.
6
Hold reason code (system or user-defined).
"damaged"
Optional. When supplied it must be > 0 and equal to the location's full on-shelf qty; partial holds are not supported. When omitted, the whole location is held.
5
Free-form notes.
"Damaged at receiving"
Response
Hold placed.
An inventory hold record. Cross-merchant view (Global API surface).
Releasing cascaded holds: when holdLot is called with cascade_bom=true, free the
cascade tree by releasing each child via POST /holds/{id}/release, using
origin.created_origin_hold_ids ∪ cascade.child_hold_ids from the original holdLot
response.
Do not include origin.root_hold_ids blindly in the release set — those may include
pre-existing roots from a prior cascadeLotHold call that this call attached children to,
and releasing them would also release siblings the current caller did not place.