Skip to content

Create a Bundle

POST
/kits

Convert a product variant into a bundle and populate its contents.

object
product_variant_id

The ID of the product variant to convert into a bundle.

number
contents
Array<object>
object
product_variant_id

The ID of the product variant to be included in this bundle.

number
quantity

The number of times this product variant appears in this bundle.

number
Example
{
"product_variant_id": "<product_variant_to_convert>",
"contents": [
{
"product_variant_id": 12345,
"quantity": 1
},
{
"product_variant_id": 67890,
"quantity": 2
}
]
}

Kit created.

object
id

ID of the bundle.

number
full_title

The bundle’s title.

string
sku_code

The SKU code of the bundle.

string
upc_code

The barcode of the bundle.

string
price

The sale price of the bundle.

string
cost_price

The cost price of the bundle.

string
tax_rate

The tax rate applied to this bundle.

string
20
estimated_delivery

Number of days this bundle will take to ship.

number
origin_country

Two-letter country code where this bundle was manufactured for international shipments.

string
hs_tariff_number

The Harmonized System code (tarriff number) to use for international shipments.

string
customs_description

The description to use on customs declarations documents for international shipments.

string
hazmat

Whether this bundle contains hazardous goods.

boolean
product

The product this bundle belongs to.

object
stock_entries

Stock information about this bundle.

object
warehouse_id

ID of the location in Veeqo this stock entry relates to.

number
infinite

Whether the stock entry in this location is infinite.

boolean
allocated_stock_level

The number of units this bundle has been allocated to orders from this location.

number
stock_running_low

Whether the physical stock level is below the reorder level. For bundles, this field will always be null.

boolean
updated_at

The date and time this stock entry was last updated.

string format: date-time
incoming_stock_level

The number of incoming units from stock transfers and purchase orders.

number
transit_outgoing_stock_level

The number of outgoing units from stock transfers.

number
contents

The contents of this bundle.

object
id

ID of this particular bundle content.

number
product_variant_id

ID of the product variant this bundle content contains.

number
kit_id

ID of the bundle this bundle content belongs to.

number
quantity

The number of units of this product variant that this bundle content has.

number
sku_code

The SKU code of this bundle content’s product variant.

string
title

The title of this bundle content’s product variant.

string
total_available_stock_level

The number of units of this product varaint that are available for sale.

number
product_variant

The product variant this bundle content contains.

object
measurement_attributes

The width, height and depth of this bundle.

object
id

The ID of these measurement attributes.

number
dimensions_unit
string
Allowed values: cm inches
width
number
height
number
depth
number
inventory
object
infinite

Whether the stock level is infinite.

boolean
physical_stock_level_at_all_warehouses

The number of units on-hand across all locations.

number
allocated_stock_level_at_all_warehouses

The number of units committed to orders across all locations.

number
available_stock_level_at_all_warehouses

The number of available units across all locations.

number
incoming_stock_level_at_all_warehouses

The number of units being receieved via purchase orders.

number
transit_outgoing_stock_level_at_all_warehouses

The number of units being moved out of locations via stock transfers.

number
transit_incoming_stock_level_at_all_warehouses

The number of units being moved in to locations via stock transfers.

number
weight_grams

Weight, in grams, of this bundle.

number
active_channels

Connected stores where this bundle is linked to a listing.

array
channel_sellables

Store listings this bundle is linked to.

array
total_quantity_sold

Number of units this bundle has sold.

number
on_hand_value

The number of units available multiplied by the bundle cost price.

