# How trials and grace periods work

**For:** Admin
**You'll need:** Owner role.

This article explains the lifecycle: when {{ app_name }} considers your subscription **trialing**, **active**, in **grace** (past due), **suspended**, or **cancelled**, and what changes when each state flips.

Billing state lives on your **account**, not on each company — so a state change applies to **every company you own** at once.

## States

- **Trialing** — your account is on a free trial. Everything works exactly like a paid plan, across all your companies.
- **Active** — you have a valid subscription and the most recent invoice was paid.
- **Grace (Past Due)** — payment failed (or the trial ended without a payment method). Your companies keep working for a short window so you can fix billing without losing data.
- **Suspended** — the grace window ran out without a successful charge, or a trial expired without subscribing. Members can sign in but most write actions are blocked, in every company on the account. Reading and exporting data still works so you can leave cleanly if you choose.
- **Cancelled** — the subscription was cancelled in the Stripe Billing Portal. Your companies stay active until the end of the period you've already paid for; after that they fall into the grace flow, then suspension.

## What drives state changes

Two things change the state:

- **Stripe webhooks** — every time something happens in Stripe (a charge succeeds, a charge fails, a subscription is cancelled), Stripe pings {{ app_name }} and the state is updated immediately.
- **The billing-lifecycle background job** — runs daily and walks expired trials and grace periods, applying the next state when a deadline has passed.

You don't trigger either — they happen on their own.

## How to fix a failed payment

1. Open the account dropdown → **'Account'** → **'Manage companies'**.
2. In the **Subscription** panel, click **'Update payment'** (shown while past due) to open the Stripe Billing Portal.
3. Update the payment method.

The next charge attempt usually happens within minutes. When it succeeds, your account flips back to **'Active'** and every company is restored.

## Verify it worked

Open **Manage companies**. The Subscription panel should read **'Active'**, and members can use {{ app_name }} normally in every company.

## Related

- {doc}`start-a-subscription`
- {doc}`manage-billing`
- {doc}`/settings-and-admin/tenants/delete-a-tenant`
