How to upgrade, downgrade, or cancel your plan
Plan changes flow through one screen — Settings → Billing. The mechanics differ depending on whether you’re going up, down, or all the way to Free. This guide covers all three plus how to back out of a scheduled change.
Upgrading (Free → paid, paid → higher paid)
Section titled “Upgrading (Free → paid, paid → higher paid)”-
Pick a plan
Open Settings → Billing, find the tier you want, and click its Upgrade button. Toggle the Monthly / Annual selector first if you care which one you’re committing to.
-
Review the preview
The preview screen shows the dollar amount and confirms the new tier. Upgrades don’t have a downgrade-style impact summary — nothing gets paused on an upgrade.
-
Pay
In production, a real Stripe Checkout session opens — enter card details, complete the payment. In dev / staging (
PAYMENT_PROVIDER=dev), a “Mock Stripe Checkout” dialog appears with the amount and target plan; click Pay to simulate. Either way, the new tier applies immediately on success. -
Verify the change
The page refreshes with your new tier badge. Quotas, seat caps, schedule caps — all the new tier’s limits are live straight away.
Upgrades take effect immediately. There’s no scheduled-effective delay on going up.
Downgrading (paid → lower paid)
Section titled “Downgrading (paid → lower paid)”Downgrades surface a preview of what the new tier breaks in your current setup. You see this before committing.
-
Pick the lower tier and click its plan card
A “Downgrade” preview screen opens.
-
Read the impact summary
Marriska computes how many of your current resources would exceed the target tier’s caps and shows them. The categories:
- Schedules that would be paused
- API keys that would be revoked
- Agents that would be revoked
- Notification contacts that would be deactivated
- Seats that would put you over the limit
- BYOK disabled (if the target tier doesn’t include BYOK)
- History retention shrinking from N days to M days
-
Resolve seat compliance first if needed
If your seat count exceeds the target tier’s cap, the API rejects the change with a 409 and a message naming the count. Remove members under Inviting team members until you’re within the new cap, then try again.
-
Confirm
Click through to schedule the downgrade. A pending plan-change record is created and the change applies after a short delay (
scheduled_effective_at).
When the change applies:
- Schedules over the new cap are paused (not deleted) — they sit inactive on your Schedules page until you re-enable them after a future upgrade.
- API keys over the new cap are revoked — any in-flight runs finish, but the keys won’t authenticate again.
- Your tier badge updates and the new caps take effect.
The plan-change history under Billing lists every past change with timestamps.
Canceling (any paid → Free)
Section titled “Canceling (any paid → Free)”Going to Free is a downgrade with kind = "cancel". The same impact
preview shows what gets paused or revoked, plus:
- BYOK stays available (Free includes BYOK in the catalog).
- All paid features (priority queue, shared projects, SSO if you had Team) turn off.
Click through the preview the same way as a downgrade. The change is scheduled and applies after the same stub delay.
Canceling a scheduled change
Section titled “Canceling a scheduled change”If you scheduled a downgrade or cancel and changed your mind, open Settings → Billing. Pending changes show with a “Cancel scheduled change” action.
-
Open the scheduled change row
Anything that hasn’t applied yet shows a “scheduled to apply” line with the effective time.
-
Click cancel
The pending plan-change record is marked canceled. Your current tier sticks. You can schedule a different change at any time — only one pending change exists per org at a time, so a new one automatically supersedes any previous pending request.
What can’t be done through this flow
Section titled “What can’t be done through this flow”- Enterprise: not purchasable through the in-app flow. Click Contact Us on the Enterprise card.
- Switching billing cycle (monthly ↔ annual) without changing tier: not yet supported as its own action; the cycle is part of an upgrade transaction.
- Refunds / pro-rating: handled outside this flow until real Stripe lands.
Related
Section titled “Related”- Plan tier limits — what each tier includes (the source the impact preview reads)
- Inviting team members — needed for seat-compliance fixes before a downgrade
- Plan philosophy — why we cap things the way we do