Stripe full integration: Checkout, Customer Portal, plan webhooks
Wire the existing /app/{org}/{project}/settings/billing placeholder to real Stripe. Create a Stripe customer per organization, surface plan options (Free/Starter/Pro/Enterprise - already in OrgPlan enum), redirect to Stripe Checkout for upgrades, link the Stripe Customer Portal for invoice history and payment-method updates. Webhook handler at /api/integrations/stripe/webhook (signature-verified) updates organizations.plan and a new org_billing table (stripe_customer_id, stripe_subscription_id, current_period_end, cancel_at_period_end, status).
Plan-gating helper exposed via lib/billing/can(orgId, capability) so feature pages can short-circuit when the plan is too low. Stripe Test mode wired to env vars; one-click swap to live. Out of scope: usage meters and per-call billing (separate card if/when needed), tax/VAT handling beyond Stripe Tax automatic, refund automation. Reference twilio-iam-auth-setup pattern for credential management.
Comments (0)
No comments yet.
Sign in to leave a comment.