---
title: "Preview a prorated plan change"
method: POST
path: "/subscriptions/estimate"
tags: ["Subscriptions"]
---

# Preview a prorated plan change

`POST /subscriptions/estimate`

Generates a preview of the estimated charges, credits, or refunds for a subscription before making any changes.

This endpoint returns a prorated estimate for only one subscription per request.

## Request body

- object
  - `subscription` string, required — Unique identifier for the subscription.
  - `product` string — Product identifier for the subscription change.
  - `quantity` integer — Quantity of the product.
  - `pricing` object, required — Pricing details for the subscription.
    - `price` object — Per-currency price map for the subscription.
      - `USD` number, double, required — Price in USD.
      - `EUR` number, double, required — Price in EUR.
  - `addons` object[] — List of add-ons included in the subscription.
    - `product` string — Product identifier for the add-on.
    - `quantity` integer — Quantity of the add-on.
    - `pricing` object, required — Pricing details for the add-on.
      - `USD` number, double, required — Price in USD.
      - `EUR` number, double, required — Price in EUR.
  - `prorate` boolean — Indicates whether the subscription change should be prorated.
  - `coupons` string[] — Array of coupon codes to be applied to the subscription.

## Response `200`

OK

- EstimateSubscriptionSuccessResponse
  - `subscription` string — Unique identifier for the subscription.
  - `currency` string — The subscription currency.
  - `timezone` string — The timezone of the subscription.
  - `periodStartDate` integer — Start date of the current billing period in epoch milliseconds.
  - `periodStartDateDisplay` string — Human-readable format of the start date.
  - `periodStartDateDisplayISO8601` string — ISO 8601 format of the start date.
  - `periodEndDate` integer — End date of the current billing period in epoch milliseconds.
  - `periodEndDateDisplay` string — Human-readable format of the end date.
  - `periodEndDateDisplayISO8601` string — ISO 8601 format of the end date.
  - `isProratable` boolean — Indicates whether this subscription change is eligible for proration.
  - `prorationStatus` string — Indicates whether proration is available for this subscription change. When `Available`, the estimated charge or credit shown in this response will apply when you confirm the plan change. All other values indicate that proration cannot proceed and the reason why. Possible values: - `Available` — Proration is available. - `The subscription is inactive.` — The subscription must be active for proration to apply. - `The subscription is scheduled to be paused.` — Proration is not available while a pause is scheduled. - `The subscription is currently paused.` — Proration cannot be applied to a paused subscription. - `The subscription doesn't have a payment method on file.` — A payment method is required for proration. - `The payment method associated with the subscription can't be used for proration.` — The current payment method does not support proration. - `Subscriptions in the trial period are not eligible for proration.` — Trial subscriptions cannot be prorated. - `Subscriptions in the trial period are not eligible for proration. The subscription is scheduled to be paused.` — Combined trial and scheduled-pause condition. - `Managed subscriptions are not eligible for proration.` — Managed subscriptions use a separate billing flow. - `The subscription is either currently on, or has passed the re-bill and can't be prorated.` — The subscription is at or past its re-bill date. - `The subscription can't be prorated since there are no successful payments posted to it.` — At least one successful payment is required. - `The subscription can't be prorated as the payment is no longer refundable.` — The refund window for the current period has closed.
  - `endDate` string, nullable — Subscription end date, if set. Null for indefinitely-renewing subscriptions.
  - `endDateDisplay` string, nullable — Human-readable format of the subscription end date.
  - `endDateDisplayISO8601` string, nullable — ISO 8601 format of the subscription end date.
  - `remainingPeriods` integer, nullable — Number of remaining billing periods. Returns `-1` for indefinite renewal.
  - `nextChargeDate` integer — Date of the next scheduled charge in epoch milliseconds.
  - `nextChargeDateDisplay` string — Human-readable format of the next charge date.
  - `nextChargeDateDisplayISO8601` string — ISO 8601 format of the next charge date.
  - `discountTotals` object — Discount amounts broken down by type.
    - `productLevelDiscountTotal` number, float — Total discount from product-level pricing rules.
    - `productLevelDiscountTotalDisplay` string — Human-readable product-level discount total.
    - `couponLevelDiscountTotal` number, float — Total discount from applied coupon codes.
    - `couponLevelDiscountTotalDisplay` string — Human-readable coupon-level discount total.
  - `currentPlan` object — Details of the current subscription plan.
    - `display` string — Display name of the current plan.
    - `product` string — Product identifier of the current plan.
    - `billingFrequency` string — Frequency of billing for the current plan.
    - `price` number, float — Price of the current plan.
    - `priceDisplay` string — Human-readable format of the price.
    - `discount` number, float — Total discount applied to the current plan.
    - `discountDisplay` string — Human-readable format of the discount.
    - `discounts` DiscountAddOn[] — Detailed discount information for the current plan.
      - `applyDiscountImmediately` boolean — Indicates if the discount is applied immediately.
      - `discountPath` string — Path to the discount source, either product path or coupon code.
      - `discountDuration` string — Duration of the discount in billing periods. Null if indefinite.
      - `percentValue` number, float — Percentage value of the discount.
      - `discountValue` number, float — Fixed amount discount value.
    - `quantity` integer — Quantity of the current plan.
    - `subtotal` number, float — Subtotal amount for the current plan.
    - `subtotalDisplay` string — Human-readable format of the subtotal.
    - `tax` number, float — Tax amount for the current plan.
    - `taxDisplay` string — Human-readable format of the tax.
    - `total` number, float — Total amount for the current plan.
    - `totalDisplay` string — Human-readable format of the total.
    - `taxPercent` number, float — Tax percentage applied to the current plan.
    - `taxPercentDisplay` string — Human-readable format of the tax percentage.
    - `periodStartDate` integer — Start date of the current plan period in epoch milliseconds.
    - `periodStartDateDisplay` string — Human-readable format of the start date.
    - `periodStartDateDisplayISO8601` string — ISO 8601 format of the start date.
    - `periodEndDate` integer — End date of the current billing period in epoch milliseconds.
    - `periodEndDateDisplay` string — Human-readable format of the end date.
    - `periodEndDateDisplayISO8601` string — ISO 8601 format of the end date.
    - `proratedItemCharge` number, float — Prorated charge amount.
    - `proratedItemChargeDisplay` string — Human-readable format of the prorated charge.
    - `proratedItemCredit` number, float — Prorated credit amount.
    - `proratedItemCreditDisplay` string — Human-readable format of the prorated credit.
    - `proratedItemSubtotalDisplay` string — Human-readable format of the prorated subtotal.
    - `proratedItemTax` number, float — Prorated tax amount.
    - `proratedItemTaxDisplay` string — Human-readable format of the prorated tax.
    - `proratedItemTotal` number, float — Total prorated amount.
    - `proratedItemTotalDisplay` string — Human-readable format of the prorated total.
    - `addons` object[] — Add-ons included in the plan.
      - `product` string — The product path of the add-on.
      - `quantity` integer — The quantity of the add-on.
      - `pricing` object — Pricing details of the add-on.
        - `price` object — Price of the add-on by currency.
          - `USD` number, float — Price of the add-on in USD.
    - `subscriptionSubtotal` number, float — Subtotal amount for the subscription.
    - `subscriptionSubtotalDisplay` string — Human-readable format of the subscription subtotal.
    - `subscriptionTax` number, float — Tax amount for the subscription.
    - `subscriptionTaxDisplay` string — Human-readable format of the subscription tax.
    - `subscriptionTotal` number, float — Total amount for the subscription.
    - `subscriptionTotalDisplay` string — Human-readable format of the subscription total.
    - `subscriptionProratedCredit` number, float — Prorated credit for the subscription.
    - `subscriptionProratedCreditDisplay` string — Human-readable format of the prorated credit.
  - `proposedPlan` object — Details of the proposed subscription plan.
    - `display` string — Display name of the proposed plan.
    - `product` string — Product identifier of the proposed plan.
    - `billingFrequency` string — Frequency of billing for the proposed plan.
    - `price` number, float — Price of the proposed plan.
    - `priceDisplay` string — Human-readable format of the price.
    - `discount` number, float — Total discount applied to the proposed plan.
    - `discountDisplay` string — Human-readable format of the discount.
    - `discounts` DiscountAddOn[] — Detailed discount information for the proposed plan.
      - `applyDiscountImmediately` boolean — Indicates if the discount is applied immediately.
      - `discountPath` string — Path to the discount source, either product path or coupon code.
      - `discountDuration` string — Duration of the discount in billing periods. Null if indefinite.
      - `percentValue` number, float — Percentage value of the discount.
      - `discountValue` number, float — Fixed amount discount value.
    - `quantity` integer — Quantity of the proposed plan.
    - `subtotal` number, float — Subtotal amount for the proposed plan.
    - `subtotalDisplay` string — Human-readable format of the subtotal.
    - `tax` number, float — Tax amount for the proposed plan.
    - `taxDisplay` string — Human-readable format of the tax.
    - `total` number, float — Total amount for the proposed plan.
    - `totalDisplay` string — Human-readable format of the total.
    - `taxPercent` number, float — Tax percentage applied to the proposed plan.
    - `taxPercentDisplay` string — Human-readable format of the tax percentage.
    - `periodStartDate` integer — Start date of the proposed plan period in epoch milliseconds.
    - `periodStartDateDisplay` string — Human-readable format of the start date.
    - `periodStartDateDisplayISO8601` string — ISO 8601 format of the start date.
    - `periodEndDate` integer — End date of the proposed plan period in epoch milliseconds.
    - `periodEndDateDisplay` string — Human-readable format of the end date.
    - `periodEndDateDisplayISO8601` string — ISO 8601 format of the end date.
    - `proratedItemCharge` number, float — Prorated charge amount.
    - `proratedItemChargeDisplay` string — Human-readable format of the prorated charge.
    - `proratedItemCredit` number, float — Prorated credit amount.
    - `proratedItemCreditDisplay` string — Human-readable format of the prorated credit.
    - `proratedItemSubtotal` number, float — Subtotal amount for the prorated items.
    - `proratedItemSubtotalDisplay` string — Human-readable format of the prorated subtotal.
    - `proratedItemTax` number, float — Prorated tax amount.
    - `proratedItemTaxDisplay` string — Human-readable format of the prorated tax.
    - `proratedItemTotal` number, float — Total prorated amount.
    - `proratedItemTotalDisplay` string — Human-readable format of the total prorated amount.
    - `addons` object[] — Add-ons included in the plan.
      - `product` string — The product path of the add-on.
      - `quantity` integer — The quantity of the add-on.
      - `pricing` object — Pricing details of the add-on.
        - `price` object — Price of the add-on by currency.
          - `USD` number, float — Price of the add-on in USD.
    - `subscriptionSubtotal` number, float — Subtotal amount for the proposed subscription.
    - `subscriptionSubtotalDisplay` string — Human-readable format of the subscription subtotal.
    - `subscriptionTax` number, float — Tax amount for the proposed subscription.
    - `subscriptionTaxDisplay` string — Human-readable format of the subscription tax.
    - `subscriptionTotal` number, float — Total amount for the proposed subscription.
    - `subscriptionTotalDisplay` string — Human-readable format of the subscription total.
    - `subscriptionProratedCharge` number, float — Prorated charge for the proposed subscription.
    - `subscriptionProratedChargeDisplay` string — Human-readable format of the prorated charge.
  - `amountDue` object — Details of the amount due for the proration.
    - `prorationSubtotal` number, float — Subtotal amount for the proration.
    - `prorationSubtotalDisplay` string — Human-readable format of the proration subtotal.
    - `prorationTax` number, float — Tax amount for the proration.
    - `prorationTaxDisplay` string — Human-readable format of the proration tax.
    - `totalAmountDue` number, float — Total amount due for the proration.
    - `totalAmountDueDisplay` string — Human-readable format of the total amount due.
    - `nextChargeDate` integer — Date of the next charge in epoch milliseconds.
    - `nextChargeDateDisplay` string — Human-readable format of the next charge date.
    - `nextChargeDateDisplayISO8601` string — ISO 8601 format of the next charge date.
    - `nextChargeAmount` number, float — Amount of the next charge.
    - `nextChargeAmountDisplay` string — Human-readable format of the next charge amount.

## Other responses

- `400` — Bad Request
- `401` — Authentication credentials are missing or invalid.
- `404` — Not Found
- `429` — Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header.
- `500` — Internal server error.

---

[API](https://skmtc.net/fastspring/apis/fastspring-api-accounts.md) · [All operations](https://skmtc.net/fastspring/apis/fastspring-api-accounts/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fastspring/fastspring-api-accounts/versions/ae2f0b97db3e/schema)
