---
title: "Switch the caller's active subscription to a different tier"
method: POST
path: "/v1/billing/change-plan"
tags: ["billing"]
---

# Switch the caller's active subscription to a different tier

`POST /v1/billing/change-plan`

## Request

- Base URL: `https://api.ctindex.io`
- URL: `https://api.ctindex.io/v1/billing/change-plan`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Updates the caller's existing Stripe subscription in place — no Checkout redirect. Upgrades apply immediately with ``proration_behavior='create_prorations'``; downgrades apply immediately with ``proration_behavior='always_invoice'`` (per task spec) so an immediate credit invoice is issued for the unused portion of the higher tier. Returns the resolved direction so the client can render the right confirmation copy.

## Cookies

- `ctix_session` string, nullable

## Request body

- CheckoutRequest: Body for POST /v1/billing/checkout.
  - `tier` string, required
  - `interval` string

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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