Appearance
Plans & Checkout
Select and purchase a EaseLab subscription plan to unlock full laboratory functionality. The checkout flow is optimized for lab owners upgrading from trial or changing tiers.
Plan selection
Navigate to Billing → Plans (/billing/plans).
mermaid
flowchart LR
A[View plans] --> B[Compare features]
B --> C[Select plan]
C --> D[Checkout]
D --> E[Payment]
E --> F[Activation]Plan comparison dimensions
| Dimension | Questions to ask |
|---|---|
| Users | How many staff accounts? |
| Branches | Collection center count |
| Analyzers | Instrument integration needed? |
| SMS | Monthly notification volume |
| Backups | Retention period |
| Support | SLA level |
Each plan card shows included features and monthly/annual pricing.
Annual billing
Annual plans often reduce effective monthly cost — confirm currency and tax display at checkout.
Checkout process
Route: /billing/checkout/:planId
| Step | Detail |
|---|---|
| 1. Review | Plan name, price, billing cycle |
| 2. Account | Confirms tenant identity |
| 3. Payment | Card or local gateway method |
| 4. Confirm | Terms acceptance |
| 5. Processing | Redirect to payment provider |
| 6. Return | /billing/return handler |
Checkout fields
| Field | Notes |
|---|---|
| Billing name | Invoice header |
| Tax ID | Optional VAT/GST |
| Payment method | Tokenized — not stored raw in EaseLab |
| Promo code | When platform enables campaigns |
Payment return handling
After external payment:
mermaid
sequenceDiagram
participant User
participant Gateway
participant EaseLab
User->>Gateway: Authorize payment
Gateway->>EaseLab: Webhook confirmation
EaseLab->>EaseLab: Activate subscription
Gateway->>User: Redirect to /billing/return
User->>EaseLab: Success UISuccess clears IsLocked and sets PaymentStatus to Current.
Failure shows retry option — tenant may remain read-only until resolved.
Free plan activation
Some deployments offer a free tier with reduced limits:
- Banner may show Activate free plan in read-only state
- Calls
activateFreePlanAPI - Restores write access within free quotas
Free tier is not a substitute for paid features (analyzers, advanced SMS).
Changing plans
| Change type | Behavior |
|---|---|
| Upgrade | Immediate feature unlock; prorated charge |
| Downgrade | Effective next period; verify under limits |
| Cancel | End of period access; then read-only |
Review Usage & Limits before downgrade — excess users may need deactivation.
Billing history
/billing/history lists:
| Column | Description |
|---|---|
| Date | Transaction timestamp |
| Description | Plan renewal, upgrade |
| Amount | Charged total |
| Status | Paid, failed, refunded |
| Receipt | Download link when available |
Development checkout
/billing/dev-pay simulates successful payment in local development without a live gateway — never enabled in production.
Production payments
Configure platform payment account in Platform Payment Setup before accepting live charges.
Post-purchase checklist
| Task | Owner |
|---|---|
| Verify read-only banner cleared | Lab owner |
| Re-test analyzer ingest | IT |
| Confirm SMS sends | Reception |
| Review subscription usage page | Admin |
| Download receipt for accounting | Finance |
Troubleshooting
| Issue | Resolution |
|---|---|
| Stuck read-only after payment | Refresh tenant; check webhook logs |
| Checkout 404 | Invalid plan ID — reselect from plans page |
| Double charge | Contact support with gateway transaction ID |
| Wrong plan active | Platform admin subscription override |