Place Kit Order

Places a deployment order for every product in a predefined kit.

POST
/api/v1/device-hub/kits/place-order

Description

Submit a kit name plus recipient and shipping details to order the full kit in one request. One kit is ordered per call. If any product cannot be filled, the entire order is rejected and no stock is decremented.

Request

Headers

HeaderValueRequired
AuthorizationBearer <token>Yes
Content-Typeapplication/jsonYes

Request Body

FieldTypeRequiredDescription
namestringYesExact kit name from Kit List
emailstringYesCustomer email address
firstnamestringYesCustomer first name
lastnamestringYesCustomer last name
shipping_addressstringYesStreet address for delivery
shipping_citystringYesCity for delivery
shipping_statestringYesState/Province (if applicable)
shipping_zipstringYesPostal/ZIP code
shipping_countrystringYesCountry code (ISO2, e.g., US)
phone_numberstringYesContact number of the recipient
expedite_shippingstring / nullNoShipping method (e.g., "2nd Day Air", "Overnight"). Must match warehouse options.
is_signature_requiredbooleanNoWhether delivery signature is required (US and CA only)
tagobject / stringNoOptional accounting tags. May be a JSON object or JSON-encoded string.
tag.cost_center_codestringNoIf a cost center with this code does not exist for your company, a new cost center is created and linked to the order.
tag.departmentstringNoIf a department with this name does not exist for your company, a new department is created and linked to the order. Alias: tag.department_name.
tag.gl_codestringNoGL code. Max 50 characters.
tag.po_numberstringNoPO number. Max 50 characters.
tag.sitestringNoSite. Max 100 characters.
tag.custom_field_1stringNoCustom field 1. Max 255 characters.
tag.custom_field_2stringNoCustom field 2. Max 255 characters.

Response Fields

FieldTypeDescription
messagestringConfirmation message
data.orderidstringUnique order number
data.productsarrayOrdered products with details
data.products[].namestringProduct name
data.products[].quantityintegerQuantity ordered
data.products[].pricenumberUnit price
data.products[].imagestringURL to product image

Notes

  • name must exactly match a kit returned by Kit List for the authenticated company
  • One kit is ordered per request. Extra products and quantity multipliers are not accepted
  • Warehouse is resolved from shipping_country. warehouse_id is not accepted
  • If any kit product is inactive, has insufficient stock, or cannot be filled from a single serving warehouse, the order is rejected and no stock is decremented
  • Insufficient stock returns HTTP 422 with code KIT_INSUFFICIENT_STOCK. Failing products are listed in products, not in the top-level message
  • Valid shipping options: "UPS Ground", "2nd Day Air", "Overnight"
  • is_signature_required only applies to US and CA shipments
  • The tag object is optional; when omitted, no order_tags row is created

Related Endpoints

Did this page help you?