---
title: "Change an active subscription between Starter and Pro"
method: POST
path: "/billing/subscription-plan"
---

# Change an active subscription between Starter and Pro

`POST /billing/subscription-plan`

## Request

- Base URL: `https://api.eurobase.dev`
- URL: `https://api.eurobase.dev/billing/subscription-plan`
- Auth: HTTP bearer

Updates the existing Stripe subscription item price. An upgrade charges the prorated difference now and applies only once paid; a downgrade applies now and credits unused time on the next invoice. Paid limits change only after the signed Stripe subscription webhook.

## Request body

- object
  - `organizationId` string, required
  - `planCode` 'starter' | 'pro', required

## Response `200`

Stripe accepted the plan change; entitlement follows the signed webhook

- object
  - `planCode` 'starter' | 'pro', required

## Other responses

- `402`: Payment for the upgrade failed; the plan is unchanged
- `403`: Billing owner required
- `409`: No active subscription to change, the plan is already active, or Stripe holds an unconfirmed change

---

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