What Stripe Subscriptions does

Stripe Subscriptions is a payment processing system that lets you charge customers on a recurring schedule — weekly, monthly, yearly, or any interval you set. Stripe handles the billing, payment collection, and customer management from one dashboard. You define the price, frequency, and what happens if a payment fails, and Stripe processes each charge automatically on the date you specify.

The system works with any business model that involves repeat charges: SaaS platforms, membership sites, gyms, streaming services, software licenses, or any product or service billed regularly. Stripe also handles one-time charges alongside subscriptions, so you can mix both on the same account.

Key Takeaways

  • Stripe Subscriptions automates recurring billing on a schedule you set, and you manage everything from the Stripe dashboard without building custom code.
  • You pay Stripe a percentage of each transaction (typically 2.9% plus $0.30 per charge in the US) plus a monthly fee if you use advanced features.
  • Stripe handles payment retries automatically if a card declines, reducing the number of failed charges you lose.
  • You can create different subscription tiers, offer free trials, apply discounts, and pause or cancel subscriptions without writing software.
  • Stripe sends webhooks and emails to notify you and your customers of billing events, but you are responsible for your own customer support and refund decisions.

How billing cycles and payment timing work

When you create a subscription, you set a billing interval — the number of days or months between charges. Stripe charges the customer's card on the date the subscription starts, then again on that same day each cycle. If a customer signs up on the 15th of the month for a monthly subscription, they are charged on the 15th of each following month.

If you offer a free trial, the subscription does not charge during the trial period. The first charge happens on the day the trial ends. You can set trial lengths in days, and Stripe will not attempt to charge until that period is over.

Stripe also handles proration — the practice of adjusting charges when a customer changes plans mid-cycle. If someone upgrades to a more expensive tier, Stripe can calculate the difference for the remaining days and charge or credit the account accordingly. You control whether proration is on or off for each subscription.

What happens when a payment fails

When a customer's card is declined or expires, Stripe does not immediately cancel the subscription. Instead, it retries the charge automatically on a schedule you configure. The default retry schedule attempts the payment again after 3 days, then 5 days, then 7 days — giving the customer time to update their payment method.

You can customize the retry schedule or turn it off entirely. If all retries fail, Stripe marks the subscription as past due and stops attempting charges. You then decide whether to cancel the subscription, send a reminder email, or take another action. Stripe sends you a webhook notification each time a payment fails, so you can trigger your own customer outreach.

Some customers will update their payment method in their account portal during the retry window, and Stripe will successfully charge them on the next attempt. Others will not, and the subscription will lapse. You are responsible for deciding when to cancel a past-due subscription or how long to wait before doing so.

Pricing and fees you pay to Stripe

Stripe charges a transaction fee on each successful charge: 2.9% of the amount plus $0.30 per transaction in the United States. International transactions and certain payment methods may have different rates. These fees are deducted from the amount you receive, so if a customer is charged $100, you receive $96.90.

If you use Stripe's hosted billing portal (which lets customers manage their own subscriptions, update payment methods, and view invoices), there is no additional fee. If you use advanced features like revenue recognition, dunning management, or custom integrations, Stripe may charge a separate monthly fee — typically $99 to $299 depending on the feature set.

You also pay for any payment method beyond credit and debit cards. ACH bank transfers, for example, cost 0.8% plus $0.30 per transaction. There are no setup fees, monthly minimums, or cancellation fees to use Stripe Subscriptions itself.

Creating subscription plans and tiers

In the Stripe dashboard, you create a product (the thing you are selling) and then one or more prices (the cost and billing interval for that product). A single product can have multiple prices — for example, a software product might have a $29/month price, a $79/month price, and a $299/year price, all attached to the same product.

When you create a price, you specify the amount, currency, billing interval (days or months), and trial length if any. You can also set a maximum number of billing cycles, so a subscription automatically cancels after a set number of charges — useful for limited-time offers or seasonal subscriptions.

Customers do not create their own subscriptions in Stripe; you create them on behalf of the customer, usually through your own website or app. You collect their card details (either through Stripe's hosted payment form or your own integration), then tell Stripe to start a subscription for that customer at a price you have already defined. Stripe then handles all future charges automatically.

Customer management and the billing portal

Stripe provides a customer portal — a hosted page where your customers can view their subscription status, update their payment method, download invoices, and cancel or pause their subscription. You customize the portal's appearance to match your brand, then give customers a link to access it. The portal reduces the number of support requests you receive about billing.

You can also manage subscriptions directly from the Stripe dashboard: pause a subscription temporarily, change the price mid-cycle, apply a discount, or cancel it entirely. Any change you make is reflected immediately, and Stripe sends the customer an email notification of the change.

Stripe generates an invoice for each billing cycle and stores it in the customer's account. You can customize the invoice template with your logo, company details, and line items. Customers can download invoices from the portal, and you can send them manually or have Stripe send them automatically after each charge.

Integrating Stripe Subscriptions with your website or app

If you have a simple subscription model and do not need custom logic, you can use Stripe's no-code tools: the payment link (a URL you share with customers) or the hosted checkout page. A customer clicks the link, enters their card details, and the subscription starts immediately. No coding required.

If you need more control — for example, to let customers choose between tiers on your website, or to sync subscription data with your own database — you will need to integrate Stripe's API. Stripe provides libraries for JavaScript, Python, Ruby, PHP, Java, and other languages. You write code to create a subscription when a customer clicks a button on your site, and Stripe sends webhooks back to your server to notify you of billing events (charges, failures, cancellations).

Stripe also offers Stripe Apps — pre-built integrations with tools like Zapier, Slack, and accounting software. These let you automate tasks like sending a Slack message when a subscription is created, or syncing charges to QuickBooks, without writing code yourself.

Frequently Asked Questions

Can I offer a free trial without collecting a payment method upfront?

Yes. When you create a subscription with a trial period, Stripe does not charge the customer's card until the trial ends. However, you still need to collect and store their payment method during signup so Stripe can charge them when the trial expires. If the card is declined at that point, the subscription enters the retry cycle.

What if I need to refund a customer for a subscription charge?

You can issue a refund directly from the Stripe dashboard for any charge. Refunds are processed back to the customer's card within 5 to 10 business days. Issuing a refund does not automatically cancel the subscription — you must cancel it separately if you want to stop future charges. Stripe does not make refund decisions for you; that is your responsibility based on your business policy.

Can customers pause their subscription instead of canceling?

Yes. Stripe supports subscription pauses, which temporarily stop billing without canceling the subscription entirely. You set how long the pause lasts (in days), and Stripe automatically resumes billing when the pause period ends. Customers can pause from the billing portal if you enable that option, or you can pause on their behalf from the dashboard.

What happens if I change the price of a subscription mid-cycle?

If you change the price, Stripe applies the new price on the next billing date. You can choose whether to prorate the difference for the current cycle or wait until the next cycle to apply the change. For example, if a customer upgrades mid-month, you can charge them the difference immediately, or you can apply the new price starting next month with no additional charge this cycle.

Do I need to handle taxes on subscription charges?

Stripe can calculate and collect sales tax, VAT, or GST automatically if you enable tax calculation. You configure which tax rates apply to which products and regions, and Stripe adds the tax to each charge. However, you are responsible for remitting the collected tax to the appropriate tax authority — Stripe does not do that for you. You may also need to consult a tax professional about your specific obligations.