GSTR-2B Reconciliation: How to Automate ITC Matching in 2026
By Akshit Agrawal, Co-founder, Bitvyas · Published 27 September 2026 · Facts as at 27 September 2026
A monthly filer gets six days. The draft GSTR-2B is made available on the 14th of the following month and GSTR-3B is due on the 20th, so the whole purchase-register-to-2B match has to fit between those dates, unless you start earlier in the Invoice Management System (IMS).
Automating it means one thing in practice: a rules engine that matches your purchase register against GSTR-2B on GSTIN, normalised invoice number, date, taxable value and each tax head, then sends every unmatched line back to the supplier before you file. The rest of this article is how to build that so it holds up at a real month-end.
Why does the spreadsheet version keep breaking?
Because five small problems repeat every month, and each one needs a person to look at it. In many finance teams and CA practices this is still work that happens by hand: download the GSTR-2B file, export the purchase register from Tally, Zoho Books or Busy, and VLOOKUP on invoice number.
- Invoice numbers do not match. Your books say
INV-4471. The supplier filedINV/4471,4471orINV-4471with a trailing space. The lookup returns#N/Aand someone checks it by eye. - The GSTIN is right but the name is not. One supplier appears under three ledger names after a registration change.
- Rounding. ₹1,00,000.00 in your books against ₹99,999.98 in 2B, because the supplier's software rounds line by line and yours rounds the invoice.
- Timing. The invoice sits in your March purchase register, but the supplier reported it after the March cut-off, so it lands in April's GSTR-2B. It is not missing. It is late.
- Volume. A few hundred lines a month is manageable. Forty GSTINs of a CA firm's clients is not.
None of these is hard. There are just too many of them to clear by hand in six days.
What did IMS change?
It moved reconciliation earlier. Before IMS, you reconciled against GSTR-2B after it appeared. Now you act on each invoice before GSTR-2B is built, and your actions decide what it contains.
GSTN's revised advisory on IMS sets out the three actions:
- Accept. The record goes into the "ITC Available" section of GSTR-2B and flows to GSTR-3B.
- Reject. The record goes into the "ITC Rejected" section.
- Pending. The record "will not become part of GSTR 2B and GSTR 3B" for that period. Pending is not allowed for some documents, including original credit notes.
Three rules from the same advisory matter most for automation.
The action window opens early. You can act "from the time of saving the records in GSTR 1 / IFF / 1A by the supplier" until you file your GSTR-3B. So matching can start on the 1st against IMS data, and the 14th becomes a checkpoint rather than a starting gun.
Late actions need a recompute. It is "mandatory to recompute GSTR 2B from IMS dashboard" if you change an action or take one after the 14th. A pipeline that pushes IMS actions after the draft is out must trigger the recompute and then re-read the new 2B. Otherwise you file 3B against a stale statement.
GSTR-2B is sequential. The system "will generate GSTR 2B of a return period only if GSTR 3B of previous return period is filed". Miss a month and the next 2B will not appear on the 14th. Your automation should raise an alert, not wait.
One later change: a GSTN advisory dated 8 October 2025 lets recipients keep credit notes pending for a limited period from the October 2025 tax period, and adjust any reversal against credit already taken. The same advisory says ITC continues to auto-populate from GSTR-2B to GSTR-3B as before.
Is ITC in GSTR-3B locked yet?
No. As of 27 September 2026, only Table 3 (outward liability) is hard-locked, since the July 2025 tax period. We found no GSTN advisory that locks Table 4 ITC. We set out the full record in what is actually hard-locked in GSTR-3B.
For reconciliation design, that means two things. The law already limits ITC to what reaches GSTR-2B (see below), so the match is not optional. And if a lock on ITC does arrive, a clean IMS routine is what you will need anyway.
The monthly timeline
| Date | What happens | What automation should do |
|---|---|---|
| 1st to 13th | Suppliers save and file GSTR-1 / IFF; records appear in IMS | Pull IMS daily, match against the purchase register, flag exceptions |
| 11th | GSTR-1 due for monthly filers | Chase suppliers whose invoices have not appeared |
| 13th | IFF due for QRMP suppliers; last records before the draft | Freeze the exception list; final supplier reminders |
| 14th | Draft GSTR-2B made available | Read 2B, run the full match, produce the three-bucket report |
| 15th to 19th | Review | Resolve exceptions, take IMS actions, recompute 2B if anything changed |
| 20th | GSTR-3B due for monthly filers (QRMP: 22nd or 24th, by state) | File |
The seven checks a reconciliation engine must run
This is the specification. If a tool skips any of these, someone is still doing that part by hand.
- Exact match. GSTIN + normalised invoice number + invoice date + taxable value + IGST, CGST, SGST and cess, within tolerance.
- Invoice-number normalisation. Strip spaces, slashes, hyphens, leading zeroes and case before comparing.
INV/4471,inv-4471and4471from the same GSTIN are one document. - Value tolerance. Treat a small variance (say up to ₹1 per tax head, configurable per client) as "matched with difference", not as a mismatch. Anything above it is a real exception.
- Period shift. Before calling an invoice missing, look for it in the neighbouring GSTR-2B periods. Most "missing" invoices were reported late, not never.
- In 2B, not in books. The reverse direction, and the one most often skipped. Each hit is either an unrecorded purchase or someone reporting supplies against your GSTIN that you did not receive.
- Eligibility. Carry GSTR-2B's eligibility information through, and keep blocked credits under section 17(5) out of the claim.
- Time limit. Under section 16(4), ITC on an invoice cannot be taken after 30 November following the end of the financial year, or the filing of the annual return, whichever is earlier. An invoice nearing that date needs escalation, not a row in a sheet.
The output should be three lists, not one file: matched (claim), matched with difference (claim and log the variance), and exceptions (hold and chase).
What does the automation actually consist of?
Four parts. None of them is a large engineering project on its own.
Ingest. GSTR-2B and IMS data, either by portal download (JSON or Excel) or through a licensed GSP/ASP connection. The purchase register from Tally, Zoho Books, Busy, Marg or whichever system the business runs.
Normalise. One schema for both sides: GSTIN, normalised invoice number, date, taxable value, four tax heads, document type and source. Many reconciliation failures are really normalisation failures.
Match. The seven checks above, in order, with tolerances set per client.
Act. This is where most tools stop, and where most of the time goes. Each exception has to become a follow-up: one message per supplier, listing that supplier's missing or mismatched invoices, with replies tracked against the exception. A CA firm with forty client GSTINs does not have a matching problem. It has a chasing problem. The same follow-up pattern applies well beyond GST, in collections and client document requests.
Build, buy, or keep it manual?
Scale decides it. For a single GSTIN with a few hundred purchase invoices a month, a good GST software package and a fixed monthly routine are usually enough. Custom automation pays for itself when you have several GSTINs, more than one accounting system, or a long supplier list, because then the follow-up loop, not the match, is the bottleneck. A human should still approve what gets claimed and what gets rejected in IMS. Automation prepares that decision; it should not make it.
What does getting it wrong cost?
- Late GSTR-3B: ₹50 per day (₹20 for a nil return), subject to caps that depend on turnover, per ClearTax's summary of the notified rates.
- Late payment of tax: interest at 18% a year under section 50.
- Credit claimed beyond GSTR-2B: section 16(2)(aa) allows ITC only where the supplier has reported the invoice and it has been communicated to you. A large excess over GSTR-2B triggers a Rule 88D intimation in Form DRC-01C, with seven days to pay or explain.
The cost that never shows up as a penalty is credit you cannot take because a supplier never reported the invoice. It appears as working capital that does not come back.
A rollout that works
- Run one month by hand, end to end, and write down every exception type you meet. That list is your specification.
- Automate ingest and normalisation first. Do not automate matching on dirty data.
- Add the seven checks and tune tolerances on three months of history.
- Add supplier follow-up last. It saves the most time, but automated chasing on a noisy exception list damages supplier relationships.
- Move the start of the cycle from the 14th to the 1st using IMS. Six days is survivable; three weeks is comfortable.
Frequently asked questions
When is GSTR-2B generated?
A draft GSTR-2B is made available on the 14th of the month after the tax period, provided the previous period's GSTR-3B has been filed.
Is GSTR-2B static?
Yes, once generated it does not change on its own, unlike GSTR-2A. But you must recompute it from the IMS dashboard if you take or change an IMS action after the 14th.
Can I claim ITC that is not in my GSTR-2B?
Not validly. Section 16(2)(aa) ties ITC to invoices the supplier has reported and that have been communicated to you. The portal does not block the claim at filing, but an excess can bring a DRC-01C intimation and, later, a demand with interest.
Why has my GSTR-2B not been generated?
Usually because the previous period's GSTR-3B is not filed. GSTR-2B generation is sequential.
Position verified against GSTN advisories and the CGST Act on 27 September 2026. This is general information, not tax advice for your specific facts.
Bitvyas builds AI that takes on the repetitive parts of finance work, reconciliation included, wired into the accounting systems you already run. See reconciliation and accounting and tax firms.
See it working
Keep reading
Still doing this by hand?
Bitvyas builds AI that takes this kind of work off your team. It reads the documents, does the matching and drafts the next step, inside the tools you already use. A person still approves anything that matters.
Tell us what your team repeats