Skip to content

Packages & Plans

Subscription packages define what each lab tenant can access: user limits, analyzer integration, SMS quotas, and feature flags. Platform admins manage packages; tenants subscribe through the billing portal.

Package structure

FieldDescription
NameDisplay name (e.g. Starter, Professional, Enterprise)
SlugInternal identifier
PriceMonthly or annual amount
Billing cycleMonthly, yearly
Trial daysDefault trial length for new signups
Is activeWhether shown on pricing page
Is freeZero-cost plan (activate without payment)
Sort orderDisplay position on pricing page

Feature limits

Plans can enforce usage limits checked at runtime:

Limit typeExample enforcement
Max usersBlock new staff creation
Max invoices / monthSoft warning or hard block
Analyzer integration403 on analyzer routes if not included
SMS creditsCampaign send blocked when exhausted
Collection centersCap on multi-branch locations

Limits are evaluated by IPlanFeatureService before restricted operations.

Managing packages

Platform admins use Admin Portal → Plans:

ActionAPI
List plansGET /admin/plans
Create planPOST /admin/plans
Update planPUT /admin/plans/{id}
DeactivateSet isActive = false

Requires platform.plans.manage permission.

Assigning plans to tenants

MethodWhoHow
Self-serviceTenant ownerPlans & Checkout
ManualPlatform adminTenant detail → Billing section
Free activationTenantPOST /billing/activate-free for free-tier plans

Subscription lifecycle

mermaid
stateDiagram-v2
  [*] --> Trial: Register
  Trial --> Active: Payment confirmed
  Trial --> Locked: Trial expired
  Active --> Locked: Subscription expired
  Locked --> Active: Renew / subscribe
StatusTenant experience
Active trialFull access until trialEndsAt
Active paidFull access until expiresAt
LockedRead-only; billing routes still work

Pricing page

Public pricing is available at /pricing in the marketing site. Plans marked isActive appear automatically. Tenants compare features and start checkout.

Usage monitoring

Tenants view current usage at Admin → Subscription or GET /billing/usage:

MetricDescription
UsersCurrent vs limit
InvoicesCount this billing period
SMSSent vs quota

See Usage & Limits.

Ease Lab — Cloud Pathology Lab Management