---
title: "Change Plan"
method: POST
path: "/subscription/api/v1/subscriptions/{id}/change-plan"
tags: ["Subscription Lifecycle"]
---

# Change Plan

`POST /subscription/api/v1/subscriptions/{id}/change-plan`

This changes the subscription to another pricing plan either immediately or at the next billing cycle. 

**Notes:**

- `effective` defaults to **NEXT_CYCLE** if not supplied.
- When `effective` is **NEXT_CYCLE**, the new plan is stored as the pending plan and becomes active at the next successful billing cycle.
- When `effective` is **IMMEDIATELY**, the subscription is switched to the new plan immediately.
- Attempting to change to the current plan or modifying a terminal subscription returns a validation error.

## Path parameters

- `id` string, required

## Request body

- ChangeSubscriptionPlanRequest
  - `newPlanCode` string, required — The plan code of the new subscription plan.
  - `effective` string — When the new plan should take effect. Supported values are **IMMEDIATELY** and **NEXT_CYCLE**.
  - `prorate` boolean — Indicates whether the current billing cycle should be prorated.

## Response `200`

Request Successful

- B9aaaf35387f42a99fd9D7b0292aacbc — unresolved $ref

## Other responses

- `400` — Invalid request

---

[API](https://skmtc.net/payaza/apis/payaza-documentation.md) · [All operations](https://skmtc.net/payaza/apis/payaza-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payaza/payaza-documentation/revisions/1ecd4b94ff07/schema)
