Skip to content

User guide

Plans & billing

QuickZTNA plans and what each one gates, the 60-day Business trial, how plan enforcement works, and billing via Razorpay or custom invoicing.

Last updated June 16, 2026

Table of contents

This page covers the plan tiers, exactly how plan enforcement works, and how billing is handled. For current prices and the full feature matrix, the pricing page is the source of truth — this page is the admin’s mechanical view.

1. The tiers

  • Free — 100 devices and 3 users, forever. WireGuard mesh, MagicDNS, ABAC policies, device posture (at connect), DNS filtering, the AI assistant, and remote SSH are included.
  • Business — per-user pricing with unlimited devices and a 60-day free trial (no card). Adds SCIM, continuous posture, workforce analytics, DLP, CASB, remote desktop, and longer audit retention.
  • Workforce — custom, for larger / regulated deployments; the deepest workforce-security and retention options.

Exact prices and limits change — the pricing page is canonical.

2. How plan enforcement works

Every gated handler calls requireFeature(db, org_id, '<feature>', request), which resolves the org’s effective plan and checks the plan_features table:

  requireFeature(org, feature)


   billing_subscriptions → resolveEffectivePlan()
     trialing & not expired → trial plan
     trialing & expired     → free
     paid & period expired / inactive status → free
     (no subscription)      → inherit parent org's plan, else free


   plan_features WHERE plan = <effective> AND enabled = true

   feature in list? ── yes → allowed (null)
                     └ no  → 403 FEATURE_GATED  "requires an upgraded plan"

   result cached in Valkey (key features:<org_id>, 600s TTL)

The cache is shared with the dashboard’s feature-check and invalidated when a subscription or plan_features row changes — so the dashboard, CLI, and API always agree.

3. Feature-flag reference

Each admin capability is gated by a named feature flag. Which plan includes which flag is defined in plan_features (and shown on pricing); the flags themselves are:

Feature flagGatesPage
dns_filteringDNS threat/category filteringDNS filtering
casbShadow-IT discovery & app policyCASB
dlpFile-scan data-loss detectionDLP
scimSCIM 2.0 provisioningIdentity
workforce_analyticsSessions, schedule, productivity, inventoryWorkforce analytics
user_risk_scoringSeven-factor user riskWorkforce analytics
remote_shellRemote SSH/shell (enabled on all plans)Remote access
remote_desktopWebRTC remote desktopRemote access
secrets_vaultEncrypted secrets vaultObservability
compliance_reportsDrift evaluation + signed reportsObservability
nl_acl_builder, event_summarizer, incident_response, ai_chat, ai_actionsAI Operator capabilitiesAI Operator

Posture, ACLs, and the mesh are part of the baseline and are not paid-gated (posture enforcement modes and continuous re-evaluation differ by plan).

4. How the trial works

The Business trial runs 60 days with all Business features and no credit card. At the end the org auto-downgrades to Free (via the expire-trials job); no data is deleted — paid features simply gate down. Extend a trial through sales if a pilot needs more runway.

5. Billing

Billing is handled via Razorpay, with custom invoicing for larger contracts. Manage your subscription from the dashboard’s billing area (/api/manage-subscription); checkout is created via /api/create-checkout, and subscription state is reconciled by the Razorpay webhook. Changes apply immediately.

6. Verification & troubleshooting

  • A paid call returns 403 FEATURE_GATED → that feature isn’t in the org’s effective plan; upgrade, or check the trial hasn’t expired.
  • Upgraded but still gated → wait up to 600 s for the entitlement cache, or confirm the subscription status is active.
  • Child org missing features → ensure the parent org’s subscription carries them (children inherit).
  • Trial ended unexpectedly → check trial_ends_at; the org falls back to Free automatically.

7. Next

Frequently asked questions

Is the Free plan really free forever?
Yes — 100 devices and 3 users, no trial timer, no credit card. WireGuard mesh, MagicDNS, ABAC policies, device posture (at-connect), DNS filtering, the AI assistant, and remote SSH are all on Free. You upgrade only for more users, unlimited devices, or paid features like SCIM, continuous posture, DLP, CASB, or remote desktop.
Do platform superadmins bypass plan gates?
No. Plan gates are enforced at the handler level via requireFeature(). A superadmin assisting a Free-tier org still hits the feature gate on paid endpoints — the gating is intentional and consistent across dashboard, CLI, and API.
How quickly does a plan change take effect?
Feature entitlements are cached per org for 600 seconds, so a plan change is visible within a minute (the cache is also invalidated on subscription/plan_features writes). Downgrades are immediate and non-destructive: downgrade then re-upgrade and everything resumes.
What happens to child organizations' plans?
A child org with no subscription of its own inherits its parent's effective plan. So entitlements flow down an org group from the parent's billing automatically.