Plan checkout and billing portal
Users whose effective role permissions include billing.manage can open Billing.
Upgrade
Select Upgrade, choose an eligible higher public plan, and choose monthly or annual billing when checkout is available. Plans without checkout show Checkout unavailable.
Stripe checkout opens in a new tab. Billing displays Waiting for payment confirmation, polls every five seconds, and normally updates the plan after the webhook arrives. Use Check now if needed. A pending indicator can remain for about ten minutes; keep the Stripe receipt if confirmation is delayed.
Update card and downgrade
Update card and a downgrade from the plan picker both request a Stripe Billing Portal session with POST /v1/billing/portal-session and open the URL Stripe returns. The dashboard does not read a NEXT_PUBLIC_BILLING_PORTAL_URL value. If the portal cannot be opened, Billing shows Unable to open billing portal.
Use the Stripe portal for the card on file and for moving to a lower plan. See Plans and pricing and Payment methods.
Frequently asked questions
Why can’t I select a lower plan in checkout?
Checkout lists eligible higher public tiers. Choosing a lower plan opens the Stripe Billing Portal instead.
How long does plan confirmation take after Stripe checkout?
Billing polls every five seconds and usually updates after the payment webhook arrives. The pending indicator can remain for about ten minutes; use Check now and keep the Stripe receipt if delayed.
Why did Update card fail?
The button asks AtomicPlayer for a portal session. If Stripe cannot start one, you see Unable to open billing portal.