Intermediate
How to configure subscription plans on Stripe
Quick Answer
Configure subscription plans on Stripe by creating products, setting up pricing plans with billing intervals, and defining subscription parameters. You'll need to navigate to the Products section in your Stripe Dashboard and configure pricing, trial periods, and billing cycles.
Prerequisites
- Active Stripe account
- Business verification completed
- Understanding of subscription billing models
- Product or service to offer as subscription
1
Access the Products section in Stripe Dashboard
Log into your Stripe Dashboard and navigate to Products in the left sidebar. Click + Add product to create a new subscription offering. This is where you'll define what customers are subscribing to.
Tip
Organize your products logically as they'll appear in your billing system and customer invoices.
2
Create your subscription product
Fill in the product details:
- Enter a Name (e.g., "Premium Plan")
- Add a Description explaining the subscription benefits
- Upload a product Image if desired
- Set the Statement descriptor (appears on customer's credit card statement)
Tip
Use clear, descriptive names that customers will easily recognize on their billing statements.
3
Configure pricing for your subscription plan
In the Pricing section, click Add pricing. Configure:
- Pricing model: Select "Standard pricing" for fixed amounts
- Price: Enter your subscription amount
- Billing period: Choose from Monthly, Yearly, Weekly, or custom intervals
- Currency: Select your preferred currency
Tip
Consider offering both monthly and annual plans with a discount for yearly subscriptions to improve retention.
4
Set up trial periods and billing options
Under Advanced settings, configure:
- Trial period: Set trial duration in days (e.g., 7, 14, 30 days)
- Usage type: Choose "Licensed" for seat-based billing or "Metered" for usage-based
- Billing cycle anchor: Set when billing cycles should start
Tip
Free trials can significantly increase conversion rates, but monitor for potential abuse from fraudulent accounts.
5
Configure subscription behavior and limits
In the Subscription settings, define:
- Invoice collection method: Choose automatic or manual collection
- Default payment behavior: Set how failed payments are handled
- Subscription limits: Set maximum number of subscriptions per customer if needed
Tip
Set up smart retry logic for failed payments to recover more revenue without annoying customers.
6
Set up webhooks for subscription events
Navigate to Developers > Webhooks and click Add endpoint. Add your server URL and select relevant events:
customer.subscription.createdcustomer.subscription.updatedinvoice.payment_succeededinvoice.payment_failed
Tip
Always verify webhook signatures in your code to ensure events are actually from Stripe.
7
Test your subscription configuration
Switch to Test mode using the toggle in the left sidebar. Create a test subscription using Stripe's test card numbers:
- Use card
4242 4242 4242 4242for successful payments - Use card
4000 0000 0000 0002to test declined payments
Tip
Test various scenarios including trial expirations, payment failures, and plan changes before going live.
8
Activate your subscription plans
Once testing is complete, toggle back to Live mode. Your subscription plans are now active and ready for customers. Monitor the Subscriptions section in your dashboard to track:
- Active subscriptions
- Monthly recurring revenue (MRR)
- Churn rates
- Failed payment recovery
Tip
Set up email alerts for important subscription events like high-value cancellations or payment failures.
Troubleshooting
Customers can't complete subscription signup
Check that your pricing is active in live mode, verify webhook endpoints are responding correctly, and ensure your payment form is using live publishable keys. Test the complete flow in test mode first.
Trial periods not working as expected
Verify the trial period is set at the subscription level, not just the price level. Check that
trial_period_days is correctly configured in your API calls or Checkout sessions.Webhooks not firing for subscription events
Ensure your webhook endpoint URL is publicly accessible and returns a 200 status code. Check the webhook logs in your Stripe Dashboard for delivery failures and retry attempts.
Proration calculations seem incorrect
Review your proration behavior settings in the subscription configuration. Stripe prorates based on the billing cycle anchor and upgrade/downgrade timing. Check the Invoice section for detailed proration line items.
Ready to get started with Stripe?
Put this tutorial into practice. Visit Stripe and follow the steps above.
Visit Stripe →