Place lot-level Hold (with optional BOM cascade)
Places holds on every active putaway location currently carrying the named lot.
cascade_bom=false (default) — the engine’s Hold::placeByLot path. Each affected location
gets a location-scope stock_hold row with parent_hold_id=NULL.
cascade_bom=true — the engine’s Hold::cascadeLotHold path. The hold cascades through the
BOM lineage discovered via work_lot_input / work_component_lot. The response carries
cascade.release_mode as a hint for downstream tooling, but cascaded holds must currently be
freed per-id via POST /v1/inventory/holds/{id}/release using
origin.created_origin_hold_ids ∪ cascade.child_hold_ids.
Do not blindly release origin.root_hold_ids — 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.
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.