Manage subscription
Upgrade, downgrade, cancel, update card.
Upgrade to a higher plan
Done via `/api/subscription/upgrade` with `{ configId, plan, billingCycle }`. Stripe computes a prorated amount for the rest of the current month, message limit jumps immediately. Next charge is at the full new-plan price.
If the card needs 3D Secure verification, the response returns `requiresAction` + `clientSecret` and the UI walks you through it. If the card is declined — `CARD_DECLINED` (HTTP 402).
Downgrade — not supported via API
Downgrading to a lower plan isn't allowed self-serve through the API — the request is rejected. The reason: we need to check whether you have active bookings that would exceed the new limit. If you want to downgrade — email <a href="mailto:ai@raiceptionist.com">ai@raiceptionist.com</a>.
End trial early
If you want to switch to a full plan immediately without waiting for day 3 — `/api/subscription/end-trial-now`. Stripe charges the card right away, the limit jumps from 250 to the plan's full quota. Useful when you blew through 250 on day 1 and don't want to wait.
Add-on: +500 messages for €19
If you hit the limit mid-cycle — `/api/addon/purchase` creates a Stripe one-time payment session for €19. The add-on is added to `addon_replies_this_cycle` in the database and applies until the end of the current billing cycle. After payment — redirect to `/dashboard?addon=success`.
Cancellation and card update
For now cancellation and card updates happen via the Stripe customer portal — email <a href="mailto:ai@raiceptionist.com">ai@raiceptionist.com</a> and we send you a link to your portal. After cancellation the bot stays active until the end of the current cycle, then status becomes "cancelled". A self-serve customer portal in the dashboard is on the roadmap.