> ## Documentation Index
> Fetch the complete documentation index at: https://developers.appstle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update subscription bundling configuration

> Updates the configuration for one or more subscription bundles (Build-a-Box). This endpoint allows bulk updates to bundle product selections, quantities, and configurations.

**Subscription Bundling/Build-a-Box:**
Subscription bundling allows customers to create custom product bundles that are delivered on a recurring basis. Customers can select multiple products to be included in each delivery, creating a personalized subscription box.

**Update Capabilities:**
- Modify product selections within a bundle
- Update product quantities
- Change bundle configuration settings
- Bulk update multiple bundles at once

**Use Cases:**
- Customer updates their bundle product selections
- Swap products in an existing bundle
- Adjust quantities for products in the bundle
- Programmatically manage bundle configurations

**Important Notes:**
- Updates are identified by bundle handle (unique identifier)
- Only active bundles can be updated
- Product availability is validated before update

**Authentication:** Requires valid X-API-Key header



## OpenAPI

````yaml /subscription/admin-api-swagger.json put /api/external/v2/subscription-bundling/update
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/subscription-bundling/update:
    put:
      tags:
        - Build-a-Box & Bundles
      summary: Update subscription bundling configuration
      description: >-
        Updates the configuration for one or more subscription bundles
        (Build-a-Box). This endpoint allows bulk updates to bundle product
        selections, quantities, and configurations.


        **Subscription Bundling/Build-a-Box:**

        Subscription bundling allows customers to create custom product bundles
        that are delivered on a recurring basis. Customers can select multiple
        products to be included in each delivery, creating a personalized
        subscription box.


        **Update Capabilities:**

        - Modify product selections within a bundle

        - Update product quantities

        - Change bundle configuration settings

        - Bulk update multiple bundles at once


        **Use Cases:**

        - Customer updates their bundle product selections

        - Swap products in an existing bundle

        - Adjust quantities for products in the bundle

        - Programmatically manage bundle configurations


        **Important Notes:**

        - Updates are identified by bundle handle (unique identifier)

        - Only active bundles can be updated

        - Product availability is validated before update


        **Authentication:** Requires valid X-API-Key header
      operationId: getUpdateSubscriptionBundling
      parameters:
        - in: header
          name: X-API-Key
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/BuildABoxUpdate'
              type: array
        required: true
      responses:
        '200':
          content:
            application/json:
              examples:
                Success Response:
                  description: Success Response
                  value:
                    active: true
                    bundleHandle: custom-coffee-bundle-123
                    bundleName: My Custom Coffee Bundle
                    frequency: MONTH
                    frequencyCount: 1
                    id: 12345
                    products:
                      - productTitle: Medium Roast Coffee
                        quantity: 2
                        variantId: 11111
                      - productTitle: Dark Roast Coffee
                        quantity: 1
                        variantId: 22222
                    shop: example-shop.myshopify.com
                    token: abc123xyz
              schema:
                $ref: '#/components/schemas/SubscriptionBundlingDTO'
          description: Subscription bundling successfully updated
        '400':
          content:
            application/json:
              example:
                detail: One or more products in the bundle are not available
                status: 400
                title: Invalid bundle configuration
                type: https://example.com/errors/bad-request
          description: Invalid bundle handle or product configuration
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBundlingDTO'
          description: Authentication required
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SubscriptionBundlingDTO'
          description: Insufficient permissions
        '404':
          content:
            application/json:
              example:
                detail: No bundle found with the specified handle
                status: 404
                title: Bundle not found
                type: https://example.com/errors/not-found
          description: Bundle not found
components:
  schemas:
    BuildABoxUpdate:
      properties:
        babHandle:
          type: string
        sourceProducts:
          items:
            $ref: '#/components/schemas/SourceProductDTO'
          type: array
      type: object
    SubscriptionBundlingDTO:
      properties:
        allowOneTimePurchase:
          type: boolean
        appliesOn:
          enum:
            - PRODUCT
            - COLLECTION
            - BOTH
            - ONE_TIME
            - SUBSCRIPTION
          type: string
        buildABoxType:
          enum:
            - CLASSIC
            - SINGLE_PRODUCT
            - MIX_AND_MATCH
            - INFINITE
            - CUSTOMIZE_BUNDLE
            - CLASSIC_BUILD_A_BOX
            - SINGLE_PRODUCT_BUILD_A_BOX
            - VOLUME_DISCOUNT
            - DISCOUNTED_PRICING
            - SHIPPING_DISCOUNT
            - BUY_X_GET_Y
            - SECTIONED_BUNDLE
          type: string
        bundleBottomHtml:
          type: string
        bundleRedirect:
          enum:
            - CART
            - CHECKOUT
            - CUSTOM
            - NONE
          type: string
        bundleTopHtml:
          type: string
        chooseProductsText:
          type: string
        collectionData:
          type: string
        customRedirectURL:
          type: string
        discount:
          format: double
          type: number
        discountedVariants:
          type: string
        groupName:
          type: string
        id:
          format: int64
          type: integer
        maxProductCount:
          format: int32
          type: integer
        minOrderAmount:
          format: double
          type: number
        minProductCount:
          format: int32
          type: integer
        minUniqueProductCheck:
          type: boolean
        name:
          type: string
        proceedToCheckoutButtonText:
          type: string
        productDiscountType:
          enum:
            - SELECTED_PRODUCT
            - EACH_PRODUCT
          type: string
        productSelectionType:
          enum:
            - PRODUCT
            - COLLECTION
          type: string
        productViewStyle:
          enum:
            - QUICK_ADD
            - VIEW_DETAILS
          type: string
        sections:
          type: string
        selectionType:
          enum:
            - FIXED
            - FLEXIBLE
          type: string
        sellingPlanIds:
          type: string
        shop:
          type: string
        singleProductSettings:
          type: string
        subscriptionBundleLink:
          type: string
        subscriptionBundlingEnabled:
          type: boolean
        subscriptionGroup:
          type: string
        subscriptionId:
          format: int64
          type: integer
        thirdPartyRule:
          type: boolean
        tieredDiscount:
          type: string
        trackInventory:
          type: boolean
        uniqueRef:
          type: string
        variants:
          type: string
      required:
        - shop
      type: object
    SourceProductDTO:
      properties:
        addSubProductIds:
          items:
            format: int64
            type: integer
          type: array
        addSubVariantIds:
          items:
            format: int64
            type: integer
          type: array
        deleteSubProductIds:
          items:
            format: int64
            type: integer
          type: array
        deleteSubVariantIds:
          items:
            format: int64
            type: integer
          type: array
        sourceProductId:
          format: int64
          type: integer
      type: object

````