---
title: "Delete Contract Lifecycle Settings"
method: DELETE
path: "/contract-lifecycle-settings"
tags: ["contract-lifecycle-settings"]
---

# Delete Contract Lifecycle Settings

`DELETE /contract-lifecycle-settings`

Un-enrol: drop the policy and cancel every reminder it was still to send.

Deleting the row is what turns the reminders off, so this is a *policy* delete
rather than a reset to some other schedule. The resync is the cancellation and
reaches every unsent row in the tenant, including on terms whose dates have
passed; ``SENT`` rows survive, here as everywhere.

Idempotent, and the resync still runs for a company with no row so leftovers
from an earlier policy are cleared. Returns the GET's shape.

## Response `200`

Successful Response

- ContractLifecycleConfigurationResponse — The company's resolved lifecycle settings. Always concrete values: an unconfigured company gets the code defaults with ``is_configured=False``, so the UI can render "using defaults" without null-branching every field.
  - `is_configured` boolean, required
  - `notice_reminder_lead_days` integer[], required
  - `renewal_reminder_lead_days` integer[], required
  - `notice_reminders_enabled` boolean
  - `renewal_reminders_enabled` boolean
  - `default_notice_period_value` integer, nullable
  - `default_notice_period_unit` 'days' | 'months' — Unit of a termination-notice period. Months are not 30 days: 3 months before 2026-05-31 is 2026-02-28, while 90 days before it is 2026-03-02. This generates a legal deadline, so the unit is stored rather than normalized to days (see ``backend.helpers.contract_terms.derive_notice_date``).
  - `default_renewal_term_months` integer, required
  - `assignees` AssigneeSelectionResponse[]
    - `mode` 'vendor_assignees' | 'user' | 'team', required — How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.
    - `user_id` string, uuid, nullable
    - `team_id` string, uuid, nullable
    - `label` string, required
  - `subscribers` AssigneeSelectionResponse[]
    - `mode` 'vendor_assignees' | 'user' | 'team', required — How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.
    - `user_id` string, uuid, nullable
    - `team_id` string, uuid, nullable
    - `label` string, required
  - `available_assignee_modes` AssigneeMode[]
  - `default_assignee_mode` 'vendor_assignees' | 'user' | 'team', required — How responsibility for an entity is resolved to a set of users. Not every mode is valid for every entity — see ``ASSIGNEE_SCOPES``.

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/425d5b8a3c17/schema)
