License Management¶
Applies to: All subscriptions
Purpose¶
Keep a clear record of what the customer is entitled to, keep the configured system inside it, and make sure a licensing question never becomes a go-live surprise.
Audience¶
The customer's system administrator and commercial owner. Implementation consultants during onboarding.
Prerequisites¶
- The Complifly agreement, with its entitlements
- Administrator access to the permissions matrix and user list
Reference¶
What the platform records, and what it does not: Complifly records your licence term (PAN, start, end and grace dates, whether it is a trial, and each renewal as its own term), your plan and any limits it has set for you, and shows them through the Commercial API. A licence that has ended, is in grace or is marked suspended does not stop your users working; Complifly follows up with you instead. Registrations are counted per PAN, and users are the distinct active users with access to those registrations. Which modules each plan includes, and the limits per plan, have not been published, so they are not derivable from the platform: confirm them against your contract, and whether non-production environments are included. Recorded as assumption D1 in the Assumptions Register.
What is typically counted¶
| Dimension | What it means | Where it shows in the system |
|---|---|---|
| Modules | Which capabilities are licensed | Feature flags per registration |
| Registrations | How many GSTINs may be configured | The registration list |
| Users | How many named accounts | The user list |
| Environments | Whether non-production is included | Your deployment inventory |
| Provider call volume | Contracted with the GSP, not with Complifly | Provider consumption reporting |
The last row is worth separating explicitly, because it is a different supplier. Complifly licensing and GSP call charges are separate commitments, and a customer surprised by one is usually surprised by the other.
Keep an entitlement record¶
Maintain a simple record, outside the application, that states what was bought:
| Field | Example |
|---|---|
| Modules licensed | e-Invoice, e-Way Bill |
| Registrations entitled | 12 |
| Users entitled | 40 |
| Environments | Production, plus one non-production |
| Renewal date | With an owner |
| Provider agreement | Separate; its own volumes and renewal |
Without this, the only record of entitlement is a contract nobody reads, and drift goes unnoticed until renewal.
Reconcile configuration against entitlement¶
Do this monthly, as part of the access review:
| Check | Method |
|---|---|
| Modules enabled match modules licensed | Compare the permissions matrix against the entitlement record |
| Registration count within entitlement | Count configured registrations |
| Active user count within entitlement | Count enabled accounts — disabled accounts should not count, but confirm how yours are counted |
| Environments match | Inventory your deployments |
| Provider volume tracking to plan | Compare consumption against the contracted allowance |
| Document volume (IRNs, e-way bills) against what was bought | Read it from the Usage API — counted from the documents themselves, by registration |
The user count is where drift accumulates fastest, because accounts are created readily and disabled reluctantly. The monthly access review is where both are corrected.
When a module appears that was not bought¶
Enabling a flag is a technical act; it is not a purchase. If a module is enabled that the customer is not entitled to, that is a configuration error to correct, not a windfall — and correcting it after users have begun relying on it is considerably harder than not enabling it.
Verify entitlement before enabling a module, not after a user asks for it.
Renewals¶
| Item | Lead time |
|---|---|
| Complifly licence renewal | Per the agreement |
| GSP agreement renewal | Involves a third party; start early |
| Provider credentials | Expire independently of the agreement |
Provider credentials are the trap. They can expire while the commercial agreement is perfectly current, and their expiry stops all government operations without warning. Track the credential expiry separately from the contract date.
Seeing your plan in the product¶
A company administrator can see their position without calling the API: the Plan & Set-up tab shows the plan, the subscription term and renewal date, and usage against each limit in the agreement, plus how far set-up has got. It is read-only and shows only your own company. Reaching a limit is information; it never stops work. If the tab says no commercial record has been set up, ask your Complifly contact. Changing a plan, licence or entitlement is done by Complifly, not from this tab.
Validation¶
| Check | Pass condition |
|---|---|
| Entitlement record exists | Written down, outside the application |
| Configuration matches entitlement | Modules, registrations, users and environments all within |
| Provider volume tracking to plan | Reviewed monthly |
| Renewal dates known and owned | Both Complifly and the provider |
| Credential expiry tracked separately | Not conflated with the contract date |
| Reconciliation is scheduled | Part of the monthly review |
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
| A module a user expected is absent | Not licensed, or not enabled for that registration | Check entitlement first, then the flag |
| User count exceeds entitlement | Accounts created and never disabled | Disable departed users. That is also the security position |
| A registration cannot be added | The company is suspended or archived (409 TENANT_SUSPENDED / TENANT_ARCHIVED), or an ERP key's plan allows a fixed number of GSTINs (403 GSTIN_LIMIT). The product reports registrations against any limit Complifly has set for your PAN (Commercial API) but never refuses a registration for exceeding one — that is a contract matter, not something it enforces |
Check Company Status first, then the key's plan; a contract question is a commercial conversation |
| Provider bill above expectation | Volume above plan, or a polling read | Review the calling pattern first |
| Government operations stopped despite a current contract | Provider credentials expired, not the agreement | Track credential expiry separately |
| Nobody knows what was bought | Complifly has no licence or entitlement recorded for your PAN, or you hold no copy of the contract | Read GET /api/commercial/status; if the licence is NONE, ask Complifly to record it. Only a Complifly Super Admin can |
| A module was enabled that was not purchased | Configuration error | Correct it before users depend on it |
Related Articles¶
- Modules and Licensing — what each module covers
- Feature Flags — how modules are enabled
- Monthly Checks — where reconciliation sits
- Commercial and Statutory Prerequisites