---
title: "Price a plan tier change"
method: POST
path: "/v1/account/plan/quote"
tags: ["Plans"]
---

# Price a plan tier change

`POST /v1/account/plan/quote`

## Request

- Base URL: `https://api.pmwallets.com`
- URL: `https://api.pmwallets.com/v1/account/plan/quote`
- Auth: API key in header `x-api-key`

What moving to `tier` would do today (kind: upgrade with `cents` charged now, downgrade, same, keep, or a refusal kind such as not_active). Charges nothing. Card-plan changes themselves are session-only (website); a balance-paid plan is extended or moved down with POST /v1/account/plan/balance.

## Request body

- object
  - `tier` 'base' | 'pro' | 'max', required

## Response `201`

Quote (HTTP 201, nothing charged).

- object
  - `kind` 'upgrade' | 'downgrade' | 'same' | 'keep' | 'balance_downgrade' | 'not_active' | 'not_on_sale' | 'downgrade_pending' | 'payment_pending' | 'trialing'
  - `from` string
  - `to` string
  - `cents` integer: Charged today for an upgrade.
  - `periodEnd` string
  - `caps` object
    - `monthly` integer
    - `exports` integer
  - `period` integer: Balance plans: the period number the quote is for.

## Other responses

- `400`: Invalid parameter or body; `message` names what was expected.
- `401`: No valid API key (missing, malformed, unknown or revoked).

---

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