How subscriptions work (2024)

To simplify the handling of failed payments and to create subscriptions before attempting payment:

  1. Pass payment_behavior=default_incomplete when creating a subscription. If your subscription requires payment, it’s created with an incomplete status, otherwise your subscription immediately becomes active.
  2. Activate an incomplete subscription by paying the first invoice.
  3. Pass the payment intent identifier from the invoice to your user interface to collect payment information and confirm the payment intent. You can use Elements, the Android SDK, or the iOS SDK.

Payment status How subscriptions work (1)

The payment process differs across payment methods and geographical locations. Payments can also fail initially (for example, a customer might enter the wrong card number or have insufficient funds), so various payment outcomes are possible.

A PaymentIntent tracks the lifecycle of every payment. Whenever a payment is due for a subscription, Stripe generates an invoice and a PaymentIntent. The PaymentIntent ID attaches to the invoice and you can access it from the Invoice and Subscription objects. The state of the PaymentIntent affects the state of the invoice and the subscription. Here’s how the different outcomes of a payment map to the different statuses:

Payment outcomePaymentIntent statusInvoice statusSubscription status
Successsucceededpaidactive
Fails because of a card errorrequires_payment_methodopenincomplete
Fails because of authenticationrequires_actionopenincomplete

The following sections explain these statuses and the actions to take for each.

Payment succeeded How subscriptions work (2)

When your payment succeeds, the status of the PaymentIntent is succeeded, and the subscription becomes active. For payment methods with longer processing periods, subscriptions are immediately activated. In these cases, the status of the PaymentIntent may be processing for an active subscription until the payment succeeds.

With your subscription now activated, provision access to your product. Read the guide to learn more about the subscription lifecycle and best practices for provisioning.

ResponseSubscriptionPaymentIntent

{ "id": "sub_1ELI8bClCIKljWvsvK36TXlC", "object": "subscription", "status": "active", ... "latest_invoice": { "id": "in_EmGqfJMYy3Nt9M", "status": "paid", ... "payment_intent": { "status": "succeeded", ... } }}

activesucceeded

How subscriptions work (3)

Requires payment method How subscriptions work (4)

If payment fails because of a card error, such as a decline, the status of the PaymentIntent is requires_payment_method and the subscription is incomplete.

ResponseSubscriptionPaymentIntent

{ "id": "sub_1ELI8bClCIKljWvsvK36TXlC", "object": "subscription", "status": "incomplete", ... "latest_invoice": { "id": "in_EmGqfJMYy3Nt9M", "status": "open", ... "payment_intent": { "status": "requires_payment_method", ... } }}

incompleterequires_payment_method

To resolve these scenarios:

  • Notify the customer.
  • Collect new payment information and confirm the payment intent.
  • Update the default payment method on the subscription.

Learn how to handle payment failures for subscriptions.

How subscriptions work (5)

Requires action How subscriptions work (6)

Some payment methods require customer authentication with 3D Secure (3DS) to complete the payment process. If you use the Payment Intents API, the value of latest_invoice.payment_intent.status is requires_action when a customer needs to authenticate a payment. 3DS completes the authentication process. Whether a payment method requires authentication depends on your Radar rules and the issuing bank for the card.

Regulations in Europe often require 3D Secure. See Strong Customer Authentication to determine whether handling this status is important for your business. If you have an existing billing integration and want to add support for this flow, also see the Billing SCA Migration guide.

ResponseSubscriptionPaymentIntent

{ "id": "sub_1ELI8bClCIKljWvsvK36TXlC", "object": "subscription", "status": "incomplete", ... "latest_invoice": { "id": "in_EmGqfJMYy3Nt9M", "status": "open", ... "payment_intent": { "status": "requires_action", "client_secret": "pi_91_secret_W9", "next_action": { "type": "use_stripe_sdk", ... }, ... } }}

incompleterequires_action

