TL;DR
Close GSTR-1 in roughly an hour with one fixed sequence: lock the period, reconcile the sales register to the GL, match IRNs from the NIC portal, classify every invoice by table, run the place-of-supply audit, verify the preview's three totals, file the JSON, then tag the close with the ARN.
Every month, between the 1st and the 11th, every CA firm in India runs the same exercise across every client. GSTR-1 for the previous month has to close. The data has to come out of the accounting system, reconcile internally, match the IRN portal, and land in the GSTN return without errors.
In a well-run practice, this takes an hour per client. In a poorly organised one, it takes three days. The difference is rarely the software. It's the sequence.
Here's the sequence we use. Eight steps. Roughly sixty minutes when the books are clean. Up to four hours when they're not.
Before the month closes — the prep (5 minutes)
On the last day of the month, do two things. They don't cost time in the moment and they save hours later.
- Lock the period in your accounting system.No new voucher should land in the previous month after the close. If your product allows period-lock, use it. If it doesn't, switch to one that does.
- Run a quick HSN summary. Eyeball the HSN codes used this month. If a new SKU appeared with a wrong or missing HSN, it will show up in GSTR-1 Table 12 and trigger a notice. Catch it now, not on the 11th.
Step 1 — Reconcile the sales register to the GL (10 minutes)
Pull the sales register for the month. Total it. Pull the credit-side balance of every sales ledger for the same month. They should match.
If they don't, the gap is almost always one of three things:
- A sale was posted to a non-sales ledger by mistake
- A credit note was netted off in the register but is on a separate ledger
- A GST-only entry was passed for tax adjustment, hitting Output GST without a corresponding sale entry
Fix the gap before you do anything else. GSTR-1 reconciles to the sales register, not to the GL. If those two don't match, every subsequent step will lie to you.
Step 2 — Pull the IRN-generated list (5 minutes)
For clients above the e-Invoice threshold (₹5 crore aggregate turnover), pull the list of IRNs generated on the NIC portal for the month. Match the count to your accounting register.
If 142 invoices were issued and 140 have IRNs, two are missing. Either:
- They were B2C — no IRN needed (verify the customer GSTIN is blank)
- They were B2B but the IRN generation failed — must be generated before filing
The without-IRN B2B invoice is the most common cause of a Table 6A mismatch in GSTR-1. Catch it here.
Step 3 — Classify supply types (5 minutes)
Every invoice belongs to a GSTR-1 table. Taxable goes to Table 4 or 5. Nil-rated, exempt, non-GST go to Table 8 (with three sub-rows). Exports go to Table 6A. SEZ supplies to Table 6B.
In a well-set-up accounting product, this classification happens at voucher entry — a Supply Type radio. In a less-set-up one, you do it now. Either way, the question to ask: is every invoice tagged?
Step 4 — Place of supply audit (10 minutes)
This is where most returns silently break.
For each B2B invoice, place-of-supply (POS) drives whether CGST+SGST or IGST applies. If POS = company state, intrastate. If POS ≠ company state, interstate. If a sale was booked against the wrong sales ledger — Sales — Local for an interstate transaction, or vice versa — GSTR-1 will show the right tax but the wrong table. The B2 table breakdown gets corrupted.
Filter the sales register by sales ledger. For “Sales — Local,” every row should have POS = company state. For “Sales — Interstate,” every row should have POS ≠ company state. If any row breaks the rule, that voucher is wrong.
Better-designed accounting products refuse this kind of post in the first place. (We built ours to refuse it — here's how the sales-ledger mismatch detector works, and the same logic on the sale voucherscreen.) If yours doesn't, manual audit is the only fix.
Step 5 — Generate the GSTR-1 preview (5 minutes)
Inside your accounting product, generate the GSTR-1 preview for the month. Don't file yet. Check three numbers:
- Total taxable value across tables 4, 5, 6A, 6B, 7 and 8 — should equal your sales-register total
- Total tax (CGST + SGST + IGST + Cess) — should equal the output tax credits in your GL
- Invoice count in tables 4 and 5 — should match the number of B2B and B2C-large invoices issued
If any of these three numbers is off, do not file. Go back to step 1.
Step 6 — Cross-check with 2A drafts at the buyer (10 minutes for B2B-heavy returns)
If a major customer typically reconciles their 2A against your GSTR-1, run a quick consistency check. Their 2A is built from your return. If their reconciliation is critical (large invoices, litigation history, RBI-regulated client), email them a draft of what you're about to file. It buys goodwill and prevents a post-filing dispute.
Skip this step for routine clients. Use it for the relationships that matter.
Step 7 — Generate the JSON and file on the portal (5 minutes)
Generate the filing-ready GSTR-1 JSON from your accounting product, upload it to the GSTN portal, and submit. Once you have the ARN, save it back against the period in your books. Recording the ARN against the period gives you a timestamp and prevents the “was it filed” question three days later.
Note the ARN. Save it. The world after filing is the world before the next return.
Step 8 — Tag the close (5 minutes)
Post a memo voucher in your accounting system: “GSTR-1 for [month] filed. ARN: ___. Total: ___.” Date it the 11th. This single memo is what an audit asks about three years later.
Period-lock the month after filing. Nothing should post into a closed period.
The three places returns most often get stuck
- Sales-ledger mismatch (step 4). The fix is a voucher correction — cancel the wrong voucher, post a fresh one against the right ledger.
- Missing IRNs(step 2). The fix is generating the IRN before filing. Most accounting products can re-trigger; some can't.
- GL-to-register mismatch(step 1). The fix is the most time-consuming — track down the GST-only adjustment entries that aren't in the sales register.
A well-set-up accounting product solves the first two at posting time, not at filing time. The third is the discipline of one rule: never pass a GST-only adjustment without a corresponding sales or purchase entry. Train your articles on this and the close-day becomes the sixty-minute exercise it's supposed to be.
Filing GSTR-1 is only the outward half of the month. Once it's in, the inward side begins: reconciling your purchase register against GSTR-2B before the GSTR-3B due date on the 20th. If that reconciliation never quite ties out, we walk through the seven root causes of a GSTR-2B mismatch next.
— Ayush