Upgrades and downgrades
Change plans without falling through to the wrong tier.
Free to paid
Builder or Pro starts secure Stripe Checkout with the selected plan. The Console confirms the payment and entitlement before showing the new plan as active.
Paid to paid
Builder to Pro and Pro to Builder change the existing subscription. The confirmation shows when the change takes effect and how included credits are affected.
Pro to Builder must resolve to Builder. It must never call the paid-to-Free downgrade route.
Paid to Free
Free is a separate cancellation action. The current paid plan stays active through the date shown in confirmation. If that date cannot be loaded, Clawdbase disables the final action and asks you to retry or contact support.
Return synchronization
The Console polls only for a bounded period, invalidates profile and usage queries after confirmation, and shows a persistent actionable error if fulfillment cannot be verified. "Your plan will update momentarily" is not a terminal success state.
Paid-to-paid request
/api/stripe/clawdbase-plan-change{
"plan": "builder"
}Only builder and pro are valid targets. Free remains a separate end-of-period cancellation action.
Cancellation request
/api/stripe/clawdbase-downgradeThis endpoint means paid-to-Free cancellation. With a live subscription it sets cancel_at_period_end and leaves the paid plan active until Stripe confirms deletion/end of period. The interface must say when access ends rather than immediately highlighting Free.
Upgrade and downgrade states
| Transition | Mechanism | Confirmed UI state |
|---|---|---|
| Free to Builder/Pro | Checkout | Returned profile is target plan and active/trialing |
| Builder to Pro | Subscription item update | Plan is Pro and credits are synchronized |
| Pro to Builder | Subscription item update | Plan is Builder, never Free |
| Paid to Free | End-of-period cancellation | Current paid plan plus cancellation date |
Recovery
An unchanged-plan response is a successful no-op. If Billing cannot confirm the customer, subscription or effective date, the existing plan remains visible and no change is scheduled. Retry once, then contact support without sending card information.