---
title: "Cancel a Team subscription at period end"
method: PATCH
path: "/v1/orgs/{orgId}/billing/subscription"
tags: ["Billing"]
---

# Cancel a Team subscription at period end

`PATCH /v1/orgs/{orgId}/billing/subscription`

Schedules the org to revert to free at the end of the current billing period. Team stays active until the period ends, then the plan flips to free automatically.

## Path parameters

- `orgId` string, uuid, required

## Headers

- `Authorization` string

## Request body

- object
  - `cancelAtPeriodEnd` true, required

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'subscription', required
    - `attributes` object, required
      - `plan` object, required
        - `code` union, required
          - 'free'
          - 'free-legacy-v1'
          - 'team-v1'
          - 'business-v1'
          - 'enterprise-v1'
        - `displayName` string, required
      - `status` 'canceling', required
      - `startedAt` string, date-time, nullable, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `500` — Internal Server Error
- `503` — Service Unavailable

## Changes

- **2026-09-15** `d50a02b79ad3` — 2 info
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/url` to the response with the `403` status

[Change history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/orgs/:orgId/billing/subscription/patch.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/288d28ba107c?raw)
