Bundle offers
Product bundles let you sell groups of products together at a special price — "buy 3 t-shirts for $50". Bundles render in the cart UI with their own pricing logic and inventory deduction. Use these endpoints to create, list, and manage bundle offers.
List cart bundles
For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.
In: header
Path Parameters
Header Parameters
curl -X GET "https://api.brainerce.com/api/vc/string/cart/string/bundles" \ -H "origin: string"{
"bundles": [
{
"id": "string",
"name": "string",
"description": "string",
"triggerProductId": "string",
"productIds": [
"string"
],
"offeredProducts": [
{
"id": "clprd_abc123",
"name": "string",
"slug": "string",
"basePrice": "30.00",
"salePrice": "string",
"images": [
{
"url": "https://cdn.brainerce.com/products/abc123.jpg",
"alt": "Blue mug"
}
],
"type": "SIMPLE",
"variantId": "string",
"requiresVariantSelection": false,
"pinnedVariant": {
"id": "clvar_abc123",
"name": "string",
"attributes": {}
},
"variants": [
{
"id": "clvar_abc123",
"name": "string",
"attributes": {
"property1": "string",
"property2": "string"
},
"image": {
"url": "https://cdn.brainerce.com/products/abc123.jpg",
"alt": "Blue mug"
},
"price": "24.00",
"salePrice": null
}
],
"originalPrice": "30.00",
"discountedPrice": "24.00"
}
],
"discountType": "PERCENTAGE",
"discountValue": "20",
"totalOriginalPrice": "30.00",
"totalDiscountedPrice": "24.00"
}
]
}Add bundle item
For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.
In: header
Path Parameters
Header Parameters
Id of the bundle offer being added.
Chosen variant per bundle slot, keyed by the slot/product id.
Empty Object
curl -X POST "https://api.brainerce.com/api/vc/string/cart/string/bundle" \ -H "origin: string" \ -H "Content-Type: application/json" \ -d '{ "bundleOfferId": "string" }'{
"id": "clcrt_abc123",
"sessionToken": "string",
"customerId": "string",
"status": "ACTIVE",
"currency": "USD",
"notes": "string",
"analyticsClientId": "string",
"analyticsSessionId": "string",
"subtotal": "39.80",
"discountAmount": "5.00",
"ruleDiscountAmount": "0",
"promoDiscountTotal": "0",
"couponCode": "WELCOME10",
"appliedDiscounts": [
{
"ruleId": "cldr_abc123",
"ruleName": "string",
"type": "PERCENTAGE_OFF",
"discountAmount": "5.00",
"description": "string"
}
],
"nudges": [
{
"ruleId": "cldr_abc123",
"text": "string",
"type": "AMOUNT_NEEDED",
"amountNeeded": "12.00",
"quantityNeeded": 1
}
],
"items": [
{
"productId": "clx1234567890",
"variantId": "string",
"quantity": 2
}
],
"itemCount": 3,
"hasPriceChanges": false,
"hasUnavailableItems": false,
"unavailableItemIds": [],
"expiresAt": "string",
"createdAt": "string",
"updatedAt": "string",
"reservation": {
"hasReservation": true,
"expiresAt": "string",
"remainingSeconds": 540,
"strategy": "ON_CART",
"countdownMessage": "string"
},
"recommendations": {},
"upgrades": {},
"bundles": {}
}{
"statusCode": 400,
"code": "VALIDATION_FAILED",
"message": "name should not be empty, price must be a positive number",
"timestamp": "2026-08-23T10:15:00.000Z",
"path": "/api/vc/{connectionId}/cart/{cartId}/bundle"
}Remove bundle item
For /api/vc/{connectionId}/* routes the connectionId (vc_*) is in the URL path — not a header. Live-mode requests must also send a matching Origin header.
In: header
Path Parameters
Header Parameters
curl -X DELETE "https://api.brainerce.com/api/vc/string/cart/string/bundle/string" \ -H "origin: string"{
"id": "clcrt_abc123",
"sessionToken": "string",
"customerId": "string",
"status": "ACTIVE",
"currency": "USD",
"notes": "string",
"analyticsClientId": "string",
"analyticsSessionId": "string",
"subtotal": "39.80",
"discountAmount": "5.00",
"ruleDiscountAmount": "0",
"promoDiscountTotal": "0",
"couponCode": "WELCOME10",
"appliedDiscounts": [
{
"ruleId": "cldr_abc123",
"ruleName": "string",
"type": "PERCENTAGE_OFF",
"discountAmount": "5.00",
"description": "string"
}
],
"nudges": [
{
"ruleId": "cldr_abc123",
"text": "string",
"type": "AMOUNT_NEEDED",
"amountNeeded": "12.00",
"quantityNeeded": 1
}
],
"items": [
{
"productId": "clx1234567890",
"variantId": "string",
"quantity": 2
}
],
"itemCount": 3,
"hasPriceChanges": false,
"hasUnavailableItems": false,
"unavailableItemIds": [],
"expiresAt": "string",
"createdAt": "string",
"updatedAt": "string",
"reservation": {
"hasReservation": true,
"expiresAt": "string",
"remainingSeconds": 540,
"strategy": "ON_CART",
"countdownMessage": "string"
},
"recommendations": {},
"upgrades": {},
"bundles": {}
}