Modules and Licensing¶
Applies to: All subscriptions
Purpose¶
Describe the modules Complifly offers, what each one covers, and the mechanism that decides whether a module appears for a given GSTIN. This page answers the single most common early support question: "we bought it, so why can't I see it?"
Audience¶
Project sponsors, implementation consultants, system administrators. Anyone scoping a contract or diagnosing an absent screen.
Prerequisites¶
Reference¶
The modules¶
| Module | Covers | Typical owner on the customer side |
|---|---|---|
| e-Invoice | IRN generation and cancellation, signed QR, compliant printing, status tracking, reporting-window control | Indirect tax / finance operations |
| e-Way Bill | Bill generation from an IRN or from a standalone document, Part-B vehicle updates, validity extension, cancellation, rejection of other-party bills, consolidated bills, multi-vehicle movement | Logistics / dispatch |
| Invoice Generation (IGM) | Raising invoices, credit and debit notes inside Complifly; customer and item masters; numbering series; approval workflow; a receivables subledger and general ledger with period close and year-end | Finance / accounts receivable |
| TDS | Deduction capture, challan management, return preparation and validation, certificates, notice tracking, rate resolution | Direct tax team |
| Data Privacy (DPDP) | Consent notices and versions, consent capture and withdrawal, grievance handling, evidence packs, an audit ledger, and connector or webhook integrations for downstream systems | Data protection officer / compliance |
e-Invoice and e-Way Bill are the core. The other three are independent additions — a customer may license any combination.
How a module is switched on¶
Complifly enables capability per GSTIN, not per company and not per user. That distinction matters for any organisation with several registrations: a group can pilot the Invoice Generation Module on one registration while the rest of the group carries on unchanged.
Enablement works in two layers:
- A platform default. Every GSTIN starts from a default posture so a newly provisioned registration works immediately rather than being blocked until an operator switches on each flag by hand.
- An explicit per-GSTIN setting. Where present, this always wins over the default. Administrators set it from the permissions matrix in the admin console.
The defaults, and the reasoning behind each:
| Setting | Default | Why that default |
|---|---|---|
EINVOICE_ENABLED |
On | Core capability; the reason customers buy |
EWAYBILL_ENABLED |
On | Core capability |
RECONCILIATION_ENABLED |
On | Read-only analysis; no risk in having it available |
SOD_ENFORCED |
On | Segregation of duties is the safe default. Turning it off collapses maker and checker into one person — appropriate for a small business, a deliberate control decision everywhere else |
AUTO_IRN_ENABLED |
Off | Automation that fires an IRN on ingest without a human. A legal act with a cost; must be chosen, never inherited |
INVOICING_ENABLED (IGM) |
Off | A module unlock with legal consequence |
ERP_WRITEBACK_ENABLED |
Off | A module unlock with a cost and a data-egress consequence |
The three defaulting to off share a property: switching them on changes what the system does without a person present, or sends data outward. Those are decisions, not conveniences.
Plans¶
The plans are Starter, Growth, Enterprise and Custom. (Earlier material may mention Base, SMB or ERP plans; those names are retired.) A plan states which modules and how much of each limit it includes; a Custom customer's terms are set for that customer alone.
A plan's monthly volumes never stop a statutory document. If the number of e-invoices or e-way bills in a month goes past what the plan includes, Complifly keeps generating and cancelling them, records the overage, and alerts Complifly's commercial team. Your own usage against the plan is visible under Plan & Set-up. What the platform does limit is administrative growth: adding a user, a registration (GSTIN) or an ERP connection, and switching on an optional module, can be held to the plan once Complifly has chosen to apply it. Work already running on a registration is never held up by that limit.
Support by plan. Support is available from 10:30 to 18:00 IST. The level of service follows the plan:
| Plan | Support level |
|---|---|
| Starter | Standard SLA |
| Growth | Priority SLA |
| Enterprise | Enhanced SLA |
| Custom | Custom SLA, as agreed in the customer's contract |
The response and escalation targets of each level are set out in the SLA you are contracted on; this portal does not restate them.
Four commercial rights are recorded against a customer's plan but are not yet switches: Data Privacy (DPDP), the assisted tier of Compass, Multi-GSP, and the number of ERP connections. Recording that a plan includes one of them does not turn the module on or off. Turning it on for a registration is still done in the permissions matrix, described above. The first three are rights only; the number of ERP connections is also a limit that is counted and reported against what the plan says, never enforced by refusing a connection.
Verify: How modules map to commercial packaging — which are separately licensed, and whether enabling a flag has a billing consequence — is not derivable from the platform. What each plan includes is being finalised and is published only after commercial approval; until it is, a plan states no contents. The platform records a customer's licence and entitlements (Commercial API) but does not tie them to these flags. Confirm with your Complifly contract. Recorded as assumption D1 in the Assumptions Register.
Two properties worth knowing before you plan¶
Write-back is enforced at emission, not at delivery. A tenant with write-back off does not store a single outbound event. That means there is nothing to purge, index, back up or explain — but it also means turning it on does not backfill history. Emission starts from the moment it is enabled. Seeding an ERP with existing compliance state is a separate, explicit exercise.
Module help is downloaded only by tenants who have the module. Documentation for a module is packaged separately from the core, so a tenant without the module never receives its help content. An absent module is therefore absent everywhere, consistently — which is why "the screen is missing and so is its help" is a normal symptom of a disabled module rather than a second fault.
Validation¶
After enabling or reviewing a module:
| Check | Expected result |
|---|---|
| The flag is set on the right GSTIN | The permissions matrix shows the module against each intended GSTIN — check every registration, not just the one you are signed in to |
| The change has taken effect | Flags are cached briefly for performance. Sign out and in, or wait one minute, before concluding it has not worked |
| The screen is reachable | The module's navigation entry appears and opens. A visible entry that errors is a different fault from an absent one |
| The role can use it | Module visibility and permission are separate gates. A user with the module enabled but without the permission still sees controls greyed out. See Roles and Permissions |
| Write-back, if enabled, is emitting | New documents produce outbound events. Older documents will not, and that is by design |
Troubleshooting¶
| Symptom | Cause | Action |
|---|---|---|
| Module licensed but no screen appears | Flag not enabled for this GSTIN | Set it in the permissions matrix for every GSTIN that needs it |
| Enabled, but still absent after refresh | Flag cache not yet expired | Wait one minute or re-authenticate. If still absent, confirm the flag was saved against the GSTIN and not the company |
| Screen appears but every button is greyed out | The user's role lacks the module's permissions | Fix the role assignment, not the flag. See Roles and Permissions |
| Write-back on, but the ERP receives nothing for old documents | Emission is not retrospective | Expected. Plan a separate seeding exercise. See Write-back API |
| Automation not firing after enabling IGM | AUTO_IRN_ENABLED is a separate flag from INVOICING_ENABLED |
Enable the specific automation deliberately |
| One GSTIN in a group behaves differently from the rest | Per-GSTIN settings diverged | Compare the matrix across all registrations; this is usually intended, occasionally an oversight |
Related Articles¶
- Feature Flags — the complete setting reference
- Module Configurations — setting up each module
- Roles and Permissions — the second gate
- Assumptions Register — commercial packaging is unconfirmed