Skip to main content

The lifecycle actions

Once a subscription is live, you manage it through lifecycle actions: change the plan (upgrade/downgrade, with a proration preview first), pause it, resume it, and eventually cancel it. Each SDK exposes these as subscription-level operations.
All proration amounts are integers in minor units. A plan change previews a net credit/charge before you commit it.
1

Construct a client

2

Preview a plan change (proration)

Preview the proration for switching to a new plan before committing. Nothing is charged or persisted — you get back the credit for unused time, the charge for the new plan, the net, and whether it’s an upgrade.
previewChange was added to the Node SDK — make sure you’re on a release that includes it (published after v1.5.0). All three SDKs now expose the preview.
3

Apply the plan change

Committing the change updates the subscription to the new plan and prorates per the preview.
4

Pause the subscription

Pausing halts billing without cancelling. The subscription can be resumed later.
5

Resume the subscription

Resume a paused subscription to restart billing on its schedule.
6

Cancel the subscription

Cancellation defaults to period end (the customer keeps access until the current period closes). Pass immediately: true to cancel now. A reason is recorded; Python takes it as an enum.
A canceled subscription can often be brought back with recurso.subscriptions.reactivate(id) (Node) / client.Subscriptions.Reactivate(ctx, id) (Go) / reactivate_subscription.sync(id=..., client=client) (Python), subject to its current status.