Documentation Subscription System
Subscription System
The SprintKit includes a comprehensive subscription management system built on top of Stripe, providing flexible billing, plan management, and organization-level subscriptions.
Overview
The subscription system is designed around organization-based subscriptions, where each organization can have its own subscription plan. This enables multi-tenant SaaS applications where different organizations can subscribe to different tiers of service.
Key Features
- Multi-tier subscription plans with monthly and annual billing
- Stripe integration for secure payment processing
- Organization-scoped subscriptions for multi-tenancy
- Flexible plan configuration with customizable limits and features
- Trial periods and promotional pricing support
- Webhook-driven subscription lifecycle management
- Permission-based access control for subscription management
- Comprehensive API for subscription operations
Architecture
The subscription system consists of several key components:
Database Schema
subscription_plans
- Global subscription plan definitionssubscription
- Individual subscription instances linked to organizations- Stripe integration - External payment processing and subscription management
Core Services
subscriptionService
- Core business logic for subscription operationsstripeService
- Stripe API integration and webhook handling- Permission system - Access control for subscription operations
API Endpoints
The system provides REST APIs for:
- Creating and managing subscription plans
- Organization subscription management
- Stripe checkout session creation
- Billing portal access
- Webhook event processing
Subscription Plans
Subscription plans define the available tiers of service with:
- Plan identification (name, display name, description)
- Pricing structure (monthly/annual rates)
- Feature lists (what's included in each plan)
- Usage limits (seats, storage, API calls, projects)
- Trial periods and promotional flags
- Stripe price IDs for payment processing
Default Plans
The system comes with three pre-configured plans:
- Starter - Basic plan for small teams
- Pro - Advanced plan for growing businesses (marked as popular)
- Enterprise - Full-featured plan for large organizations
Subscription Lifecycle
- Plan Selection - User chooses a subscription plan
- Checkout - Stripe checkout session creation
- Payment - Stripe processes payment
- Webhook Processing - System receives Stripe events
- Subscription Activation - Database updated with subscription details
- Ongoing Management - Renewals, upgrades, cancellations
Integration Points
Stripe Integration
- Products and Prices - Stripe entities for billing
- Checkout Sessions - Secure payment collection
- Webhooks - Real-time subscription updates
- Customer Portal - Self-service billing management
Organization System
- Scoped Subscriptions - Each organization has its own subscription
- Permission Control - Role-based access to subscription features
- Usage Tracking - Monitor plan limits and usage
Next Steps
- Subscription Plans → - Learn about plan management
- Organization Subscriptions → - Managing organization-level subscriptions
- Stripe Integration → - Payment processing and webhooks
- API Reference → - Complete API documentation