To handle these scenarios:

  • Monitor for the invoice.payment_action_required event notification with webhooks. This indicates that authentication is required.
  • Notify your customer that they must authenticate.
  • Retrieve the client secret for the payment intent and pass it in a call to stripe.ConfirmCardPayment. This displays an authentication modal to your customers, attempts payment, then closes the modal and returns context to your application.
  • Monitor the invoice.paid event on your webhook endpoint to verify that the payment succeeded. Users can leave your application before confirmCardPayment() finishes. Verifying whether the payment succeeded allows you to correctly provision your product.

How subscriptions work (7)

Recurring charges How subscriptions work (8)

Stripe handles recurring charges for you automatically. This includes:

  • Automatically invoicing customers and attempting payments when new billing cycles start.
  • When payments fail, Stripe retries them using the Smart Retries feature or your custom retry schedule. This automatically re-attempts payment according to your Dashboard settings when cards are declined. If a failure returns a non-retryable decline code, the scheduled retries continue but the payment executes only if you obtain a new payment method.

You can send a dunning email to customers for overdue payments to increase recovery chances. For payments that require 3D Secure, you can configure your billing settings to send a hosted link to customers so they can complete the flow.

Build your own handling for recurring charge failuresHow subscriptions work (9)

If you don’t want to use Stripe’s tooling to manage failures, you can build your own. If a payment fails or if it requires customer authentication, the subscription’s status is set to past_due and the PaymentIntent status is either requires_payment_method or requires_action.

How subscriptions work (10)

To manage these scenarios, set up a webhook and listen to the customer.subscription.updated event so that you’re notified when subscriptions enter a past_due state:

{ "id": "sub_E8uXk63MAbZbto", "object": "subscription", ... "status": "past_due", "latest_invoice": "in_1EMLu1ClCIKljWvsfTjRFAxa"}

For these subscriptions, you need to get your customers back into your application to collect a different payment method so they can complete the payment. You can use an email or a mobile push notification. Stripe provides built-in reminder emails to handle this case, which you can configure in your billing settings.

When your customer is back in your application, reuse either your payment failure flow or customer action flow depending on the status of the associated PaymentIntent. After the payment succeeds, the status of the subscription is active and the invoice is paid.

Handle non-payment invoices How subscriptions work (11)

Subscriptions that include free trials, usage-based billing, invoices with coupons, or applied customer credit balances often result in non-payment invoices. This means you don’t immediately charge your customer when you create the subscription.

Even though you don’t charge customers for the first invoice, authenticating and authorizing their card is often beneficial as it can increase the chance that the first non-zero payment completes successfully. Payments made this way are known as off-session payments. To manage these scenarios, Stripe created SetupIntents.

Using SetupIntents How subscriptions work (12)

You can use SetupIntents to:

  • Collect payment information.
  • Authenticate your customer’s card to claim exemptions later.
  • Authorize your customer’s card without charging it.

Authenticating payments allows your customer to grant permissions to charge their card. Strong Customer Authentication requires this, and 3DS is a common way to complete it. Collecting payment method information and authorizing it ensures that you can successfully charge the payment method.

In off-session scenarios, SetupIntents enable you to charge customers for their first non-zero payment without having to bring them back to your website or app for authentication. This reduces the friction on your customers.

The pending_setup_intent field on a subscription doesn’t cancel automatically when the subscription ends. Listen for customer.subscription.deleted webhooks and manually cancel a subscription SetupIntent if needed.

Stripe automatically creates SetupIntents for subscriptions that don’t require an initial payment. The authentication and authorization process also completes at this point, if required. If both succeed or aren’t required, no action is necessary, and the subscription.pending_setup_intent field is null. If either step fails, Stripe recommends using the SetupIntent on your frontend to resolve the issue while your customer is on-session. The next two sections explain in detail how to manage scenarios where authentication or authorization fail.

Managing authentication failures Client-side How subscriptions work (13)

Authentication failures occur when Stripe is unable to authenticate your customer with their card issuer. When this happens, the status of the SetupIntent is set to requires_action.

How subscriptions work (14)

To resolve these scenarios, call confirmCardSetup on your frontend so that your customer can complete the authentication flow manually. The code example below expands the pending_setup_intent to complete the flow.

