# Subscription trials

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

# 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.
