Stripe recurring payments work through subscriptions. You describe what you sell as a product, attach a price with a billing interval, and subscribe a customer to it. From then on Stripe creates an invoice every period and tries to collect it from the customer's saved payment method.
This walkthrough follows Stripe's own documentation and pricing pages as they read in October 2026. It describes how the product behaves and doesn't recommend it over any other. Billing Model isn't affiliated with Stripe, and products and prices change, so confirm current behavior in Stripe's docs before you build on any detail here.
Quick answer: Stripe recurring payments use five objects: a product, a recurring price, a customer, a subscription and an invoice. You can set them up without code (Dashboard, payment links, customer portal) or through an integration. At each renewal Stripe creates an invoice, holds it as a draft for about an hour, then charges the default payment method. Failed charges are retried and the customer can be emailed.
The objects behind Stripe recurring payments
Stripe's documentation on how subscriptions work says a subscription automatically generates invoices, attempts payment and manages its own status from creation to cancellation. Five objects do the work.
| Object | What it represents | A detail from Stripe's docs |
|---|---|---|
| Product | What you sell | Each row on your pricing page should be its own product |
| Price | How much and how often | A recurring price has an interval of up to 3 years |
| Customer | Who pays | Holds the saved payment method |
| Subscription | The link between a customer and one or more prices | Has a status such as active, past_due or canceled |
| Invoice | What is owed for one billing period | One is generated for every billing period |
Two points in Stripe's page on products and prices save trouble later. First, the same plan sold monthly and annually is one product with two prices. Its example is a business with Starter, Professional and Enterprise plans, each offered monthly and annually: 3 products with 2 prices each. Second, a price's amount can't be edited. To change what you charge, you create a new price and archive the old one, so the old price stays as a record of past transactions.
Behind each invoice sits a sixth object, the PaymentIntent, which tracks the payment attempt. You only meet it if you build an integration.
Setting up: no-code options and integrations
Stripe documents several ways to create a subscription. They differ in who does the work, not in what happens afterward.
| Route | What it is | Worth knowing |
|---|---|---|
| Dashboard | You pick a customer, a product and price, and the billing cycle date by hand | You create each subscription yourself |
| Payment link | A link to a Stripe-hosted payment page that you can share as often as you like | Not supported for usage-based billing |
| Pricing table | An embedded table of plans that sends the buyer to a Stripe-hosted payment page | Flat rate, per-seat or tiered pricing |
| Emailed invoice | The subscription emails an invoice with a due date instead of charging a saved method | The customer pays each invoice themselves |
| Customer portal | A Stripe-hosted page where customers update payment methods, see invoices and cancel | Customers can't update subscriptions with multiple products or usage-based billing |
| Integration | A Stripe-hosted or embedded checkout page, or a custom payment form, driven by your own code | Needs a developer |
The first row is Stripe's guide to creating subscriptions without code. The others come from its pages on payment links, the customer portal and designing a subscriptions integration.
The portal matters for cancellation. Stripe's docs say it can let customers cancel immediately or at the end of the current billing period, and switch between up to 10 products you choose.
Stripe collects the money. It doesn't decide what your customer has to be told. In the United States, for example, the Restore Online Shoppers' Confidence Act sets three conditions for online charges that continue until canceled: clear disclosure of the material terms, express informed consent, and a simple way to stop the charges. The guide to setting up recurring payments covers consent rules, and a lawyer should check yours.
What happens at each renewal
A subscription's billing date comes from its billing cycle anchor, which by default is the creation date or the end of a trial. The guide to the billing period explains how Stripe handles anchors on the 29th to the 31st.
The first invoice behaves differently from later ones. For a subscription set to charge automatically, Stripe's docs say the first invoice is finalized immediately and the customer has 23 hours to pay. Until then the subscription is incomplete, and if no payment succeeds in that window it becomes incomplete_expired and a new subscription has to be created.
Renewals follow the sequence in Stripe's page on subscription invoices:
- Stripe creates an invoice for the new period.
- The invoice stays in
draftstatus for about an hour, during which it can still be edited. - Stripe finalizes it and attempts payment with the default payment method.
- If the payment succeeds, the invoice becomes
paidand the subscription staysactive.
One renewal, from draft invoice to payment or retry.
Take a customer who subscribes to a $40 monthly plan on March 12, 2026 and pays by card. The first invoice is finalized and charged that day. On April 12 Stripe creates the second invoice, holds it as a draft for about an hour, then charges $40. The same happens on May 12, and so on until the subscription is changed or canceled.
Bank debits such as ACH Direct Debit confirm later than cards. Stripe's docs say a subscription paid this way can become active at once, before the payment's outcome is known.
Plan changes and proration
Proration charges or credits a customer for part of a period when the plan changes between billing dates. Stripe's prorations page gives its own example: a customer who moves from a 10 USD monthly plan to a 20 USD one halfway through the period gets a 5 USD credit for unused time and a 10 USD charge for the remaining time, 5 USD in all.
Three behaviors on that page are easy to miss:
- Timing. Stripe calculates prorations down to the second by default.
- When it's billed. With the default setting, proration items are created but, the docs say, invoiced immediately only under certain conditions. A separate setting,
always_invoice, bills the change at once, andnoneswitches proration off for that change. - Refunds. Credits from a downgrade aren't refunded automatically.
Apply that to the $40 customer. On April 27, exactly halfway through the 30 days from April 12 to May 12, they upgrade to a $100 plan. By this article's arithmetic, the credit is $40 × 0.5 = $20, the charge is $100 × 0.5 = $50, and the net is $30. If the proration waits for the next invoice, the May 12 invoice is $100 + $30 = $130.
Stripe's docs add that usage-based charges aren't prorated. Those are covered in the guide to Stripe usage-based billing.
Failed payments: Smart Retries and emails
When a renewal charge fails, Stripe can retry it and tell the customer. Both are settings you choose.
Stripe's page on automatic retries describes Smart Retries as a model that picks retry times from signals such as the best time of day to charge. You set how many tries it gets within 1 week, 2 weeks, 3 weeks, 1 month or 2 months, and the recommended default is 8 tries within 2 weeks. The alternative is a custom schedule of up to three retries, each a set number of days after the last.
Some failures aren't retried. Stripe lists hard decline codes, among them a lost or stolen card and an incorrect number, after which a charge only runs again once the customer supplies a new payment method. Bank debits aren't retried unless you turn that on, and an ACH Direct Debit returned for insufficient funds gets at most 2 retries.
After the last attempt, your settings decide what happens to the subscription: cancel it, mark it unpaid, leave it past_due, or pause it where it's eligible.
The reminder emails are covered on Stripe's page about customer emails. They include an email after each failed card payment with a link to update the payment method, a notice 1 month before a card on file expires, renewal reminders, and a reminder 7 days before a free trial ends. In a sandbox, Stripe doesn't send customer emails automatically.
For the reasoning behind retry limits, including the card network rules a processor's schedule has to respect, see the guide to a failed payment.
What Stripe charges for billing features
Subscription billing is priced on top of payment processing. The figures below are from Stripe's US pricing page and its Billing pricing page (checked October 2026). Prices in other countries differ.
| Item | Published US price |
|---|---|
| Card payment, domestic | 2.9% + $0.30 per successful transaction |
| International card | 1.5% more |
| Currency conversion | 1% more |
| ACH Direct Debit | 0.8%, capped at $5.00 |
| Billing, pay as you go | 0.7% of Billing volume |
| Billing, pay monthly | From $620 a month on a 1-year contract |
| Invoicing, Starter | 0.4% per paid invoice |
| Customer portal on a custom domain | $10 a month |
| Dispute received | $15.00 per dispute |
The Billing pricing page lists recurring billing, automatic reminders, Smart Retries and the customer portal as included. It says the 0.7% rate excludes one-off invoices.
For the $40 monthly subscription paid with a domestic card, this article's arithmetic gives:
- Processing: $40 × 2.9% = $1.16, plus $0.30, is $1.46.
- Billing: $40 × 0.7% = $0.28.
- Total: $1.46 + $0.28 = $1.74, or 4.35% of the $40 charge.
With 100 such subscribers, that is $174 a month on $4,000 collected. The fixed $0.30 is why the percentage is high on a small plan, as the guide to payment processing fees explains.
Watch out: Test before going live. Stripe's docs describe sandboxes and simulations that advance time, so you can watch a renewal, a trial ending or a failed payment without waiting a month.
Frequently asked questions
Can I set up Stripe recurring payments without a developer?
Stripe documents no-code routes: creating subscriptions in the Dashboard, sharing a payment link for a recurring price, and turning on the customer portal. A custom checkout, or code that switches access on and off as a subscription's status changes, needs an integration.
Does Stripe charge a monthly fee for subscriptions?
Its pay-as-you-go Billing plan has no recurring fee: it is 0.7% of Billing volume, in addition to payment processing fees. The pay-monthly plan starts at $620 a month on a 1-year contract (US pricing pages, checked October 2026).
What happens when a subscription payment fails in Stripe?
The subscription moves to past_due and Stripe retries according to your settings, with Smart Retries or a custom schedule. After the final attempt, the subscription is canceled, marked unpaid, left past due or paused, whichever you configured.
Can customers cancel a Stripe subscription themselves?
They can if you enable it. Stripe's customer portal can let customers cancel immediately or at the end of the billing period, update payment methods and view invoices.
Are Stripe recurring payments only for cards?
No. The customer portal's list of supported payment methods includes cards, ACH Direct Debit, SEPA Direct Debit and Bacs Direct Debit, among others. Each bank method has its own authorization rules, which the guide to the recurring ACH payment explains for the US.