---
title: "Preview proration for a plan change."
method: POST
path: "/api/v1/billing/preview-upgrade"
tags: ["Billing"]
---

# Preview proration for a plan change.

`POST /api/v1/billing/preview-upgrade`

## Request

- Base URL: `https://api-dev.fusehealth.com`
- URL: `https://api-dev.fusehealth.com/api/v1/billing/preview-upgrade`
- Auth: API key in header `x-api-key`

Computes Stripe proration credit/charge for a plan change. Read-only (writes nothing).

## Request body

- object
  - `newPlanId` string, required

## Response `200`

Success

- object

## Other responses

- `400`: Bad request / business-rule failure (may include a `code`)
- `401`: Missing, invalid, inactive, or expired API key (or JWT)
- `403`: Authenticated but not permitted (insufficient scope, wrong role, or FUSE feature not enabled)
- `404`: Resource not found (or not owned by the key's clinic)
- `409`: Subscription expired, sync required.

---

[API](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external.md) · [All operations](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/llms.txt) · [OpenAPI document](https://skmtc.dev/fusehealth/apis/fuse-brand-api-external/revisions/50821832728c?raw)
