The payments of a subscription business we built and run

A subscription with a free trial lives on card payments that renew every week, month or quarter. Here is how we set them up on Stripe, how each part works and what we learned.

The starting point.

A free trial with a card

New customers get 7 days free, and the card is charged when the trial ends.

Three plans that renew

Weekly, monthly and quarterly plans renew on a card, and some cards get declined.

Promotions with dates

Discounts run for a few weeks at a time and have to end on the right day.

Access depends on payment

Every payment, decline and cancellation has to open or close the customer's access.

01

The checkout decides the price, the free trial and the discount.

The customer only picks a plan. The website looks up the price in a fixed list, checks the no-trial list, applies the right coupon and then sends the customer to Stripe's payment page.

Try it · example data

Change the situation and open the checkout.

The customer is on the no-trial list
A promotion is running
Stripe refuses the coupon
Stripe payment pageExample
The price comes from a fixed listThe browser never sends a price. The website picks it from its own list of plans, so nobody can change it on the way.
One free trial per personSomeone on the no-trial list gets the same plan without the free trial, decided at checkout.
No sale lost to a couponIf Stripe refuses a coupon, the checkout tries again without the discount, so the customer can still pay.
02

Every payment notice is checked, saved once and applied in order.

Stripe tells the website about each payment, renewal and cancellation. The website checks that the notice really comes from Stripe, saves it, and only then acts.

Try it · example data

Send notices to the website, including the awkward ones.

The website's recordExample
Access openRobin · monthly plan, paid until 2 Dec
  • No notices yet today.
7 kinds of noticesThe website acts on 7 kinds of payment notices, and checks that each one really comes from Stripe before reading it.
Saved before actingEvery notice is recorded first, so a repeat is recognised and an older one never undoes a newer one.
A second copy, checked every hourA backup copy of every notice is kept, and the records are compared with Stripe every hour.
03

Most declined cards keep access for 7 days. When there is not enough money, the plan stops at once.

Most declined cards can still go through, so the card is retried and the customer gets up to 7 emails. When the bank says there is not enough money, the plan stops with one clear email.

Try it · example data

Pick the reason, then move the days forward.

Robin · monthly plandeclined
Grace counted from the end of the periodNew retries don't push the date, so access never stays open more than 7 days without a payment.
Stripe is asked before each emailBefore every email, the system checks whether the invoice is paid, and stops the moment it is.
Not enough funds: one emailIn the 150 days before we made this rule, 7 customers had 25 such declines and none of them paid later.

Source for the last fact: the business's Stripe records, read 20 August 2026.

04

One plan per purchase, and one free trial per person.

A second subscription bought by mistake is cancelled automatically. Accounts that look like the same person are listed in a daily email, and the owner decides who goes on the no-trial list.

Try it · example data

Pick a situation and see what the system does.

Duplicates cancelled automaticallyIn a real case, the same customer bought twice 65 seconds apart, and the second plan was cancelled.
Matched on clear signalsRepeated accounts are matched by connection, name on the card and the card itself.
A person decidesThe daily email lists the matches, and adding someone to the no-trial list stays the owner's call.
05

A rule tested with data, and switched off five days later.

An audit showed that many debit-card charges failed after the trial. We tried a free trial for credit cards only, watched five days of sign-ups and turned it off to look for the cause.

The audit21 of 29charges on debit cards had failed

And prepaid cards never paid at all.

The ruleCredit onlya free trial needed a credit card

Those five days brought 2 new subscribers.

The decisionOffthe rule was switched off on 22 August

To measure the cause before trying again.

Source: the business's Stripe records and internal notes, August 2026.

The project in numbers.

168free trials handled from sign-up to billing, July to October 2026
6declined renewals paid after automatic retries, August to October 2026
7kinds of payment notices the website acts on
7emails at most after a declined card, on days 0, 1, 2, 4, 7, 10 and 14

Sources: the business's Stripe account, October 2026; the system's code, read 21 October 2026.

What we learned.

01The payment system is the source of truth.

Access, emails and reports all follow what Stripe says, checked right before acting.

02Save first, then act.

Recording each notice before acting keeps repeats and late notices harmless.

03Let the data set the rule.

Our records showed which declines come back and which deserve one clear email.

04Test a rule, then keep it or undo it.

A rule goes live with a number to watch, so it can be switched off within days.

05Keep a person on the decisions.

The system flags repeated accounts, and putting someone on the no-trial list stays a person's call.

← Back to Payments Want the same for your business? Tell us how you sell →