Trial Period

A trial period gives a customer access before the first charge. See how Stripe free trials start and end, the events they fire, and what to watch at conversion.

Updated October 1, 2026

A trial period is time at the start of a subscription when the customer has access but hasn't been charged. The trial earns nothing by itself. What counts is the moment it ends. Either the first real charge succeeds and you have a paying customer, or the charge fails, the subscription is canceled, or it lapses without anyone noticing.

How a Stripe trial period works

You add a trial when you create a subscription, with trial_period_days for a number of days from now or trial_end for an exact timestamp. A trial can last up to 730 days. While it runs, the subscription's status is trialing. Stripe still creates a $0 invoice at the start so the record is complete.

Stripe fires events at each step:

  • customer.subscription.created fires right away, with status trialing.
  • customer.subscription.trial_will_end fires three days before the trial ends. If the trial is shorter than three days, or you end it early with trial_end=now, it fires immediately.
  • When the trial ends, Stripe creates the first real invoice, fires invoice.created, and attempts the charge about an hour later.
  • customer.subscription.updated fires when the status changes from trialing to active, along with invoice.paid or invoice.payment_failed for the first charge.

Free trials without a card

You can run trials with or without collecting a payment method. For trials without one, trial_settings.end_behavior.missing_payment_method decides what happens if there's still no payment method when the trial ends.

  • cancel cancels the subscription and fires customer.subscription.deleted.
  • pause moves the subscription to paused, fires customer.subscription.paused, and stops invoices until you resume it.
  • create_invoice invoices anyway. If no payment method is added by the time the invoice finalizes, the subscription goes past_due.

Why the end of a trial matters

Trials raise signup numbers without adding revenue. Stripe's billing analytics leave a standard free-trial subscription out of MRR for the whole trial. Stripe measures trial conversion as trials converted divided by trials ended over the last 30 days. A big signup week can leave MRR flat until conversions land.

The first charge is also where revenue disappears. A card collected two weeks ago may now be expired, over its limit, or blocked by the bank. When that charge fails, the customer never decided to leave, and without follow-up the loss becomes involuntary churn. For trials without a card, the risk is that the customer never adds one, and the subscription cancels or pauses on the last day.

What to do before and after conversion

  • Three days out. When trial_will_end fires, the founder or success team checks whether the customer has a payment method and has used the product. A personal nudge to an engaged trial user works better than a generic reminder. Stripe notes this event can fire in the same transaction that collects payment, so check the latest invoice before sending a "please pay" message.
  • No card on file. Support sends a link to add one before the end date, because the end behavior you set will cancel, pause, or invoice without asking anyone.
  • First charge fails. Finance or support contacts the customer the same day. Asking for a card update within hours is easier than winning them back after retries run out.
  • First charge succeeds. This is the real win. Count it as new MRR.
  • Paused after the trial. A paused subscription can stay paused indefinitely. Follow up, and once the customer adds a payment method you can resume the same subscription.
  • Engineering. Grant access on trialing and active, and remove it on paused or canceled.

Trials in ChargeBell

Trials touch several ChargeBell alerts. The new subscription alert posts when the trial starts, with the plan and no MRR figure, since nothing has been billed. It doesn't label the subscription as trialing, so check the status in Stripe. A separate trial ending soon alert warns the team before the end date. When the first charge fails, the payment failed alert is marked critical, comes through during quiet hours, and includes the decline reason. If a retry later succeeds, a payment recovered alert tells you it's resolved.

A common setup sends trial signups to #wins, trial ending notices to #customer-success, and failed first charges to #billing, where someone follows up while the customer still remembers signing up.

Get alerted in Slack

Stripe events: customer.subscription.created, customer.subscription.trial_will_end, customer.subscription.updated, customer.subscription.paused, customer.subscription.deleted, invoice.paid, invoice.payment_failed

# wins

ChargeBellAPP

🎉 New subscriber: $49.00/month

Acme Corp · Pro Monthly

MRR impact: +$49.00/mo

Related terms