---
title: "Cancel the plan at the end of the current period"
method: POST
path: "/v1/billing/subscription/cancel"
tags: ["Billing"]
---

# Cancel the plan at the end of the current period

`POST /v1/billing/subscription/cancel`

## Request

- Base URL: `https://api.lizzflix.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.lizzflix.xyz/v1/billing/subscription/cancel`
- Auth: none declared

## Request body

- PlanChangeBody
  - `surface` 'web' | 'ios' | 'android'

## Response `200`

Plan changed

- PlanChangeResult
  - `status` 'cancel_at_period_end' | 'active', required
  - `effectiveAt` string, nullable, required

## Other responses

- `401`: Unauthorized
- `404`: No active plan
- `409`: Already in that state
- `502`: Stripe refused

---

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