Change the plan
Switch a subscription to a different recurring product — the standard upgrade or downgrade flow.- When the change takes effect depends on the proration behavior:
invoiceandprorateapply the new product immediately, whilenext_periodschedules a pending update that’s only applied at the start of the next billing cycle. - The new product must share the subscription’s currency and must either both be seat-based or both not be — you can’t switch a flat subscription to a seat-based product or vice versa.
- You can’t change the plan on a trialing subscription or on one that’s already canceled or scheduled to cancel. End the trial or uncancel first.
- Custom-priced products (pay-what-you-want) aren’t valid destinations for a plan change.
Change the number of seats
For seat-based subscriptions, update how many seats the customer is paying for. Like plan changes, when the seat count actually takes effect depends on the proration behavior: immediate withinvoice or prorate, scheduled for the next cycle with next_period.
cURL
Apply or change a discount
Attach a discount to an active subscription, or remove the current one by passingnull. The change is applied to the next billing cycle — it doesn’t retroactively re-bill the current period.
cURL
Manage the trial
You can add, extend, or end a trial on any subscription:- Add or extend a trial by setting
trial_endto a future date. If the subscription is currently active, its status switches totrialingand the next charge is postponed to the new date. - End a trial immediately by setting
trial_endto"now". The subscription becomesactiveand a new billing cycle — and charge — starts on the spot.
cURL
Reschedule the next renewal
If you need to move a subscription’s renewal date — for example, to align several subscriptions on the same day, or to extend the current period as a goodwill gesture — you can set a newcurrent_billing_period_end. The new date has to be in the future, and this operation isn’t available on canceled subscriptions.
cURL
Cancel or revoke
Polar distinguishes between canceling and revoking a subscription. Both end the customer’s access eventually — the difference is when.Cancel at period end
Calling cancel (or toggling “Cancel at period end” in the dashboard) setscancel_at_period_end = true and schedules the subscription to end on its current_period_end. Until then:
- The subscription stays active and the customer keeps their benefits — they paid for that period.
- No further orders are generated after the current one.
- You can uncancel at any time before the end date, which reverts the scheduled cancellation.
cURL
too_expensive, missing_features, switched_service, unused, customer_service, low_quality, too_complex, and other.
Only set the cancellation reason and comment when they actually come from
the customer (for example, from a cancellation survey or a support
conversation). Customers can see their
customer_cancellation_comment in
their purchase history, so don’t put internal notes there.Revoke immediately
Revoking ends the subscription right now: status moves tocanceled, ended_at is set to the current time, and all benefits are revoked. There’s no refund — if you need to issue one, do it separately from Refunds.
Use this when access needs to stop immediately — a terms-of-service violation, a chargeback, or an explicit customer request.
cURL
Uncancel
If a subscription is set to cancel at period end and hasn’t ended yet, you (or the customer) can reverse the decision. Thecancel_at_period_end flag is cleared, ends_at and canceled_at are unset, and the subscription goes back to renewing normally.
cURL
What customers can do
The Customer Portal exposes a subset of these actions to the customer, gated by your portal settings:- Cancel at period end is always available — this is the self-service guarantee the portal provides.
- Update the default payment method is always available — the primary way customers recover from a failed renewal.
- Change plan is available when Enable subscription plan changes is on.
- Change seats (for seat-based subscriptions) is available when Enable subscription seat management is on.