number
Example
{
"requires_review": false,
"allocated_stock_level_at_all_warehouses": 1,
"id": 220439988,
"type": "Kit",
"title": "",
"sku_code": "KIT-123",
"upc_code": "KIT12345",
"model_number": "",
"price": 0.03,
"cost_price": 5,
"min_reorder_level": 0,
"quantity_to_reorder": 0,
"created_by_id": 85999,
"created_at": "2024-03-29T12:08:05.408Z",
"updated_at": "2025-09-05T10:55:18.034Z",
"deleted_at": null,
"weight_grams": 199.86,
"weight_unit": "oz",
"product_title": "My Example Bundle",
"full_title": "My Example Bundle",
"sellable_title": "",
"profit": -4.97,
"margin": -16566.67,
"tax_rate": 0,
"estimated_delivery": null,
"origin_country": null,
"hs_tariff_number": null,
"supplementary_units": 0,
"customs_description": null,
"hazmat": null,
"image_url": null,
"product": {
"id": 100598859,
"title": "My Example Bundle",
"weight": 0,
"origin_country": "US",
"hs_tariff_number": null,
"tax_rate": 0,
"estimated_delivery": null,
"deleted_at": null,
"deleted_by_id": null,
"description": "A bundle of many different things.",
"main_image_src": null
},
"reorders": [],
"stock_entries": [
{
"sellable_id": 220439988,
"warehouse_id": 88368,
"infinite": false,
"allocated_stock_level": 1,
"stock_running_low": null,
"updated_at": "2025-05-19T16:41:43.212Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 88368,
"name": "My Location",
"display_position": 9999
},
"physical_stock_level": 3238,
"available_stock_level": 3237,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": null
},
{
"sellable_id": 220439988,
"warehouse_id": 90236,
"infinite": false,
"allocated_stock_level": 0,
"stock_running_low": null,
"updated_at": "2025-05-19T16:41:43.164Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 90236,
"name": "Test Warehouse",
"display_position": 9999
},
"physical_stock_level": 2,
"available_stock_level": 2,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": null
}
],
"contents": [
{
"id": 1339393,
"product_variant_id": 139794497,
"kit_id": 220439988,
"quantity": 1,
"created_at": "2024-03-29T12:14:31.713Z",
"updated_at": "2024-03-29T12:14:31.713Z",
"deleted_at": null,
"deleted_by_id": null,
"sku_code": "SUP-007",
"title": "VEEQO SHORT SLEEVE T-SHIRT [DEMO] MEDIUM",
"total_available_stock_level": 9345,
"product_variant": {
"id": 139794497,
"type": "ProductVariant",
"title": "MEDIUM",
"sku_code": "SUP-007",
"upc_code": "725272730706",
"model_number": "",
"price": 0,
"cost_price": 0,
"min_reorder_level": 0,
"quantity_to_reorder": 0,
"created_by_id": 85999,
"created_at": "2023-09-20T14:27:48.401Z",
"updated_at": "2025-09-05T10:29:43.504Z",
"deleted_at": null,
"weight_grams": 0,
"weight_unit": "oz",
"product_title": "VEEQO SHORT SLEEVE T-SHIRT [DEMO]",
"full_title": "VEEQO SHORT SLEEVE T-SHIRT [DEMO] MEDIUM",
"sellable_title": "MEDIUM",
"profit": 0,
"margin": 0,
"tax_rate": 0,
"estimated_delivery": null,
"origin_country": null,
"hs_tariff_number": null,
"supplementary_units": 0,
"customs_description": null,
"hazmat": null,
"image_url": "https://thumbnails.veeqo.com/ME846VyJpz7rp5Xqw7HUOAeK_L77BsUj0k8a69LHTiI/rs:fit:1000:1000/aHR0cHM6Ly9zdGF0/aWMudmVlcW8uY29t/L2Zyb250ZW5kL2Rl/bW9fZGF0YV9pbWFn/ZXMvcHJvZHVjdHMv/dnExNS10c2hpcnQu/cG5n",
"product": {
"id": 71784455,
"title": "VEEQO SHORT SLEEVE T-SHIRT [DEMO]",
"weight": 0,
"origin_country": "GB",
"hs_tariff_number": "2501001000",
"tax_rate": 0,
"estimated_delivery": null,
"deleted_at": null,
"deleted_by_id": null,
"description": "",
"main_image_src": "https://thumbnails.veeqo.com/ME846VyJpz7rp5Xqw7HUOAeK_L77BsUj0k8a69LHTiI/rs:fit:1000:1000/aHR0cHM6Ly9zdGF0/aWMudmVlcW8uY29t/L2Zyb250ZW5kL2Rl/bW9fZGF0YV9pbWFn/ZXMvcHJvZHVjdHMv/dnExNS10c2hpcnQu/cG5n"
},
"stock_entries": [
{
"sellable_id": 139794497,
"warehouse_id": 88368,
"infinite": false,
"allocated_stock_level": 35,
"stock_running_low": false,
"updated_at": "2025-08-14T16:34:52.103Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 88368,
"name": "My Location",
"display_position": 9999
},
"physical_stock_level": 9341,
"available_stock_level": 9306,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": "B001 D001 C043"
},
{
"sellable_id": 139794497,
"warehouse_id": 90236,
"infinite": false,
"allocated_stock_level": 1,
"stock_running_low": false,
"updated_at": "2024-04-16T09:06:27.894Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 90236,
"name": "Test Warehouse",
"display_position": 9999
},
"physical_stock_level": 40,
"available_stock_level": 39,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": null
},
{
"sellable_id": 139794497,
"warehouse_id": 334769,
"infinite": false,
"allocated_stock_level": 0,
"stock_running_low": true,
"updated_at": "2025-07-02T08:33:32.907Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 334769,
"name": "API Created Warehouse",
"display_position": 9999
},
"physical_stock_level": 0,
"available_stock_level": 0,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": null
}
]
}
},
{
"id": 1339392,
"product_variant_id": 144532005,
"kit_id": 220439988,
"quantity": 1,
"created_at": "2024-03-29T12:14:31.558Z",
"updated_at": "2024-03-29T12:14:31.558Z",
"deleted_at": null,
"deleted_by_id": null,
"sku_code": "MB829Z/A",
"title": "APPLE MAGIC MOUSE [DEMO]",
"total_available_stock_level": 3239,
"product_variant": {
"id": 144532005,
"type": "ProductVariant",
"title": "Default",
"sku_code": "MB829Z/A",
"upc_code": "",
"model_number": "",
"price": 25.99,
"cost_price": 5,
"min_reorder_level": 0,
"quantity_to_reorder": 0,
"created_by_id": 85999,
"created_at": "2023-10-12T13:35:03.963Z",
"updated_at": "2025-09-05T10:29:43.294Z",
"deleted_at": null,
"weight_grams": 200,
"weight_unit": "oz",
"product_title": "APPLE MAGIC MOUSE [DEMO]",
"full_title": "APPLE MAGIC MOUSE [DEMO]",
"sellable_title": "",
"profit": 20.99,
"margin": 80.76,
"tax_rate": 0,
"estimated_delivery": null,
"origin_country": null,
"hs_tariff_number": null,
"supplementary_units": 0,
"customs_description": null,
"hazmat": null,
"image_url": "https://thumbnails.veeqo.com/4AmOLx091KSZUmiNVi_TRdC_qONCRRpmJ5m4YQLot7s/rs:fit:1000:1000/aHR0cHM6Ly90aHVt/Ym5haWxzLnZlZXFv/LmNvbS91QUFiQ3hC/Y3oyMWJwdGloSUdF/Zk1zcUZjcFhRbWs1/bURvVWhNanRWYmZj/L3JzOmZpdDoxMDAw/OjEwMDAvYUhSMGNI/TTZMeTl6ZEdGMC9h/V011ZG1WbGNXOHVZ/Mjl0L0wyWnliMjUw/Wlc1a0wyUmwvYlc5/ZlpHRjBZVjlwYldG/bi9aWE12Y0hKdlpI/VmpkSE12L1lYQndi/R1V0Ylc5MWMyVXUv/Y0c1bg",
"product": {
"id": 74263472,
"title": "APPLE MAGIC MOUSE [DEMO]",
"weight": 0,
"origin_country": "GB",
"hs_tariff_number": "2501001000",
"tax_rate": 0,
"estimated_delivery": null,
"deleted_at": null,
"deleted_by_id": null,
"description": "",
"main_image_src": "https://thumbnails.veeqo.com/4AmOLx091KSZUmiNVi_TRdC_qONCRRpmJ5m4YQLot7s/rs:fit:1000:1000/aHR0cHM6Ly90aHVt/Ym5haWxzLnZlZXFv/LmNvbS91QUFiQ3hC/Y3oyMWJwdGloSUdF/Zk1zcUZjcFhRbWs1/bURvVWhNanRWYmZj/L3JzOmZpdDoxMDAw/OjEwMDAvYUhSMGNI/TTZMeTl6ZEdGMC9h/V011ZG1WbGNXOHVZ/Mjl0L0wyWnliMjUw/Wlc1a0wyUmwvYlc5/ZlpHRjBZVjlwYldG/bi9aWE12Y0hKdlpI/VmpkSE12L1lYQndi/R1V0Ylc5MWMyVXUv/Y0c1bg"
},
"stock_entries": [
{
"sellable_id": 144532005,
"warehouse_id": 88368,
"infinite": false,
"allocated_stock_level": 4,
"stock_running_low": false,
"updated_at": "2025-05-21T14:05:34.175Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 88368,
"name": "My Location",
"display_position": 9999
},
"physical_stock_level": 3241,
"available_stock_level": 3237,
"sellable_on_hand_value": 16205,
"transit_incoming_stock_level": 0,
"location": null
},
{
"sellable_id": 144532005,
"warehouse_id": 90236,
"infinite": false,
"allocated_stock_level": 2,
"stock_running_low": false,
"updated_at": "2025-05-19T16:41:43.095Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 90236,
"name": "Test Warehouse",
"display_position": 9999
},
"physical_stock_level": 4,
"available_stock_level": 2,
"sellable_on_hand_value": 20,
"transit_incoming_stock_level": 0,
"location": null
},
{
"sellable_id": 144532005,
"warehouse_id": 334769,
"infinite": false,
"allocated_stock_level": 0,
"stock_running_low": true,
"updated_at": "2025-07-02T08:33:34.028Z",
"incoming_stock_level": 0,
"transit_outgoing_stock_level": 0,
"warehouse": {
"id": 334769,
"name": "API Created Warehouse",
"display_position": 9999
},
"physical_stock_level": 0,
"available_stock_level": 0,
"sellable_on_hand_value": 0,
"transit_incoming_stock_level": 0,
"location": null
}
]
}
}
],
"images": [],
"measurement_attributes": {
"id": 318424011,
"width": 0,
"height": 0,
"depth": 0,
"dimensions_unit": "inches"
},
"main_thumbnail_url": null,
"available_stock_level_at_all_warehouses": 3239,
"stock_level_at_all_warehouses": 3245,
"inventory": {
"infinite": false,
"physical_stock_level_at_all_warehouses": 3245,
"allocated_stock_level_at_all_warehouses": 1,
"available_stock_level_at_all_warehouses": 3239,
"incoming_stock_level_at_all_warehouses": 0,
"transit_outgoing_stock_level_at_all_warehouses": 0,
"transit_incoming_stock_level_at_all_warehouses": 0
},
"weight": 7.05,
"active_channels": [],
"channel_sellables": [],
"total_quantity_sold": 0,
"on_hand_value": 0
}

One of the product variant IDs supplied was not found.