const {pending_setup_intent} = subscription;if (pending_setup_intent) { const {client_secret, status} = subscription.pending_setup_intent; if (status === "requires_action") { const {setupIntent, error} = await stripe.confirmCardSetup(client_secret); if (error) { // Display error.message in your UI. } else { // The setup has succeeded. Display a success message. } }}

After completing this flow, authorization executes if it’s required. If authorization succeeds, or if it’s not required, pending_setup_intent is updated to null upon completion.

Managing authorization failures Client-side How subscriptions work (15)

Payment authorization failures occur when Stripe can’t verify that a card can be charged. When this happens, the status of the SetupIntent is set to requires_payment_method. This generally means that subsequent charges with that card fail.

How subscriptions work (16)

To resolve these scenarios, collect a new payment method, then update the default payment method for your customer or the subscription. The code example below expands the pending_setup_intent to complete the flow.

const {pending_setup_intent, latest_invoice} = subscription;if (pending_setup_intent) { const {client_secret, status} = subscription.pending_setup_intent; if (status === "requires_action") { const {setupIntent, error} = await stripe.confirmCardSetup(client_secret); if (error) { // Display error.message in your UI. } else { // The setup has succeeded. Display a success message. } } else if (status === "requires_payment_method") { // Collect new payment method }}

How subscriptions work (2024)

FAQs

How does a subscription work? ›

Customers pay repeatedly at set intervals, granting them continued access to a product or service. This could be weekly, monthly, or yearly, providing businesses with a predictable income. Automated billing: Businesses usually set up automated billing systems to manage these ongoing payments.

How does subscription management work? ›

Subscription management is the process of managing your customers' subscriptions and making sure that their experience with your product or service is a happy one. The process starts once a customer signs up to "subscribe" to your product or service, and it ends when the customer cancels their subscription.

How does subscription revenue work? ›

Recurring (or subscription) revenue models are used widely across a variety of industries. Customers pay a recurring fee, typically monthly or annually, to access a product or service. Recurring revenue models are popular for their ability to generate steady, predictable income and build customer loyalty.

What is the goal of subscriptions? ›

They focus on customer retention over customer acquisition. In essence, subscription business models focus on the way revenue is made so that a single customer pays multiple payments for prolonged access to a good or service instead of a large upfront one-time price.

What is a subscription answer? ›

A subscription is an amount of money that you pay regularly in order to belong to an organization, to help a charity or campaign, or to receive copies of a magazine or newspaper. You can become a member by paying the yearly subscription.

How effective are subscription services? ›

Businesses can accurately predict revenue. Subscriptions can attract more customers. Subscriptions decrease customer acquisition costs. Businesses build stronger relationships with their customers.

What is subscription formula? ›

Total Annual Subscription = Number of Annual Subscribers * Price of Annual.

How do you make money from subscriptions? ›

Subscription businesses make money by charging customers a recurring fee for access to their services or products. This fee is usually charged on either a monthly or yearly basis.

How are subscriptions profitable? ›

The subscription revenue model generates revenue by charging customers a recurring fee that is processed at regular intervals. Subscription revenue is built on establishing long-term relationships with customers who will pay regularly for access to the product or service, also called recurring revenue.

What makes a successful subscription? ›

Offer Suitable Payment Options. Focus on Exceptional Customer Service. Be Flexible. Keep Enhancing Subscriber Experience.

What is the point of subscriptions? ›

The goal of the subscription model is to provide customers with a constant stream of content or access to a service in return for a recurring payment. Some popular examples of subscription businesses that charge customers a recurring monthly fee to enjoy their services include: Netflix.

What is a subscription strategy? ›

A subscription business model enables customers to make recurring payments to access services or receive products at a defined time interval. The payment can be weekly, monthly, bi-monthly, or even annually.

How does subscription billing work? ›

Subscription billing is a structured approach where businesses charge customers periodically for access to a product or service. This can be monthly, annually, or any other set interval. It's more than just a billing method; it's a business model that emphasizes value over time.

Does subscription mean monthly? ›

Monthly and annual subscriptions

Monthly subscriptions require subscribers to make monthly payments for products or services they are using. Annual subscriptions require subscribers to pay once a year for the products and services they use.

Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated:

Views: 6441

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.