---
title: "Change subscription"
method: POST
path: "/v3/openmeter/subscriptions/{subscriptionId}/change"
tags: ["OpenMeter Subscriptions"]
---

# Change subscription

`POST /v3/openmeter/subscriptions/{subscriptionId}/change`

Closes a running subscription and starts a new one according to the
specification. Can be used for upgrades, downgrades, and plan changes.

## Path parameters

- `subscriptionId` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).

## Request body

- BillingSubscriptionChange — Request for changing a subscription.
  - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
  - `settlement_mode` 'credit_then_invoice' | 'credit_only' — Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits.
  - `customer` object, required — The customer to create the subscription for.
    - `id` string — The ID of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used.
    - `key` string — The key of the customer to create the subscription for. Either customer ID or customer key must be provided. If both are provided, the ID will be used.
  - `plan` object, required — The plan reference of the subscription.
    - `id` string — The plan ID of the subscription. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used.
    - `key` string — The plan Key of the subscription, if any. Set if subscription is created from a plan. ID or Key of the plan is required if creating a subscription from a plan. If both are provided, the ID will be used.
    - `version` integer — The plan version of the subscription, if any. If not provided, the latest version of the plan will be used.
  - `billing_anchor` string, date-time — A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day) If not provided, the subscription will be created with the subscription's creation time as the billing anchor.
  - `timing` union, required — Timing configuration for the change, when the change should take effect. For changing a subscription, the accepted values depend on the subscription configuration.
    - 'immediate' | 'next_billing_cycle' — Subscription edit timing. When immediate, the requested changes take effect immediately. When next_billing_cycle, the requested changes take effect at the next billing cycle.
    - string, date-time — [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in UTC.

## Response `200`

The request has succeeded.

- BillingSubscriptionChangeResponse — Response for changing a subscription.
  - `current` object, required — The current subscription before the change.
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity last update date.
    - `deleted_at` string, date-time — An ISO-8601 timestamp representation of entity deletion date.
    - `customer_id` string, required — The customer ID of the subscription.
    - `plan_id` string — The plan ID of the subscription. Set if subscription is created from a plan.
    - `billing_anchor` string, date-time, required — A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day)
    - `status` 'active' | 'inactive' | 'canceled' | 'scheduled', required — The status of the subscription.
    - `settlement_mode` 'credit_then_invoice' | 'credit_only' — Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits.
  - `next` object, required — The new state of the subscription after the change.
    - `id` string, required — ULID (Universally Unique Lexicographically Sortable Identifier).
    - `labels` Labels — Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. Keys must be of length 1-63 characters, and cannot start with "kong", "konnect", "mesh", "kic", or "_".
    - `created_at` string, date-time, required — An ISO-8601 timestamp representation of entity creation date.
    - `updated_at` string, date-time, required — An ISO-8601 timestamp representation of entity last update date.
    - `deleted_at` string, date-time — An ISO-8601 timestamp representation of entity deletion date.
    - `customer_id` string, required — The customer ID of the subscription.
    - `plan_id` string — The plan ID of the subscription. Set if subscription is created from a plan.
    - `billing_anchor` string, date-time, required — A billing anchor is the fixed point in time that determines the subscription's recurring billing cycle. It affects when charges occur and how prorations are calculated. Common anchors: - Calendar month (1st of each month): `2025-01-01T00:00:00Z` - Subscription anniversary (day customer signed up) - Custom date (customer-specified day)
    - `status` 'active' | 'inactive' | 'canceled' | 'scheduled', required — The status of the subscription.
    - `settlement_mode` 'credit_then_invoice' | 'credit_only' — Settlement mode for billing. Values: - `credit_then_invoice`: Credits are applied first, then any remainder is invoiced. - `credit_only`: Usage is settled exclusively against credits.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict

---

[API](https://skmtc.net/kong/apis/konnect-api-go-sdk.md) · [All operations](https://skmtc.net/kong/apis/konnect-api-go-sdk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kong/konnect-api-go-sdk/versions/f920f418f552/schema)
