# How to Sell Subscriptions Online: Models, Tools and Churn

Learn how to sell subscriptions online: pick a model, choose billing tools, handle failed payments and churn, and set up Stripe subscriptions in code.
*Published 2026-10-08*

<div className="lead">
A one-time sale ends when the customer pays. A subscription starts there. **Selling subscriptions online means building a small billing business inside your store: recurring charges, failed-payment recovery, and a way for customers to manage their own plan.** Get those right and revenue compounds. Get them wrong and you spend every month refilling a leaky bucket. This guide covers the models, the tools, and the parts nobody puts in the pricing page.
</div>

## Choose Your Subscription Model First

"Subscription" covers several different businesses, and the right billing setup depends on which one you are running.

| Model | How it works | Typical example |
|-------|--------------|-----------------|
| **Replenishment** | Customer gets a product they already use on a schedule | Coffee, supplements, pet food |
| **Curated box** | You choose the contents each cycle, customer buys the surprise | Snack or beauty boxes |
| **Membership** | Recurring fee for access or perks | Discounts, early drops, community |
| **Digital access** | Recurring fee for software or content | Courses, templates, tools |

Replenishment works best when the product is consumed on a predictable cycle. Curated boxes lean on novelty, so they churn faster and need a strong brand. Memberships and digital access have the lowest fulfillment cost but need continuing value, because there is nothing to deliver in a box that reminds people why they pay. If you are exploring the box format in particular, our guides to [starting a gift basket business](/blog/how-to-start-a-gift-basket-business) and [selling online with Stripe](/blog/how-to-sell-online-with-stripe) cover the adjacent decisions.

## The Subscription Revenue Loop

![The subscription revenue loop: subscribe, bill, recover failed payments, let customers self-serve, and win back cancellations](/_blogposts/how-to-sell-subscriptions-online/subscription-revenue-loop.svg)

Most founders obsess over steps one and two, the signup and the charge. The money is made or lost at steps three and four. Failed cards and awkward cancellations quietly remove customers who never decided to leave. Plan for both from day one.

## Pricing and Offer Design

- **Discount the subscription, not the first order only.** A modest saving (often framed as a percentage off versus one-time price) gives people a reason to commit without training them to wait for a sale.
- **Offer a one-time purchase next to it.** Customers who are unsure will pick it, and you capture them later with a subscribe prompt.
- **Let customers choose their frequency.** Weekly, monthly or every other month. Forcing a rigid cadence causes cancellations from people who simply have too much stock at home.
- **Be explicit about renewal.** Show the price, the date and how to cancel at checkout. This is good practice and, in many places, a legal requirement (see below).

## Tools: Stripe Billing, Recharge, Skio and Friends

You have three broad routes.

### 1. Build on a payments platform (Stripe Billing)

