Plans & Tier Switching
Plans & Tier Switching
Voicebip workspaces run on one of three tiered plans or in PAYG mode. You can switch tiers in the middle of a billing period — the platform refunds your unused base, charges the new tier’s prorated base, and carries unused quota forward.
Live rates are admin-managed; the /v1/workspace/subscription endpoint returns whatever your workspace is currently subscribed to.
Get Your Active Subscription
Response — 200 OK
Switch Tiers
Response — 200 OK
Proration Math
Net charge = (new tier base × days remaining ÷ period days) − (old tier base × days remaining ÷ period days).
A net_minor > 0 means a debit was taken from your balance; net_minor < 0 means a credit was issued. Both are recorded in the recurring_charges ledger and visible on the usage dashboard.
Quota Carryover
Unused voice minutes, SMS, and WhatsApp conversations from the old tier are preserved when you switch. The new tier’s included quotas are prorated by days_remaining / period_days — not granted in full — so oscillating between tiers within one period cannot farm free quota. At the next anniversary the new tier’s full monthly quota seeds.
Errors
Idempotency
Tier-switch PATCHes are idempotent. If your client retries the same PATCH after a network timeout, the platform either:
- Returns
NO_OPif the first attempt completed successfully, or - Replays the first attempt’s response (same
prorationpayload) if the retry races the original.
You will not be double-billed. The underlying guarantee is a unique index on (workspace_id, charge_type, period_start, proration_note) in the recurring_charges ledger — a duplicate insert raises a constraint violation that the handler silently absorbs, preventing double-debits on retried requests.
Cooldown
After a successful tier change, the next PATCH is rejected with 429 TIER_SWITCH_TOO_FREQUENT for 24 hours. This is enforced server-side via subscriptions.last_tier_switch_at. The 24-hour window starts at the moment the transition committed, not at the moment of the next request.
If you need to switch tiers more often than once a day — e.g. during a controlled migration window — contact support and we can clear the cooldown manually.
What Tier-Switching Does Not Do
- It does not change your API keys, agents, or numbers.
- It does not change your data residency or NDPR posture.
- It does not cancel a subscription. To stop being billed at a tier, switch to
starterand the next anniversary will not auto-charge. Hard cancellation is not self-serve today — contact support. - It does not affect in-flight calls or messages — they bill at the rate active when the usage event was published.
Webhook Events
Tier switches do not emit a developer-facing webhook today. The internal billing.charged and billing.pricing.updated subjects fire but are not delivered. To detect a tier change in your application, poll GET /v1/workspace/subscription or watch the dashboard’s audit feed.