---
title: "Create Contract Bundle"
method: POST
path: "/rr/api/v1/contracts/{contract_id}/bundles"
tags: ["Revenue Recognition"]
---

# Create Contract Bundle

`POST /rr/api/v1/contracts/{contract_id}/bundles`

Create a new contract bundle.

    Evergreen vs standard:
    - Standard contracts require a fixed bundle end_date.
    - Evergreen contracts allow end_date to be null (open-ended) or set to a billing-period end date.
      Evergreen bundle start/end dates must align with billing period boundaries.

    Evergreen-specific option:
    - rebalance_journal_entries_indefinitely=true keeps invoice-journal rebalancing in sync as the evergreen
      contract extends.

## Path parameters

- `contract_id` integer, required

## Request body

- ContractBundle
  - `id` integer, required
  - `is_deleted` boolean, required
  - `deleted_at` string, date-time, nullable, required
  - `end_date` string, date, nullable — Bundle end date. Required for standard contracts. For evergreen contracts this may be null to follow the contract timeline, or set to a billing-period end date.
  - `rebalance_journal_entries_indefinitely` boolean — Should only be used for Evergreen contracts. When true, linked invoice journal entries are rebalanced on each evergreen contract extension.
  - `lines` ContractBundleLine[], required
    - `id` integer, required
    - `is_deleted` boolean, required
    - `deleted_at` string, date-time, nullable, required
    - `contract_bundle` integer
    - `product_name` string, required
    - `amount` number, double, nullable
    - `created_at` string, date-time, required
    - `last_modified_at` string, date-time, required
    - `customer` integer, required
    - `product` integer, nullable
  - `bundle_name` string, required
  - `bundle_description` string, nullable
  - `start_date` string, date, required
  - `use_daily_accounting` boolean
  - `proration_method` 'standard' | 'thirty_day' | 'daily' — * `standard` - Standard (actual month length) * `thirty_day` - Fixed 30-day month * `daily` - Daily
  - `use_catchup` boolean
  - `catchup_date` string, date, nullable
  - `created_at` string, date-time, required
  - `last_modified_at` string, date-time, required
  - `customer` integer, required
  - `contract` integer, required

## Response `201`

- ContractBundle
  - `id` integer, required
  - `is_deleted` boolean, required
  - `deleted_at` string, date-time, nullable, required
  - `end_date` string, date, nullable — Bundle end date. Required for standard contracts. For evergreen contracts this may be null to follow the contract timeline, or set to a billing-period end date.
  - `rebalance_journal_entries_indefinitely` boolean — Should only be used for Evergreen contracts. When true, linked invoice journal entries are rebalanced on each evergreen contract extension.
  - `lines` ContractBundleLine[], required
    - `id` integer, required
    - `is_deleted` boolean, required
    - `deleted_at` string, date-time, nullable, required
    - `contract_bundle` integer
    - `product_name` string, required
    - `amount` number, double, nullable
    - `created_at` string, date-time, required
    - `last_modified_at` string, date-time, required
    - `customer` integer, required
    - `product` integer, nullable
  - `bundle_name` string, required
  - `bundle_description` string, nullable
  - `start_date` string, date, required
  - `use_daily_accounting` boolean
  - `proration_method` 'standard' | 'thirty_day' | 'daily' — * `standard` - Standard (actual month length) * `thirty_day` - Fixed 30-day month * `daily` - Daily
  - `use_catchup` boolean
  - `catchup_date` string, date, nullable
  - `created_at` string, date-time, required
  - `last_modified_at` string, date-time, required
  - `customer` integer, required
  - `contract` integer, 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/revisions/6945ebc3180e/schema)
