Filing, period close & statutory reports
The obligation calendar
Obligations are generated from your active registrations crossed with rolling periods. Each one carries its statutory frequency, due date and reporting currency.
India
| Return | Monthly filer | QRMP filer |
|---|---|---|
| GSTR-1 | 11th of the following month | 13th of the month following the quarter |
| GSTR-3B | 20th of the following month | 22nd (Category X states) or 24th (Category Y states) |
| GSTR-9 | — | 31 December following the financial year (April–March) |
The Category X / Category Y split is why jurisdiction normalisation matters: an unnormalised state string falls through to Category Y and moves the due date by two days — a missed statutory deadline, not a display bug.
Other regimes
| Regime | Due date |
|---|---|
| UK VAT | One month and seven days after the period end |
| EU OSS | End of the month following the quarter |
| US sales tax | 20th of the following month (state variations apply) |
Due dates are not shifted for weekends. That is statutorily correct — the statute says the date, not the next business day. Government extensions are handled by a due-date override on the period, which the calendar honours.
The five-step close
| Step | What it does |
|---|---|
| Compute | Every order in the period has a computation. Backfill historical periods here |
| Reconcile | Discrepancies in your blocking set are cleared |
| Prepare | Snapshots the liability, due date and FX rates for the period |
| Finalize | Locks the period. Requires the gate to pass and a second person |
| File | Record the filing reference and acknowledgement, or e-file directly |
Prepare-all runs the prepare step across every open obligation at once, which is how a multi-state Indian merchant starts a month.
Safe-to-file gating
The gate answers "is it safe to file this?" and separates blockers from warnings.
| Blocker | Why |
|---|---|
| Open reconciliations | In your policy's blocking set |
| Report not generated | A statutory return must exist before the period can be closed |
| Invalid registration | The tax ID does not validate |
| Missing buyer GSTIN on B2B (India) | B2B invoices without a counterparty GSTIN are rejected at the portal |
| Invalid or short HSN (India) | HSN codes missing or below the required digit count |
| Open blocker queries | An accountant query marked as blocking |
| Warning | Why |
|---|---|
| No registration for a jurisdiction with activity | You may have a nexus obligation |
| Unregistered supplies present | Tax charged where you are not registered |
| Unmapped products | Fallback tax classification was used |
| Outstanding balance | The portal will require payment before filing |
The report-readiness check is scoped to the specific jurisdiction, so a state-27 return cannot satisfy the gate for state-29's period.
Nil periods skip the artefact checks — but declaring nil is itself guarded: a period with computed tax, or one already filed, cannot be marked nil.
Statutory reports
| Report | Regime | What it is |
|---|---|---|
| GSTR-1 | India | Outward supplies — B2B, B2C large, B2C small, credit and debit notes, HSN summary |
| GSTR-3B | India | The summary return, including reverse-charge |
| GSTR-9 | India | Annual return |
| Sales register | India | The invoice-wise Excel your accountant validates before GSTR-1 |
| VAT OSS | EU | One-stop-shop return |
| UK 9-box | UK | The standard VAT return boxes |
| US nexus | US | Nexus and liability by state |
The sales register
The sales register is the accountant's working document: one row per invoice, with buyer name, buyer GST number, state and country, taxable value, and the CGST, SGST and IGST percentages and amounts split out.
Where an invoice carries a single tax slab the percentages are the clean statutory figures; where it mixes slabs they are blended — and either way the amounts reconcile exactly to the total. Zero-rated and exempt supplies appear with nil GST, and refunds appear as negative credit-note rows.
Credit notes are split, not netted
GSTR-1 places credit notes in their own tables rather than netting them into the invoice tables, while the summary and HSN sections net them. That is what the portal expects — and it is why the HSN table must net them too. An HSN section built from positive values only will not reconcile against the return's own summary, and the portal's cross-check rejects it.
Pre-file validation
Before you file, two validators run over GSTR-1:
- HSN validation — flags missing, unspecified or too-short HSN codes
- B2B GSTIN validation — flags counterparty GSTINs that do not match the 15-character structure
Both surface as gate blockers rather than as portal rejections a day later.
Export formats
Every report renders from a single view model into:
| Format | Use |
|---|---|
| Excel | The accountant's working copy — real multi-sheet workbooks |
| A filing summary for records | |
| CSV | Sectioned, with every section present |
| JSON | Machine-readable |
| Portal | GSTN offline-utility, HMRC MTD and EU OSS shapes |
Reports are versioned: generating again supersedes the prior version rather than overwriting it, and each version carries a content hash and the currency it was rendered in. Every download is written to the audit log.
CSV exports are guarded against formula injection while leaving plain numbers
untouched, so a value beginning with = cannot execute when the file is opened
in a spreadsheet.
Payments, amendments and books
| Feature | What it does |
|---|---|
| Payment ledger | Record remittances against a period; the outstanding balance is what the gate checks |
| Amendments | Post-close adjustments open an amendment period rather than reopening a filed one |
| Book reconciliation | Compare the return against your accounting system — manual, with adapters for Xero, QuickBooks, Tally and Zoho |
| Late charges | For India, section 50 interest and section 47 late fees are estimated on the net cash shortfall after input tax credit, not on gross output tax |
Recording a filing requires an acknowledgement reference, and a period with an outstanding balance cannot be marked filed on a payable return — because the portal itself enforces pay-before-file.
Input tax credit and e-invoicing
| Feature | What it does |
|---|---|
| GSTR-2B import | Import your input tax credit statement from CSV; available versus blocked credit is summarised |
| Consistency check | Compares GSTR-1 against GSTR-3B box by box, within a ₹1 tolerance |
| E-invoice registry | Import your IRN registry and reconcile it against B2B supplies, reporting coverage and flagging un-invoiced B2B |
An import that parses to zero usable rows is refused rather than applied — a CSV with unrecognised headers would otherwise wipe the period's ledger and turn into a false under-claim.
Accountant workflow
| Feature | What it does |
|---|---|
| Assign a reviewer | Route a period to your accountant |
| Query thread | Raise and resolve questions against the period |
| Sign-off | Name plus professional membership number, recorded on the period |
| Buyer GSTIN directory | A counterparty registry with CSV import, matched onto invoices at report time |
The buyer GSTIN directory enriches reports at generation time by matching on customer ID, then email, then legal name. It never rewrites the immutable computation — enrichment is a reporting-layer concern.
Sign-off requires a finalised period with no open blockers.
Portfolio view
For merchants filing in several jurisdictions, the portfolio header gives an FX-normalised roll-up: how many periods are closed out of how many, total outstanding, and late exposure broken down by state.
Evidence packs
One click produces a ZIP containing a manifest, the generated reports, and CSVs of the period's computations, reconciliations, payments and audit entries.
This is the artefact you hand to an auditor. It is generated from stored data rather than recomputed, so it reflects what was actually filed.
Plan tiers
| Capability | Free | Starter | Pro | Agency | Enterprise |
|---|---|---|---|---|---|
| Obligation calendar and close | — | — | ✓ | ✓ | ✓ |
| Safe-to-file gate | — | — | ✓ | ✓ | ✓ |
| Statutory reports, all formats | — | — | ✓ | ✓ | ✓ |
| Payments, amendments, book reconciliation | — | — | ✓ | ✓ | ✓ |
| ITC import and consistency check | — | — | ✓ | ✓ | ✓ |
| E-invoice reconciliation | — | — | ✓ | ✓ | ✓ |
| Accountant review and sign-off | — | — | ✓ | ✓ | ✓ |
| Evidence packs | — | — | ✓ | ✓ | ✓ |
| Multi-jurisdiction portfolio | — | — | ✓ | ✓ | ✓ |
Best practices
- Prepare early in the month, not on the due date. Prepare snapshots the liability and FX rates; doing it late means diagnosing a blocked gate under time pressure.
- Generate the sales register before GSTR-1. It is the document your accountant will actually check, and errors are cheaper to find there.
- Import GSTR-2B every period. Without it, the credit side of the return is a guess.
- Never mark nil to get past the gate. It is guarded, and the guard is there because filing real liability as nil is a serious matter.
- Keep the evidence pack. Regenerating one years later is possible; having it at the time is better.
See also
- Reconciliation — the gate's biggest input
- Registrations & nexus — what generates your obligations
- Direct GSTN e-filing — filing without leaving the app
- Tax overview — the engine underneath