Billing software looks simple until you meet Indian tax rules. The invoice layout is the easy part; the compliance logic underneath is where projects overrun, and where getting it wrong creates problems that surface months later during filing.
A note before we start: this article covers what billing software must do technically. GST rules change regularly and applicability varies by turnover, state, and sector. Treat this as engineering guidance and confirm your specific obligations with your chartered accountant.
What a GST invoice must contain
These are not optional fields. Missing any of them can invalidate the invoice for your customer's input tax credit — which is how you find out, angrily, from your customer:
- Supplier name, address, and GSTIN
- A unique, sequential invoice number (per series, per financial year)
- Date of issue
- Recipient name, address, and GSTIN where registered
- Place of supply — this determines which tax applies
- HSN or SAC code per line item
- Description, quantity, unit, and taxable value per line
- Tax rate and amount, split correctly into CGST/SGST or IGST
- Whether tax is payable on reverse charge
- Signature or digital signature
The logic that actually causes bugs
Intra-state versus inter-state
The single most common defect in home-grown billing systems. The rule depends on place of supply versus supplier location — not on the customer's billing address, which is what naive implementations use.
| Scenario | Tax applied |
|---|---|
| Supplier and place of supply in same state | CGST + SGST (split equally) |
| Supplier and place of supply in different states | IGST (full rate) |
| Exports / SEZ supply | Zero-rated, with or without LUT |
Rounding
Tax is computed per line item, and rounding at the wrong stage produces invoices that are off by a rupee — which reconciliation will flag every time. Decide explicitly where rounding happens and apply it consistently.
Invoice numbering
Numbers must be sequential and unique within a series for a financial year, with no gaps. This has an important architectural consequence: you cannot delete an invoice. Cancellation and credit notes are the correct mechanism, and building delete functionality is a compliance mistake.
Design rule that saves pain later: make invoices immutable once issued. Corrections happen through credit and debit notes that reference the original. Systems that allow editing issued invoices create reconciliation problems that are extremely tedious to unwind.
E-invoicing and e-way bills
Above certain turnover thresholds, invoices must be registered with the government portal before being issued to the customer:
- Generate the invoice in your system in the prescribed JSON schema.
- Submit to the IRP via a GST Suvidha Provider or direct API access.
- Receive the IRN and signed QR code back from the portal.
- Print the QR code on the invoice — an invoice without it is not valid where e-invoicing applies.
- Handle failures gracefully The portal has downtime. Your system needs a retry queue, not a crash.
E-way bills follow a similar flow for goods movement above value thresholds, with vehicle details and validity periods that depend on distance.
Build or buy?
Buy off-the-shelf when
- Your billing is standard for your sector
- You want compliance updates handled for you
- Team size keeps per-user pricing reasonable
- You need it working this month
Build custom when
- Pricing or discount logic is genuinely unusual
- Billing must live inside a larger system you run
- You need deep integration with production or inventory
- Per-seat costs have become significant
Buying compliance is usually cheaper than building it — because the vendor absorbs the cost of every rule change, forever.
That last point deserves weight. GST rules change, and a custom system means you pay for every update. Factor ongoing compliance maintenance into any build-versus-buy comparison, not just initial development.
If you do build
- Store tax rates with effective-from dates so historical invoices stay correct when rates change.
- Keep a full audit trail of who created, cancelled, or amended what.
- Export in the formats your CA needs for GSTR-1 and GSTR-3B.
- Build reconciliation reports comparing your books against portal data.
- Support multiple invoice series if you operate across states or verticals.
- Back up relentlessly — invoice data must be retained for years.
Building billing into a larger system, or replacing something that no longer fits? Tell us about your workflow. See also custom vs off-the-shelf and our payment gateway guide.