**[Stripe Billing](https://stripe.com/billing)** handles recurring invoices, proration, trials, retries and a hosted customer portal. It is the most flexible route and the one developers usually prefer. Stripe charges a percentage of recurring billing volume on top of normal card processing fees, so check its [current pricing](https://stripe.com/billing/pricing) before you model margins.

![Stripe Billing landing page promising to monetize faster, manage pricing and reduce churn](/_blogposts/how-to-sell-subscriptions-online/stripe-billing.webp)

### 2. Use a subscription app on your platform (Recharge, Skio)

**[Recharge](https://rechargepayments.com/)** positions itself as the leading subscription platform for Shopify stores and adds customer portals, analytics and workflows on top of your checkout. **[Skio](https://www.skio.com/)** targets fast-growing consumer brands with a similar focus on retention features and flexible plans.

![Recharge homepage describing the leading subscription platform for Shopify stores](/_blogposts/how-to-sell-subscriptions-online/recharge-homepage.webp)

![Skio homepage focused on scaling subscriptions for consumer brands](/_blogposts/how-to-sell-subscriptions-online/skio-homepage.webp)

These apps are strong when you already sell on a platform that supports them and want ready-made retention tooling. The cost is another monthly fee or revenue share on top of the platform's own, and a dependence on the platform's checkout.

### 3. Use a platform's built-in subscriptions

Some store builders ship native subscriptions. They are the quickest to launch and the least customizable. Check whether they support the frequencies, skip and swap actions, and reporting you need before you commit.

| Route | Best for | Trade-off |
|-------|----------|-----------|
| Stripe Billing | Developer-led stores, digital access, custom logic | You build the storefront and portal flows |
| Subscription app | Consumer brands on a supported platform | Extra fee, platform lock-in at checkout |
| Built-in | Simple replenishment | Limited customization |

## Set Up Stripe Subscriptions in Code

If you build on Stripe, the core of it is small. Create a recurring Price in the Stripe Dashboard, then start a Checkout Session in subscription mode:

```ts
import Stripe from "stripe";

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

export async function startSubscription(priceId: string, customerId: string) {
	const session = await stripe.checkout.sessions.create({
		mode: "subscription",
		customer: customerId,
		line_items: [{ price: priceId, quantity: 1 }],
		success_url: "https://example.com/account?subscribed=1",
		cancel_url: "https://example.com/pricing",
	});
	return session.url;
}

export async function openPortal(customerId: string) {
	const portal = await stripe.billingPortal.sessions.create({
		customer: customerId,
		return_url: "https://example.com/account",
	});
	return portal.url;
}
```

Two more pieces make it production-ready:

- **Webhooks.** Listen for events such as `invoice.paid` and `invoice.payment_failed` and use them as your source of truth for access and fulfillment. Never grant or revoke access based on the redirect to your success page.
- **The customer portal.** Turn on the hosted portal so customers can update a card, change plans or cancel without emailing you. See the [Stripe customer portal docs](https://docs.stripe.com/customer-management) for what to enable.

## Failed Payments and Churn

### Involuntary churn

A share of cancellations are not decisions at all. The card expired, was replaced, or hit a limit. Recovering these is the cheapest growth you will find:

- **Smart retries.** Retry on a schedule rather than once. Billing tools can do this automatically.
- **Card updater services.** Card networks can refresh expired details for many cards without customer action.
- **Dunning emails.** A short, calm email with a one-click update link beats a sequence of angry reminders. The tone and timing advice in our [abandoned cart emails guide](/blog/abandoned-cart-emails) applies here too.

### Voluntary churn

When customers choose to leave, the reason is usually one of: too much product, too expensive, or no longer needed. Give them options before the cancel button:

- **Skip a shipment** or **pause** for a month.
- **Change frequency** or **swap the product.**
- **Offer a downgrade** to a smaller plan.
- **Ask why** with a one-question survey. The answers are free product research.

Make cancelling easy anyway. Hiding the exit breeds chargebacks and bad reviews, and it can be illegal.

## Legal and Tax Basics

Rules differ by region, and subscriptions attract more regulation than one-time sales.

- **In the US,** the Federal Trade Commission treats unclear recurring charges and hard-to-cancel flows as unfair practices, and several states have their own automatic renewal laws that require clear disclosure and easy cancellation.
- **In the EU,** consumer law gives customers a withdrawal right for many online purchases and requires clear pre-contract information on price and duration. The EU is also moving toward a "cancel in a click" requirement for online contracts.
- **In the UK,** the Digital Markets, Competition and Consumers Act introduces subscription contract rules, including reminder notices and simple exit routes.
- **Tax.** Digital subscriptions can carry VAT or sales tax depending on the buyer's location. Our guides to [ecommerce sales tax](/blog/ecommerce-sales-tax) and [selling internationally](/blog/how-to-sell-internationally) cover the mechanics, and Stripe Tax can automate collection if you use Stripe.

<Callout emoji="⚖️">
**Always check the current rules where you sell.** This guide summarizes US, EU and UK subscription and auto-renewal rules as of October 2026. Regulations change and vary by country and state, so confirm the details with your local regulator or a legal specialist before you launch. This is general information, not legal advice.
</Callout>

## Metrics That Matter

- **Monthly recurring revenue (MRR)** and its movement: new, expansion, contraction and churned.
- **Churn rate**, split into voluntary and involuntary.
- **Customer lifetime value** compared with what it costs to acquire a subscriber.
- **Retention by cohort.** Watch what share of each month's signups is still active at months 3, 6 and 12.

A healthy-looking MRR chart can hide a cohort that churns in three months. Look at cohorts before you pour money into ads.

## Where Your Next Store Fits

[Your Next Store](https://yournextstore.com/) is a commerce backend with an open-source Next.js storefront, a REST API, Stripe-powered checkout and 0% platform transaction fees on every plan. It is a strong fit for one-time product sales and for teams that want to own their storefront code. If recurring product subscriptions are the core of your business, confirm what is supported in the [documentation](https://yournextstore.com/docs) before you commit, and compare it against a Stripe Billing or app-based setup. Our [guide to starting an online store](/blog/how-to-start-an-online-store) helps you decide what to build first.

## What Nobody Tells You About Subscriptions

- **Your first 100 subscribers will teach you more than any plan.** Talk to the ones who cancel.
- **Support load scales with renewals,** not signups. Every charge is a chance for a "why was I billed?" email.
- **Price changes are painful.** Grandfathering and clear notice take real effort, so choose your starting price carefully.
- **Fulfillment is part of the subscription.** A late box reads as a billing failure to the customer. See our [shipping strategy guide](/blog/ecommerce-shipping-strategy) for modeling that cost.

## FAQ

### What is the best way to sell subscriptions online?

For developer-led stores, Stripe Billing with a Checkout Session in subscription mode and the hosted customer portal gives the most control. For consumer brands on a supported platform, an app such as Recharge or Skio saves time on retention features.

### How do I reduce subscription churn?

Fix involuntary churn first with smart retries, card updaters and simple dunning emails. Then reduce voluntary churn with skip, pause, swap and frequency options before the cancel step.

### Do I need a separate tool to sell subscriptions?

Not always. A payments platform with billing support, or a store platform with native subscriptions, may be enough. A dedicated subscription app earns its fee once you need advanced retention workflows and analytics.

### Are subscription businesses regulated?

Yes. Automatic renewals, free trials and cancellation flows are regulated in the US, EU and UK, and details vary by state and country. Disclose price and renewal terms clearly and make cancellation as easy as signup.

## Related Blog Posts

- [How to Sell Online with Stripe](/blog/how-to-sell-online-with-stripe)
- [Ecommerce Checkout Optimization](/blog/ecommerce-checkout-optimization)
- [Abandoned Cart Emails](/blog/abandoned-cart-emails)
- [How to Start an Online Store](/blog/how-to-start-an-online-store)
- [Ecommerce Sales Tax](/blog/ecommerce-sales-tax)
