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.
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. 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