Create user-defined hold reason
Creates a new user-defined child hold reason under an existing top-level system reason.
System fields (is_system, reason_id, parent_code, parent_reason_id) are
server-controlled and must not be included in the request body.
The code must be unique, match ^[a-z0-9_]+$, and be ≤ 64 characters.
The parent.id must reference a top-level system reason.
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.
Query Parameters
Specify additional fields of the HoldReason object to be included in the response.
basic, all, code, label, parent_code, allow_relocation, sort_order, is_active, is_system, children, parent, merchants Specify additional fields of the parent HoldReason object to be included in the response. See the selecting fields page for more information.
Specify additional fields of the HoldReason object to be included in the response.
basic, all, code, label, parent_code, allow_relocation, sort_order, is_active, is_system, children, parent, merchants Body
Stable identifier. Must match ^[a-z0-9_]+$, ≤ 64 characters, unique.
"qc_followup"
Human-readable label, ≤ 255 characters.
"QC Follow-up"
Reference to the top-level system reason that owns this child.
Display group name, ≤ 25 characters. Defaults to "Hold" via model.
"Hold"
Whether inventory under this hold may be relocated. null = inherit from parent.
null
Merchant scope restrictions. Empty array or omit for unrestricted.
Whether this reason is active. Defaults to true.
true
Display order within siblings. Defaults to 0.
0
Response
Hold reason created.
An inventory hold reason. System (parent) reasons are seeded and immutable; user-defined
child reasons can be added under any system parent and inherit allow_relocation
semantics. Schema enforces a single nesting level: parent reasons MAY include a children
array; child reasons do NOT carry a children key.