---
title: "Modify Subscription Schedule"
method: POST
path: "/rr/api/v1/modify-subscription-schedule"
tags: ["Revenue Recognition"]
---

# Modify Subscription Schedule

`POST /rr/api/v1/modify-subscription-schedule`

Generate a modified subscription schedule by comparing a new schedule against an existing subscription. Returns the delta between the original and modified schedules, with support for catch-up accounting and contract end date modifications.

## Request body

- GenerageSubscriptionSchedule
  - `start_date` string, date, required — Start date of the subscription period.
  - `end_date` string, date, nullable — End date of the subscription period. Defaults to 1 year from start date if not provided.
  - `total_value` number, double, required — Total contract value for the subscription period.
  - `mrr` number, double — Monthly recurring revenue. If not provided, it is calculated from total_value and the subscription period.
  - `use_daily_accounting` boolean — Whether to use daily (vs monthly) revenue recognition.
  - `proration_method` union — Proration method. When provided, takes precedence over use_daily_accounting (DAILY↔True, STANDARD/THIRTY_DAY↔False). * `standard` - Standard (actual month length) * `thirty_day` - Fixed 30-day month * `daily` - Daily
    - 'standard' | 'thirty_day' | 'daily' — * `standard` - Standard (actual month length) * `thirty_day` - Fixed 30-day month * `daily` - Daily
    - unknown
  - `use_catchup` boolean — Enable catch-up accounting for retroactive amendments.
  - `catchup_date` string, date, nullable — Date from which to apply catch-up adjustments. Required if use_catchup is true.
  - `modified_subscription` integer, nullable — ID of the existing contract subscription being modified.
  - `does_modify_contract_end_date` boolean — Whether this modification changes the contract end date.
  - `apply_prospectively` boolean — Apply changes prospectively from catchup_date instead of retroactively. Only valid when use_catchup is true.

## Response `200`

- ContractSubscriptionLine[]
  - `id` integer, nullable
  - `start_date` string, date, required
  - `end_date` string, date, required
  - `original_value` number, double, nullable
  - `total_value` number, double, required
  - `original_mrr` number, double, nullable
  - `mrr` number, double
  - `original_quantity` number, double, nullable
  - `quantity` number, double, nullable
  - `original_rate` number, double, nullable
  - `rate` number, double, nullable
  - `use_daily_accounting` boolean
  - `is_contract_amendment` boolean

---

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