Design a subscriptions integration
Learn about the configuration options for a subscriptions integration.
Use this guide to learn the different ways to build your subscriptions integration and follow the links to in-depth, step-by-step guides. You’ll need to consider the following:
- How you want to charge customers
- How you want your customers to provide their payment information
- When you want customers to pay for the subscription
Before starting your integration in a sandbox environment, you must create a Stripe account or log in.
Decide how you want to charge customers
Compare the following pricing models and determine how you want to charge your customers for the subscription to your product or service.
Pricing model | Description | Example | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Flat rate | Charge customers a flat rate for the service tier they choose. | You offer three different service levels: basic, starter and enterprise. For each service level, you specify a monthly and yearly price. ![]() | |||||||||||||||
Per-seat | Charge customers for each pricing unit, which represents one user or seat. | You offer a per-seat plan for software licences. For each user, you charge a specific amount for their licence. ![]() | |||||||||||||||
Tiered | Charge customers a varied amount for each pricing unit, based on quantity (volume-based) or usage (graduated):
| You offer lower rates for customers who use more projects per month, using tiers that you can adjust based on volume or graduated pricing.
| |||||||||||||||
Usage-based | Charge customers based on their usage of your product or service:
| You charge a flat rate per month for your service that includes a set number of tokens. You charge any usage above the included tokens at an additional rate per token.
|
Decide how customers check out
Compare the following checkout interfaces and determine how you want your customers to provide their payment information for the subscription to your product or service.
Interface | Description | Example |
---|---|---|
Stripe-hosted page | Use a payment page that’s prebuilt and hosted by Stripe. Benefits:
UI customisation:
| ![]() |
Embedded payment form | Embed a payment form that’s prebuilt and hosted by Stripe directly into your site. Benefits:
UI customisation:
| ![]() |
Custom payment form | Build a custom payment form using UI components that you can integrate on your website. Benefits:
UI customisation: Customise the look and feel of the payment form with the Appearance API. | ![]() |
Pricing table | Embed a pricing table on your website to show customers pricing information for subscriptions. Benefits:
UI customisation: Customise the button layout, text and appearance. | ![]() |
One-click payment button | Accept payments through one-click payment buttons for various payment methods. Benefits:
UI customisation: Customise the button layout, text and appearance. | ![]() |
Payment Link | Create a payment link that you can share directly with customers. When customers click the payment link, they’re redirected to a Stripe-hosted payment page. Benefits:
UI customisation:
| ![]() |
Mobile app | Use a payment form that’s prebuilt and hosted by Stripe in your mobile app. Benefits:
UI customisation: Customise the look and feel of the payment form with the Appearance API. | ![]() |
Decide when you want customers to pay
Compare the following models and determine when you want your customers to pay for the subscription to your product or service.
Billing model | Description | Example |
---|---|---|
Pay upfront | Require that your customers pay before you provide access to your product or service. A typical flow looks like this:
| |
Free trial | Offer your customers a free trial period for your product or service before billing them. A typical flow looks like this:
| |
Freemium | Allow customers access to your product or service without requesting payment information. A typical flow looks like this:
|
Build your subscriptions integration
Use case | Instructions |
---|---|
You want to offer a free trial period for your subscription. You’ll use either a Stripe-hosted page, a Stripe-hosted payment form that’s embedded in your checkout flow or your custom payment form to start the free trial and collect a payment method to use after the trial ends. | Start a free trial period using a Stripe-hosted page, an embedded payment form or a custom payment form |
You want to charge customers based on their usage of your product or service. You’ll collect payment information using either a Stripe-hosted page, a Stripe-hosted payment form that’s embedded in your checkout flow, your custom payment form or a payment form in your mobile app. | Set up usage-based billing |
You want to display different subscription pricing levels in a pricing table that’s embedded on your website. You can offer a flat rate, per-seat or tiered pricing or a free trial. After choosing a pricing level, customers can provide their payment information in a prebuilt payment form. | Create and embed a pricing table on your website |
You want to sell subscriptions for a flat rate and collect payment information using a payment link that you share with your customers. The payment link redirects to a Stripe-hosted payment page.1 | Create your subscription and then create a payment link for your subscription |
You want to sell subscriptions for a flat rate. You’ll collect payment information using a custom payment form that’s embedded in your mobile app. | Create a payment form to embed in your iOS app or Android app |
You want to sell subscriptions for a flat rate. You’ll collect payment information using one-click payment buttons on either a Stripe-hosted payment page, a Stripe-hosted payment form that’s embedded in your checkout flow or your custom payment form. | Create your subscription and then add one-click payment buttons to your checkout flow |
1Payment links aren’t supported for usage-based billing.