- Dashboard
- API
To perform an upgrade or a downgrade through the user interface:
- Access the “Customers” section via the side menu;
- Select a customer from the list;
- In the “Overview” tab, click the ellipsis icon and select “Upgrade/downgrade plan”;
- Give a name to the new subscription (name that will be displayed on the invoice - optional);
- Provide a new subscription end date if needed (optional);
- Click “Upgrade/downgrade plan” to confirm.
Upgrades behavior
To compare two plans with different intervals, Lago converts each subscription fee into a yearly amount: a monthly fee is multiplied by 12, a quarterly fee by 4, a semiannual fee by 2, and a weekly fee by 52. An upgrade occurs when the yearly amount of the new plan equals or exceeds the yearly amount of the previous plan, regardless of the pricing for usage-based charges. When a subscription is upgraded, Lago immediately applies the new plan to the customer.Subscription paid in advance
Lago issues a credit note for the unused days remaining on the former plan.Subscription paid in arrears
When a plan is upgraded mid-cycle, Lago immediately generates an invoice covering the prorated portion of the old plan (i.e., the days used before the upgrade). At the end of the billing period, a second invoice is issued for the prorated portion of the new plan (i.e., the days used after the upgrade). Example: A customer subscribes to Plan A (€100/month, paid in arrears, calendar billing) on January 1st, then upgrades to Plan B (€200/month) on January 15th.- January 15th: invoice for Plan A, 14 days prorated = €45.16 (14/31 × €100)
- January 31st: invoice for Plan B, 17 days prorated = €109.68 (17/31 × €200)
Downgrades behavior
A downgrade occurs when the yearly amount of the new plan is lower than the yearly amount of the previous plan, regardless of the pricing for usage-based charges. When a subscription is downgraded, the new plan is applied at the end of the current billing period, so that your customer fully benefits from the plan they have already paid for. Until then, the new plan stays in thepending state.
Webhook messages for upgrades and downgrades
When a subscription is upgraded or downgraded:- A
subscription.terminatedwebhook message is triggered for the initial plan, with anext_plan_codedefined in the payload; - A
subscription.startedwebhook message is triggered for the new plan, with aprevious_plan_codedefined in the payload; - The
subscription.external_idis persisted between the two to ensure the continuity of the subscription.