Recurring payments
Understand your options for charging customers on a recurring basis.
Stripe offers several ways to charge customers on a recurring basis. This guide helps you understand which method or approach best supports your business.
This guide offers a few ways to understand your options:
- Use cases: Find the right use case for your business.
- Types of recurring payments: See all the recurring payment types that Stripe supports.
- Stripe products: Check which Stripe products support your recurring payment use case.
Use cases 
Types of recurring payments 
The following tabs describe the different types of recurring payments that Stripe supports.
Stripe products for recurring payments 
The following table describes which Stripe products support recurring payments.
Product | Features | Use cases |
---|---|---|
Payment Links |
| |
Invoicing |
| |
Subscriptions |
| |
Checkout |
| |
Elements |
| |
API |
|
Accept recurring payments 
Stripe offers several ways for you to accept recurring payments. Use Subscriptions with Stripe Billing, PaymentIntents, SetupIntents, or Invoicing.
Use subscriptions to accept recurring payments
If you have a business model where your customers pay you on a regular basis, you typically want to offer them subscriptions. Stripe offers several ways to create and manage subscriptions.
If you use Organizations, you can view a list of your subscriptions across all of your accounts. You can also filter this list by account. However, you can create and analyze subscriptions only from the Subscriptions page at the account level.
Note
Subscriptions are part of Stripe Billing, which has its own pricing plan.
Create subscriptions from the Dashboard 
To create a subscription:
In the Stripe Dashboard, go to the subscriptions page.
Click +Create subscription.
Find or add a customer.
Enter the pricing and product information. You can add multiple products.
Set the start and end date of the subscription.
Set the starting date for the billing cycle. This defines when the next invoice is generated. Depending on your settings, the saved payment method on file might also be charged automatically on the billing cycle date. Learn more about the billing cycle date.
(Recommended) Configure email reminders and notifications for subscribers.
(Optional) Add the default tax behavior, a coupon, a free trial, or metadata.
(Optional) Enable revenue recovery features in the Dashboard, which can help you reduce and recover failed subscription payments. You can automatically retry failed payments, build custom automations, configure customer emails, and so on.
Create subscriptions with Payment Links 
To create subscriptions with Payment Links, select Sell a subscription when you create the payment link. Then, share the link with your customers. Learn more about creating and sharing payment links.
Create subscriptions with Checkout 
If you’re using Checkout as your payment UI, create subscriptions with the Checkout Sessions API. In typical integrations, you add a button to your site that calls the backend of your application to create the checkout session. Read the subscriptions integration guide to learn more.
After a payment succeeds, the subscription becomes active and the Checkout Session object contains references to the Customer and Subscription objects.
To create a subscription with this API, pass mode=subscription
:
Create subscriptions with Elements 
If you’re using Elements as your payment UI, create subscriptions with the Subscriptions API.
Pass the selected price ID and the ID of the customer record to the backend. Then, on the backend, create the subscription with status incomplete
using payment_
. Then return the client_
from the subscription’s first PaymentIntent to the frontend to complete payment. Learn how to build a subscriptions integration with Elements.
At this point, the subscription is inactive
and awaiting payment. In the following example response, the minimum fields you must store are highlighted. We recommend that you also store any field that your application frequently accesses.
{ "id": "sub_JgRjFjhKbtD2qz", "object": "subscription", "application_fee_percent": null, "automatic_tax": { "disabled_reason": null, "enabled": false, "liability": "null" }, "billing_cycle_anchor": 1623873347,
Create subscriptions through the Subscriptions API 
Use the Subscriptions API to create basic subscriptions for recurring prices. Learn how to build an end-to-end subscriptions integration or use the immersive quickstart.
Here’s how to create a subscription where the initial payment also includes a one-time purchase (like a service fee):
Create subscriptions with the Subscription Schedules API
For more complex subscription scenarios, use the Subscription Schedules API. Learn more about subscription schedules and their use cases.
Here’s how to create a recurring subscription:
Save and reuse payment information for recurring charges
Set up recurring payments by charging a customer’s saved payment information. Capture the payment details with a PaymentIntent or SetupIntent. Then use the client secret associated with those objects to charge the customer later. This approach is good if you don’t want to use Subscriptions or have implemented your own subscription logic. These steps only cover what’s needed to collect payment method information and to charge it. Read the guide for complete integration details to save and reuse payment details.
- Use PaymentIntents to capture payment information during a checkout flow. Charge the customer on-session for their immediate purchase, then charge them later. This flow is good for: charging customers for an initial payment in a series of recurring payments, or charging for a one-time setup fee for a subscription service.
- Use SetupIntents to capture payment information outside of a checkout flow. Collect the details from the customer and store them in a SetupIntent. This flow is good for: capturing payment information while you onboard a customer that you intend to charge later, or for setting up free trials.
Use invoices to automatically charge customers
You can use invoices to handle recurring payments. For example, the Powdur company has a monthly landscaping service. Each month, the landscapers send Powdur an invoice and automatically charge the payment method they have on file for Powdur.
The following sections describe your options for using invoices for recurring payments.
Create an invoice through the Dashboard
To create and send an invoice, complete the following steps:
In the Dashboard, go to the Invoices page, and click Create Invoice to open the invoice editor. Whenever you exit the invoice editor, Stripe saves a draft. (To delete a draft invoice, click the overflow menu () next to an invoice on the Invoices page.)
Select an existing customer or click Add new customer. For new customers, you have to enter a name. You can optionally add an email address or other details.
(Optional) Click the overflow menu () in the Items section to open the Items Options dialog. Choose the desired currency and tax rendering option for the invoice.
Select Add one-time item to create a single, one-time item. To save a product for future use, select Create new product.
Enter the Quantity and Price for your new item or product.
(Optional) Click the Item options under each item to add a tax rate, coupon, or supply date. You can also use the Dashboard to create a tax rate or coupon.
(Optional) Use the Memo box to provide more information to your customer. You can edit the memo on an invoice by clicking Edit memo on its details page.
Select one of the following invoice delivery options:
Automatically charge a payment method on file: Immediately charges the invoice amount to your customer’s payment method that you have on file.
Send invoice or payment page link manually: Provides a payment link for you to send to customers after you confirm the invoice.
Email invoice with link: Enables Stripe to send an email with a payment page and an invoice PDF.
Email invoice without link: Enables Stripe to send an invoice PDF only.
(Optional) To schedule this invoice to finalize automatically at some date in the future, select Schedule send date. Or, depending on what you selected in the previous step, Schedule charge date or Schedule finalization date.
(Optional) Expand Advanced options, and add custom fields. To learn more, see Net prices and taxes. Expand Advanced options, and add custom fields.
Click Review invoice and decide whether you want to include additional emails or continue editing. Send the invoice.
Create an invoice with the Dashboard
Create an invoice through the API
You can create an invoice through the Invoices API. You need to create product, price, and customer before you create the invoice because you specify those values for the invoice and invoice items. Read the guide to understand all the steps for integrating with the Invoicing API. Or see the quickstart for an immersive, code-first experience.
To create an invoice through the API, follow these steps:
Set the collection_method attribute to send_
. For Stripe to mark an invoice as past due, you must add the days_until_due parameter. When you send an invoice, Stripe emails the invoice to the customer with payment instructions.
Then, create an invoice item by passing in the customer id
, product price
, and invoice ID invoice
.
The maximum number of invoice items is 250.
If you set auto_
to false
, you can continue to modify the invoice until you finalize it. To finalize a draft invoice, use the Dashboard, send it to the customer, or pay it. You can also use the Finalize API:
Note
If you created the invoice in error, void it. You can also mark an invoice as uncollectible.
Schedule recurring invoices
If you want to set up a recurring invoice, create a subscription.
You can choose how to collect payment:
- Send an invoice to the customer. You can set the collection terms, including due date and accepted payment methods.
- Automatically charge a saved payment method. If the customer has a saved payment method, Stripe automatically charges that method.
In the Dashboard, you configure payment collection in the subscription editor. In the API, you configure payment collection with the collection_method parameter.
You can also configure Stripe to send customers reminder emails about unpaid recurring invoices.
Stripe automatically generates an invoice for each billing cycle in a subscription. Learn more about the invoice lifecycle for subscriptions.
Split purchases into a few payments 
Offer your customers payment plans in installments with Subscription Schedules API (part of Stripe Billing) or buy now, pay later methods. If your business is based in Mexico, you can offer card payments in installments.
Create an installment plan with Subscription Schedules
Installment plans allow customers to make partial payments for a set amount of time until the total amount is paid. For example, when The Pacific buys new printing presses, they sell the used ones to other publications. Smaller publications rarely have enough funds to pay for a printing press upfront, so they pay using an installment plan instead.
For most presses, The Pacific charges 1,000 USD per month so a reusable price is created:
Depending on the make, model, and age of the printing press, The Pacific charges different amounts. This example charges 1,000 USD each month for 6 months, for a total of 6,000 USD.
The number of iterations
is multiplied by the price’s interval—6 monthly payments in this example—to determine the number of times the customer is charged. end_
determines what happens to the subscription after the last iteration is complete. In an installment plan, the subscription isn’t needed anymore so end_
is set to cancel
.
In rare cases, The Pacific charges less than the usual 1,000 USD per month. In these scenarios, they use price_
to create a single-use price. This example creates a 500 USD price, and charges monthly for 6 months:
Use a buy now, pay later payment method
Stripe supports several different buy now, pay later methods. These methods let customers pay in installments over time. You’re paid immediately and in full. Your customers pay nothing or only a portion of the total purchase. Buy now, pay later methods help retailers boost conversion, increase average cart size, and reach new customers who don’t have credit cards.
Accept card payments in installments
If your business is based in Mexico, you can offer your customers installments for card payments, or meses sin intereses. Using this method adds an additional fee to the standard credit card transaction fee.
Accept installments with a Stripe-hosted checkout page (Stripe Checkout), prebuilt UI components (Stripe Elements), the Invoicing API, or through Payment Links with no code.
Some connectors and plugins also support installments.
Requirements for meses sin interes
There are restrictions on which transactions and cards can use meses sin intereses. You don’t need to implement these rules yourself. Stripe automatically determines meses sin intereses eligibility after you set up the payment method.
- Stripe only supports installments for Stripe Mexico accounts.
- The payment method must be a credit card issued in Mexico.
- The card must be a consumer card–installments don’t support corporate cards.
- The card must be issued by one of our supported issuers.
- The currency value must be MXN (pesos).
- The total payment amount must be above a minimum transaction amount. Stripe provides a minimum transaction amount based on the number of months in the plan selected. You can specify which installment plans you want to enable and define your own custom minimum and maximum transaction amounts by configuring custom installment settings in the Dashboard.
Enable customers to manage their own subscriptions 
If you want your customers to manage their own accounts and recurring subscriptions, use the customer portal. Stripe hosts the customer portal, which allows your customers to self-manage their payment details, download invoices, and manage their subscriptions in one place. Read the no-code customer portal guide for complete details.
Integrate with the customer portal API
Set up the customer portal
- In the Stripe Dashboard, activate the customer portal link on the customer portal settings page.
- On the same page, go through the configuration options for the customer portal. Set up the customer portal without writing any code. Learn more about all the configuration options.
- Share the portal link with your customers.
- Optional Customize the branding and prefill email addresses by adding the
prefilled_
URL parameter to the portal link.email
See what your customers can do in the customer portal
Accept recurring donations 
You can accept recurring donations with Stripe, in the same way as recurring payments. For example, you have a llama rescue organization, Llama House, and want to allow supporters to choose an amount for a recurring, monthly donation. You can use Payment Links to create a link to share on social media and email. From the same payment link, you can also generate a QR code to add to flyers, and an embeddable buy button for your website–all from the Dashboard.
Accept recurring donations with Payment Links
- In the Stripe Dashboard, create a payment link.
- Select Products or subscriptions.
- Find or add a recurring product that represents the recurring donation.
- Under Advanced options, toggle the call to action option to Donate.
- Create the link and share it. You can share the link directly, embed it as a button on your site, or generate a QR code.
- Track payments associated with the payment link in the payments overview in the Dashboard.
Migrate existing subscriptions to Stripe 
If you have existing subscriptions in another system, you can migrate them to Stripe Billing. Read the guide for more information.