Place Kit Order
Places a deployment order for every product in a predefined kit.
POST
/api/v1/device-hub/kits/place-orderDescription
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
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer <token> | Yes |
| Content-Type | application/json | Yes |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Exact kit name from Kit List |
| string | Yes | Customer email address | |
| firstname | string | Yes | Customer first name |
| lastname | string | Yes | Customer last name |
| shipping_address | string | Yes | Street address for delivery |
| shipping_city | string | Yes | City for delivery |
| shipping_state | string | Yes | State/Province (if applicable) |
| shipping_zip | string | Yes | Postal/ZIP code |
| shipping_country | string | Yes | Country code (ISO2, e.g., US) |
| phone_number | string | Yes | Contact number of the recipient |
| expedite_shipping | string / null | No | Shipping method (e.g., "2nd Day Air", "Overnight"). Must match warehouse options. |
| is_signature_required | boolean | No | Whether delivery signature is required (US and CA only) |
| tag | object / string | No | Optional accounting tags. May be a JSON object or JSON-encoded string. |
| tag.cost_center_code | string | No | If a cost center with this code does not exist for your company, a new cost center is created and linked to the order. |
| tag.department | string | No | If 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_code | string | No | GL code. Max 50 characters. |
| tag.po_number | string | No | PO number. Max 50 characters. |
| tag.site | string | No | Site. Max 100 characters. |
| tag.custom_field_1 | string | No | Custom field 1. Max 255 characters. |
| tag.custom_field_2 | string | No | Custom field 2. Max 255 characters. |
Response Fields
| Field | Type | Description |
|---|---|---|
| message | string | Confirmation message |
| data.orderid | string | Unique order number |
| data.products | array | Ordered products with details |
| data.products[].name | string | Product name |
| data.products[].quantity | integer | Quantity ordered |
| data.products[].price | number | Unit price |
| data.products[].image | string | URL 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?
Request
curl -X POST 'https://uat.unduit.com/api-exposed/api/v1/device-hub/kits/place-order' \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "Onboarding Kit",
"email": "test@test.com",
"firstname": "John",
"lastname": "Doe",
"shipping_address": "123 Main St",
"shipping_city": "Chicago",
"shipping_state": "IL",
"shipping_zip": "60601",
"shipping_country": "US",
"phone_number": "+1-555-0123",
"expedite_shipping": "2nd Day Air",
"tag": {
"cost_center_code": "CC-001",
"department": "Engineering",
"gl_code": "GL-100",
"po_number": "PO-99",
"site": "NYC",
"custom_field_1": "Project Atlas",
"custom_field_2": "Q3 onboard"
}
}'Responses
201 Created
{
"message": "Thank you for placing the order",
"data": {
"orderid": "725491327",
"products": [
{
"name": "Apple MacBook Pro 14-inch (M2, 2023)",
"quantity": 1,
"price": 1999.00,
"image": "https://example.com/images/macbook-pro-14.png"
},
{
"name": "Dell 27-inch Monitor",
"quantity": 1,
"price": 329.99,
"image": "https://example.com/images/dell-monitor.png"
}
]
}
}