Billing (Stripe)

SaaS subscription billing for tenants. The whole surface is inert until you enable Stripe and add keys — nothing charges anyone before then. Keys live in the PBX settings store; the secret key is never shown back here once saved.

Stripe configuration

Webhook endpoint to register in Stripe: https://voip.novaretelecom.com/api/stripe/webhook — events: checkout.session.completed, customer.subscription.*.

Plan → Stripe price IDs

Plan-limit enforcement (calls)

Controls whether per-tenant concurrent-call caps and suspended-tenant blocking apply to live calls. Default OFF. Set Log first to watch [PLAN-LIMIT:log] lines (“would block”) without affecting calls; only switch to Enforce after a live-call test, since it rejects calls with 486 Busy.

Self-service signup

Default OFF. When ON, a public signup that confirms its email (single-use link, 24h) auto-creates a trial tenant + starter extension and emails the client their credentials — no staff step. Leave OFF to keep every signup a manual review on the Signups page.

Tenants

#TenantPlanStatusExtsSubscriptionRenewsActions
“Checkout link” creates a Stripe-hosted subscription checkout for the tenant’s plan; “Portal” opens Stripe’s manage/cancel page (both need Stripe enabled + a price ID). “Suspend/Activate” gates the tenant’s calls when enforcement is on; “Trial” sets the trial end date.

Usage this month

Outbound calls + minutes per tenant — the foundation for overage billing once plan allowances and Stripe are live.
TenantPlanCallsMinutes

Plan pricing

Set the monthly price, included minutes, and per-minute overage for each plan. Drives the statements below; once Stripe is live these feed real invoices.
PlanMonthly $Included minOverage ¢/minActive

Statements

Current-month charge per tenant = plan price + overage on minutes beyond the plan allowance. Past months auto-save on the 1st; you can also save the current month now.
TenantPlanMinutesOverage minPlan $Overage $Total $

Saved statement history

MonthTenantPlanMinutesTotal $Generated

Welcome email

Send yourself a sample of the client welcome email (dummy credentials) to review the template before enabling client sends on the Signups page.