---
title: "Terminate subscription"
method: POST
path: "/partner/subscriptions/{permanent_id}/terminate"
tags: ["Subscriptions"]
---

# Terminate subscription

`POST /partner/subscriptions/{permanent_id}/terminate`

## Request

- Base URL: `https://api.consumer.upfort.com/api`
- URL: `https://api.consumer.upfort.com/api/partner/subscriptions/{permanent_id}/terminate`
- Auth: API key in header `X-API-Key`

Terminates the current subscription for the authenticated partner and
`permanent_id`.

If `termination_date` is omitted, Upfort uses the request processing date.
Future-dated termination behavior is subject to final implementation design.

## Path parameters

- `permanent_id` string, required

## Request body

- TerminateSubscriptionRequest
  - `termination_date` string, date: Termination effective date in YYYY-MM-DD format. Defaults to the processing date when omitted.
  - `reason` string: Optional freeform termination reason stored for audit.

## Response `200`

Subscription terminated.

- SubscriptionResponseEnvelope
  - `success` true, required
  - `data` SubscriptionResponse, required
    - `subscription_id` string, required: Upfort subscription identifier.
    - `permanent_id` string, required: Partner's stable identifier for the subscriber, policy, or membership record.
    - `group_id` string, nullable: Partner-defined subgroup identifier, when provided.
    - `sku_code` string, required: Resolved SKU code for the current subscription.
    - `status` 'active' | 'cancelled' | 'expired' | 'paused', required: Current subscription status.
    - `auto_renew` boolean, nullable: Whether the subscription is configured to renew automatically, when known.
    - `current_period_start` string, date, required: Current subscription period start date.
    - `current_period_end` string, date, nullable: Current subscription period end date, when applicable.
    - `created_at` string, date-time: Timestamp when Upfort created the subscription record.
    - `terminated_at` string, date-time, nullable: Timestamp when Upfort terminated the subscription, when applicable.
  - `timestamp` string, date-time, required

## Other responses

- `400`: Validation error or invalid termination date.
- `401`: Missing or invalid API key.
- `404`: No current subscription found for this partner and permanent ID.
- `409`: Subscription is already terminated or otherwise cannot be terminated.

---

[API](https://skmtc.dev/upfort/apis/upfort-home-partners-api.md) - [All operations](https://skmtc.dev/upfort/apis/upfort-home-partners-api/llms.txt) - [OpenAPI document](https://skmtc.dev/upfort/apis/upfort-home-partners-api/revisions/1923c2180e6a?raw)
