Create subscription
web.api
Creates a Stripe subscription for the tutor. Supports trial periods.
Handler: SubscriptionService::subscribe()
Get billing portal
auth:api
Returns Stripe Customer Portal URLs for self-service management:
Subscription webhook
StripeService::handleSubscriptionWebhook()
Validates webhook signature using STRIPE_SUBSCRIPTION_SIGNING_SECRET. Updates subscription status in the database.
Subscription statuses
Checked via
Subscription::isValid() — returns true for trialing or active.
Subscription products
Defined insubscription_products table: