Upgrades
Upgrades happen when you attach a plan with a higher price than the customer’s current plan. Usebilling.attach — Autumn handles the rest.
Pricing behavior:
- Fixed prices are prorated based on time remaining in the billing period
- Usage-based prices bill outstanding usage at the old rate immediately, then apply the new rate going forward
Downgrades
Downgrades happen when you attach a plan with a lower price. Unlike upgrades, downgrades are scheduled to take effect at the end of the current billing period. The new plan will have statusscheduled until it activates. Customers can cancel a scheduled downgrade by re-attaching their current plan.
If you’ve set a
group when creating plans, upgrades and downgrades only apply between plans in the same group. Attaching a plan from a different group adds it alongside the existing plan.Cancellations
Cancel a subscription usingbilling.update with the cancelAction parameter. By default, cancellations take effect at the end of the billing period.
Cancel at end of billing period
is_default set), it will be activated after the cancellation takes effect.
Cancel immediately
To cancel a subscription right away with a prorated refund:Uncanceling
If a subscription was scheduled for cancellation (viacancel_end_of_cycle), you can reverse it before the period ends using uncancel:
You cannot uncancel a subscription that was already canceled immediately — only pending cancellations (scheduled for end of cycle) can be reversed.
Canceling a scheduled plan change
When a downgrade or other plan change is scheduled for the end of the billing period, canceling it works the same way as uncanceling. Callbilling.update with cancelAction: "uncancel" on the customer’s active plan:
cancel_action reference
| Value | Behavior |
|---|---|
cancel_end_of_cycle | Schedules cancellation at the end of the current billing period. Subscription stays active until then. |
cancel_immediately | Cancels immediately with a prorated refund for remaining time. |
uncancel | Reverses a pending cancellation or removes a scheduled plan change. |
Usage reset behavior
When a new plan is enabled, you can control what happens to existing feature usage with thereset_usage_when_enabled property on the plan item:
true: Usage resets to 0 (typical for consumable features like credits)false: Usage carries over to the new plan (typical for continuous features like seats)
Example: A customer on Free has used 20 of their 100 credits. They upgrade to Pro which includes 500 credits.
- If
reset_usage_when_enabled = true: They get 500 credits - If
reset_usage_when_enabled = false: They get 480 credits (500 - 20 used)

