---
title: "Create Product Bundle"
method: POST
path: "/rr/api/v1/product-bundles"
tags: ["Revenue Recognition"]
---

# Create Product Bundle

`POST /rr/api/v1/product-bundles`

Create a new product bundle with products and percentage allocations. Total percentage must equal 100.

## Request body

- ProductBundle
  - `id` integer, required
  - `bundle_name` string, required
  - `bundle_description` string, nullable
  - `stripe_product_id` string, nullable
  - `anrok_item_id` string, nullable, required
  - `lines` ProductBundleLine[], required
    - `id` integer, required
    - `product` integer, required
    - `product_name` string, required
    - `product_id_str` string, required
    - `percentage_allocation` number, double, required
    - `component_type` union — Component type for this line in a mixed-type bundle. NULL = legacy single-type bundle (type inherited from the referencing ContractSubscription/Milestone/Usage). * `SUBSCRIPTION` - Subscription * `MILESTONE` - Milestone * `USAGE` - Usage
      - 'SUBSCRIPTION' | 'MILESTONE' | 'USAGE' — * `SUBSCRIPTION` - Subscription * `MILESTONE` - Milestone * `USAGE` - Usage
      - ''
      - unknown
  - `created_at` string, date-time, required
  - `last_modified_at` string, date-time, required
  - `is_deleted` boolean, required
  - `deleted_at` string, date-time, nullable, required

## Response `201`

- ProductBundle
  - `id` integer, required
  - `bundle_name` string, required
  - `bundle_description` string, nullable
  - `stripe_product_id` string, nullable
  - `anrok_item_id` string, nullable, required
  - `lines` ProductBundleLine[], required
    - `id` integer, required
    - `product` integer, required
    - `product_name` string, required
    - `product_id_str` string, required
    - `percentage_allocation` number, double, required
    - `component_type` union — Component type for this line in a mixed-type bundle. NULL = legacy single-type bundle (type inherited from the referencing ContractSubscription/Milestone/Usage). * `SUBSCRIPTION` - Subscription * `MILESTONE` - Milestone * `USAGE` - Usage
      - 'SUBSCRIPTION' | 'MILESTONE' | 'USAGE' — * `SUBSCRIPTION` - Subscription * `MILESTONE` - Milestone * `USAGE` - Usage
      - ''
      - unknown
  - `created_at` string, date-time, required
  - `last_modified_at` string, date-time, required
  - `is_deleted` boolean, required
  - `deleted_at` string, date-time, nullable, required

---

[API](https://skmtc.net/campfire/apis/campfire-developer-apis.md) · [All operations](https://skmtc.net/campfire/apis/campfire-developer-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/campfire/campfire-developer-apis/versions/6945ebc3180e/schema)
