---
title: "List Contract Subscriptions"
method: GET
path: "/rr/api/v1/contracts/{contract_id}/subscriptions"
tags: ["Revenue Recognition"]
---

# List Contract Subscriptions

`GET /rr/api/v1/contracts/{contract_id}/subscriptions`

Retrieve a list of contract subscriptions with optional filtering and sorting.

        Supports including soft-deleted records for audit and recovery purposes.
        When include_deleted=true, returns ONLY deleted records instead of active records.
        Deleted records contain minimal data: 'id', 'is_deleted=true', 'deleted_at' timestamp,
        and 'last_modified_at'. When 'false' or omitted, returns ONLY active records.
        This provides clean separation between active and deleted data.

## Path parameters

- `contract_id` integer, required

## Query parameters

- `include_deleted` boolean
- `last_modified_at__gte` string
- `last_modified_at__lte` string

## Response `200`

- ContractSubscription[]
  - `id` integer, required
  - `is_deleted` boolean, required
  - `deleted_at` string, date-time, nullable, required
  - `lines` string, required
  - `product_name` string, required
  - `product_is_renewable` boolean, nullable, required
  - `product_bundle` string, required
  - `product_bundle_name` string, required
  - `contract_product_bundle` ContractProductBundleRead, required — Read-only serializer for ContractProductBundle in milestone responses.
    - `id` integer, required
    - `source_bundle` integer, nullable — Original ProductBundle template this was created from
    - `source_bundle_name` string, nullable, required
    - `total_amount` number, double, required — Total amount to be allocated across products
    - `currency` string
    - `lines` ContractProductBundleLineRead[], required
      - `id` integer, required
      - `product` integer, required
      - `product_name` string, required
      - `amount` number, double, required — Dollar amount allocated to this product
      - `percentage` string, required
      - `original_percentage` number, double, nullable — Original percentage from source ProductBundle for auditing
  - `total_value` number, double, required
  - `last_modified_at` string, date-time, required
  - `rate` number, double, nullable
  - `quantity` number, double, nullable
  - `renewal_behavior` 'FOLLOW_CONTRACT' | 'FIXED_END' — * `FOLLOW_CONTRACT` - Follow Contract * `FIXED_END` - Fixed End Date
  - `period_amount` number, double, nullable — Evergreen-only input amount per billing period (for example 10000.00 for a quarterly period). Provide this to auto-generate lines for evergreen subscriptions. Ignored for non-evergreen writes.
  - `invoiced_amount_migration` number, double, nullable — Migration-only: total amount already invoiced in a prior system. When provided, marks revenue transactions as migration-invoiced up to this amount.
  - `is_contract_amendment` boolean
  - `start_date` string, date, nullable
  - `end_date` string, date, nullable
  - `mrr` number, double, nullable
  - `discount` number, double, nullable — Per-unit discount in contract currency. Line amount is Quantity × (Rate − Discount). Null when no discount is configured.
  - `notes` string, nullable
  - `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
  - `catchup_manually_overridden` boolean — True when a user explicitly set use_catchup or catchup_date via the modal. Suppresses automatic reconciliation by integration syncs so the user's choice survives.
  - `invoice_calculation` 'FIXED_RATE' | 'FIXED_QUANTITY' — * `FIXED_RATE` - Fixed Rate * `FIXED_QUANTITY` - Fixed Quantity
  - `created_at` string, date-time, required
  - `source` 'SALESFORCE' | 'HUBSPOT' | 'STRIPE' | 'MANUAL' — * `SALESFORCE` - Salesforce * `HUBSPOT` - Hubspot * `STRIPE` - Stripe * `MANUAL` - Manual
  - `external_id` string, nullable
  - `rates_are_net` boolean — When True, this subscription's rate and waterfall amounts already reflect post-discount (net) pricing. Prevents invoice creation from double-counting discounts via a separate Discount RevenueTransaction.
  - `customer` integer, required
  - `contract` integer, required
  - `product` integer, nullable
  - `modified_subscription` integer, nullable

---

[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)
