Skip to main content
POST
Preview a subscription update
Click the base URL in the API playground and select the Sandbox host for test data or the Production host for live data. Use credentials from the same environment.

Authorizations

Authorization
string
header
required

The Server API Key obtained from the kelviq application. Pass as a Bearer token in the Authorization header. Example: 'Authorization: Bearer YOUR_API_KEY'

Path Parameters

subscriptionId
string<uuid>
required

The unique identifier of the subscription whose update will be previewed.

Body

application/json
planIdentifier
string
required

The identifier of the proposed new plan.

Example:

"new_plan_enterprise"

chargePeriod
enum<string>
required

The proposed charging period for the subscription.

Available options:
ONE_TIME,
MONTHLY,
YEARLY,
WEEKLY,
DAILY,
TWENTY_EIGHT_DAYS,
THREE_MONTHS,
SIX_MONTHS
Example:

"YEARLY"

prorationBehavior
enum<string> | null

The proposed proration behaviour — amountChargedImmediately in the response reflects it.

Controls when the customer is billed for this change.

  • IMMEDIATE_CHARGE — prorate and invoice the difference right now.
  • PRORATE_NEXT_INVOICE — prorate now, but bill it on the next invoice.
  • NO_PRORATION — the plan changes immediately, but the partial period is neither credited nor charged; the next invoice bills the full new price.

If omitted, the organization's default is used.

Note: changing chargePeriod to a different billing interval (for example MONTHLY to YEARLY) resets the billing cycle and invoices the new period immediately, whichever value you pass. With NO_PRORATION that means the customer is charged for a full new period with no credit for unused time on the old one — call the preview endpoint first to see the exact amount.

Available options:
IMMEDIATE_CHARGE,
PRORATE_NEXT_INVOICE,
NO_PRORATION
Example:

"PRORATE_NEXT_INVOICE"

features
object[] | null

List of proposed features and quantities for the subscription.

Example:
ipAddress
string | null

The IP Address of the customer, for location-based pricing.

Example:

"103.154.35.20"

trialEnd
string | null

The proposed trial end. Accepts "now" or a future ISO 8601 datetime.

Example:

"2027-12-31 23:59:59"

Response

The proposed update was priced successfully; no changes were applied.

currency
string

ISO 4217 currency code for all amounts in the response.

Example:

"USD"

recurringAmount
number

The subscription's new recurring amount in the currency's major unit.

Example:

50

recurringAmountUnits
integer

The subscription's new recurring amount in the currency's minor unit.

Example:

5000

amountChargedImmediately
number

Amount that would be charged immediately in the currency's major unit. This is non-zero only when the update uses immediate invoicing.

Example:

39.5

amountChargedImmediatelyUnits
integer

Amount that would be charged immediately in the currency's minor unit.

Example:

3950

nextInvoice
object | null

Preview of the next provider invoice. null for billing methods that do not provide invoice previews.