Billing & Subscriptions
Billing is per team, managed by users with Manage Billing (Owner/Admin by default).
Billing profile
Stored on the team for tax and invoicing:
- Customer type: Individual or Business
- Country / tax jurisdiction (ISO country)
- Company legal name (required for business)
- VAT / tax ID (optional)
Edit from:
- Team Settings → Billing → Edit billing details (modal)
- Change Plan (if not yet saved)
- Create Team flow for first-time paid checkout
Used for EU VAT estimates, quote PDFs, and Stripe Tax at checkout.
Subscribe or change plan
Route: /teams/:teamId/_change-plan/
- Review current plan and seats
- Pick Monthly or Annual (−20%)
- Select target plan card
- Adjust seats slider (Pro/Business)
- Confirm billing profile if missing
- Confirm & Update Plan → Stripe payment when upgrading to paid
- End Subscription to return to Free (with warning)
If billing profile is already complete, Change Plan skips the form and uses stored details.
Stripe customer portal
Team Settings → Billing → Manage Subscription opens Stripe’s portal to:
- Update payment methods
- Cancel subscription (alternative path to downgrade)
Invoices
Listed under Team Settings → Billing:
- View Invoice — hosted invoice page
- Download PDF
- Status badges: Paid, Open, Void, etc.
Webhooks & sync
Successful payment updates team plan and seat count automatically. Cancellation reverts team to Free with 3 seats.
Tax behaviour
- Individuals: quotes may show Bulgarian VAT estimate (20%); Stripe finalises at checkout.
- Businesses: tax depends on country and VAT ID; Stripe Tax calculates at payment.