Every new Servicio account starts in trialing status with 14 days of full Growth-equivalent access. No credit card required, no card-on-file. The trial is identical to the paid Growth experience — every feature is unlocked, you can add up to 10 seats and 1,000 clients, take real payments via Stripe, send quotes, run dunning, the works.
Day-by-day flow
- Day 0: account created.
billing_status = trialing,plan = trial,trial_ends_at = now + 14 days. - Days 1–14: a countdown banner sits at the top of every owner page ("12 days left on your trial. Choose plan").
- Day 14: a daily cron at 04:00 UTC runs
php artisan trials:expire. Any tenant whosetrial_ends_atis in the past getsbilling_status = frozen. - Frozen state: every owner request except
/t/{slug}/billing/*redirects to the upgrade page. The data is intact and untouched — frozen is a paywall, not a wipe. - After picking a plan:
billing_statusflips toactive,trial_ends_atis cleared, the banner disappears, and any seats / clients you added during the trial keep working as long as they fit under the chosen plan's caps.
Picking a lower-tier plan after the trial that you exceed during the trial is fine — your existing data is preserved, but you cannot add more of the over-cap resource until you either delete some or upgrade. Example: if you added 8 users during the trial and then chose Seedling (1-user cap), the existing 8 still work; you just cannot add a 9th.
Extending or restoring a trial
Trial length is configurable in config/plans.php (trial_days) and applies to new tenants. For an existing tenant, a super-admin can extend the trial from /admin/tenants/{slug}: set billing status back to trialing and enter the number of additional days. The trial date jumps to now + N days.
There is no automatic "ramp" between trial and paid — when the trial expires the tenant lands on the upgrade screen and stays there until they pick. We do not auto-charge, because we never asked for a card.