Skip to main content

Subscription trials

Stripe Price data may include a default trial period, and trial subscriptions are projected with exact Stripe timestamps.

Required product decisions

Before enabling a trial, decide and document:

  • whether a payment method is required at signup;
  • which plans and customers are eligible;
  • whether repeated trials are prevented;
  • when reminder messages are sent;
  • what happens when payment fails at conversion;
  • whether access ends immediately or receives a grace period; and
  • how cancellation during a trial behaves.

Supacharger does not make these product decisions automatically.

Access state

trialing is a distinct subscription state on each Subscription. Applications may grant trial access, but they must use the same billing-account entitlement decision as paid access. With multiple Subscriptions, one trial ending must not revoke features still granted by another Subscription or by a manual/promotion grant. Never trust a client-side timer or Checkout redirect.

Testing

Use a Stripe Sandbox and test clocks to verify:

  • trial creation timestamps;
  • reminder timing if customer.subscription.trial_will_end is added to the implemented event contract;
  • conversion to active;
  • payment failure and recovery;
  • cancellation before the trial ends; and
  • expiry without a payment method.

The current canonical event list does not handle customer.subscription.trial_will_end. Add that event only with a notification handler, duplicate protection, retry behaviour, tests, and matching documentation.

Build Supacharger with SpecdriveKeep the specification, infrastructure and agent work in one project context.