Cancel subscription

Cancelling stops your paid subscription immediately. This page covers what happens, how to do it, and how to reactivate.

Permission note: cancelling requires the manage_billing permission. Cancellation is one of the most consequential actions on the Billing page; only roles you’ve explicitly granted billing access can perform it.

Before you cancel

A few alternatives that may fit better:

  • Downgrade instead. If the issue is cost, downgrading to a smaller tier keeps your subscription active with reduced capability rather than ending it. See Upgrade or downgrade.
  • Pause via Stripe customer portal. Some payment situations are easier to handle via the Stripe portal than by cancelling outright (e.g., updating an expired card). Click Manage Subscription on the Billing page first.
  • Contact support. If your reason for cancelling is a Beacon-side issue you’d want resolved, reach out to support@softagility.com — fixing the underlying issue is usually faster than cancel-and-reactivate.

If you’ve considered the alternatives and still want to cancel, continue.

How to cancel

In the sidebar, click Billing. In the Current Plan section, click Cancel Subscription.

A confirmation modal opens with the title “Cancel subscription” and a warning:

Are you sure you want to cancel?

Your subscription will end immediately and you will be moved to the Free plan. Any data exceeding Free plan limits will become inaccessible.

The modal has two buttons: Keep Subscription (default — closes the modal, no change) and Cancel Subscription (the danger action — confirms cancellation).

Known UI-copy bug: the modal mentions a “Free plan.” Beacon doesn’t have a Free tier — the in-app cancel endpoint actually moves your tenant back to the Trial plan. The cap-state behavior described below depends on which path actually runs (in-app cancel vs. Stripe-side webhook), and they differ. We’re working with the team to align the modal copy with the actual behavior.

What happens after you confirm

The exact post-cancel state depends on whether your cancellation runs through the in-app endpoint or the Stripe-side webhook (these are two distinct paths in the codebase that don’t behave identically):

In-app cancel (the typical case — clicking Cancel Subscription in the dashboard):

  1. Stripe subscription cancels immediately. No further charges occur.
  2. Your tenant is moved back to the Trial plan, with the previous plan’s retention temporarily honored for a 30-day downgrade-retention grace window. After that grace, normal Trial retention applies and older data may be purged.
  3. Premium features become locked as if you’d downgraded to Trial. Saved configurations are not deleted; they’re hidden from the UI until you re-subscribe at a tier that includes them.

Stripe-side cancellation (e.g., card permanently declined, Stripe-side admin action):

  1. Cap-state moves to Cancelled (sticky) when Stripe notifies Beacon that the subscription was deleted.
  2. Ingestion is blocked immediately — the API returns 402 Payment Required for new events. There is no grace window in this path; Cancelled is a final, sticky state until reactivated.
  3. Historical data and dashboard access remain subject to retention.

In both paths, the Manage Subscription button (Stripe customer portal) lets you confirm cancellation took effect on Stripe’s side, download final invoices, and review payment history. A confirmation email is sent to the billing contact when cancellation is processed.

Reactivate

To resume after cancelling:

  1. Sign back into beacon.softagility.com and open Billing.
  2. The page reflects your post-cancellation state — Trial (in-app cancel path) or cancelled (Stripe-side cancel path).
  3. Click any plan card in the Plan Picker (Starter, Pro, Business, or Contact Sales for Enterprise).
  4. Complete Stripe Checkout for the selected plan.

After checkout completes, your tenant moves to the new tier. If you were in cancelled (Stripe-side path), ingestion resumes immediately. If you were on Trial (in-app cancel path), you’re upgrading from Trial to a paid plan as normal. Either way, any data still within the active retention window is queryable again.

What’s preserved when you cancel

  • Your account and login — you can still sign in.
  • Team members and their access — invited users keep their accounts.
  • Historical data, with caveats: in-app cancel temporarily honors your previous plan’s retention via a 30-day downgrade-retention grace, then current-plan (Trial) retention applies. Stripe-side cancel keeps data subject to current retention rules.
  • All configurations — products, allowlists, funnels, segments, alerts. Hidden behind plan gates if you reactivate at a lower tier.

What’s not preserved

  • Active ingestion — events sent after a Stripe-side cancellation are rejected immediately; in-app cancellation degrades you to Trial limits.
  • Cap-state-dependent behaviors — overage billing (if you were on a charge-policy plan) stops.

Common questions

Will my events queue locally if ingestion is blocked? Yes — the SDK queues events to disk on 402 responses (see the .NET, C++, or JS SDK guides for details). When you reactivate, those queued events flush automatically (subject to the SDK’s offline queue cap).

Note on cap-state grace periods: the per-plan grace windows described elsewhere (Trial 3 days / Starter 3 / Pro 7 / Business 14 / Enterprise 14) apply to the soft-cap → hard-cap transition (when you exceed your monthly event allotment). They do not apply to the cancellation path — a Stripe-side cancellation moves you to Cancelled (sticky) immediately with no grace.

Next: Troubleshooting or the Glossary.