In one sentence
You can cancel any subscription at any time — always at the end of your current billing period, and sometimes with a full refund if you're inside the 30-day money-back window on an annual plan.
- Cancel-at-period-end is always available. Service runs through the date you've already paid through, then your org goes read-only for 30 days, then it's deleted. No money back, but no rush either — you can resume any time before the period ends.
- Annual plans get a 30-day money-back window. Within the first 30 days of a new annual term, you can cancel immediately and get a full refund of the most recent invoice. Monthly plans aren't refunded at all.
- The $10 trial AI bucket is never refunded. It's not part of the subscription invoice, so the annual-window refund naturally doesn't include it. Use it during the trial or it's gone.
How to cancel
From Admin → Billing, scroll to the bottom and click Cancel subscription. A modal appears with the available paths.
Path 1 — Cancel at period end (always available)
What happens:
- Your subscription status flips to
active_canceling. - The /billing page shows a banner with the date your access ends.
- You keep full access until that date — same modules, same seat counts, same AI subscription.
- After the period ends: status flips to
readonly, you keep sign-in for 30 days but can't create or edit anything. - After the 30-day read-only window: the org is permanently deleted.
Want to come back? Resume subscription appears on /billing while you're in active_canceling and (with a fresh payment method) during the read-only window. Either restores you to a paying state without data loss.
Path 2 — Cancel and refund (annual plans, within 30 days)
If your plan is annual and you're inside the 30-day money-back window from the start of your current annual term, the cancel modal shows a second option: "Cancel now and refund $X". The dollar amount is exactly what your most recent subscription invoice charged.
What happens:
- Your access ends immediately — not at the period end.
- The full invoice amount is refunded to your original payment method via Stripe.
- The org enters the same 30-day read-only window as path 1, then is deleted.
This option appears only when:
- The plan is annual (monthly subs are never auto-refunded).
- The current annual term started 30 days ago or less.
- The most recent invoice is paid (not failed, not unpaid).
Outside any of those, only Path 1 is available.
If you bought the $10 sample bucket during your trial and then converted to a paid plan, that $10 charge is separate from your subscription invoice and is never auto-refunded. It's a one-time purchase you used or didn't.
What gets refunded — and what doesn't
When the annual-window refund fires, the full most-recent subscription invoice is refunded. Practically, that's:
| Line | Refunded? |
|---|---|
| Plan base (Starter / Professional / Business) | ✅ Yes |
| Additional Full users beyond the included | ✅ Yes |
| Additional R&A blocks beyond the included | ✅ Yes |
| Storage add-on blocks (+50 GB / +200 GB / +1 TB) — billed on the same invoice | ✅ Yes |
| AI subscription (Managed or BYOK operating fee) — billed on the same invoice | ✅ Yes |
| Trial $10 sample AI bucket — separate invoice | ❌ Never |
| Other one-time charges (e.g. concierge migration) | ❌ Manual support intervention only |
The refund hits Stripe immediately; the bank or card-issuer typically posts it back within 5–10 business days.
What happens to your data
Whichever cancellation path you pick, the data lifecycle is the same once your access ends:
| Phase | Duration | What you can do |
|---|---|---|
| Read-only | 30 days from when access ends | Sign-in still works. Admins can come back, add payment, and reactivate. No edits, no creates, no AI. |
| Deletion notice | 7 days before deletion | Email warning to all admins with a final reactivation link. |
| Deleted | Day 30 | All organization data is permanently removed. Recovery is not possible after this point. |
The deletion clock is the same one we use after a trial ends without conversion. See Trial restrictions for the same shape.
Subscription states you might see on /billing
A quick legend so the status badge isn't a mystery:
| Status | What it means |
|---|---|
| Active | Paying customer, normal state. |
| Trial | Inside the 30-day free trial. |
active_canceling | You've cancelled-at-period-end. Access continues until the period ends. Resume is one click. |
past_due | A payment failed. AI subscriptions are paused while the org is past_due; the rest of the app keeps working for a short grace window. Update your payment method to recover. |
readonly | Access has ended but data is preserved for 30 days. Reactivation possible with a new payment. |
Audit & compliance angle
Every cancellation, every refund, every state transition is logged with an activity_type:
subscription_cancelled— the cancel-at-period-end action.refund_issued— the annual-window refund. Includes the amount, the Stripe refund ID, andpolicy: 'annual_30day_window'in the metadata.payment_failedandpayment_recovered— the past_due transitions.
These show up on the org's Activity timeline (visible to admins) and persist through the read-only window. If you ever need to prove "we cancelled on March 14, refund issued same day, $4,990 returned", the data is there.
Public refund policy
A public summary of this policy is available at /legal/refunds — same numbers as above, just outside sign-in so finance teams and procurement can read it before signing up.
Related
- Pricing & seat model
- Trial restrictions — the same 30-day data-retention clock
- Billing & overages — what's on each invoice
- AI: BYOK vs Managed