GSTR-2A vs GSTR-2B: The Complete Reconciliation Guide
GSTR-2A and GSTR-2B don't always match, and only one of them is what the law recognizes for your ITC claim. Here's the difference, why they diverge, and a reconciliation format you can actually use.


Words by
Nimisha Chanda
Every finance team that has ever prepared a GSTR-3B has run into the moment when the ITC number in GSTR-2A doesn't match the ITC number in GSTR-2B, and someone has to decide which one to trust. The two documents sound interchangeable. But they aren't. Only one of them is the number the law actually recognises for your ITC claim, and the gap between them is where most reconciliation time gets lost every month.
What GSTR-2A Is
GSTR-2A is a dynamic, auto-populated statement that tracks every inward supply reported against your GSTIN, pulled from your suppliers’ GSTR-1, GSTR-5, GSTR-6, GSTR-7, and GSTR-8 filings. It updates continuously through the month. The moment a supplier uploads or amends an invoice, it shows up in your GSTR-2A, whether that happens on the 3rd or the 29th.
That real-time behaviour is also its limitation. GSTR-2A is a mirror of supplier activity, not a fixed statement. It carries no cutoff, no eligible/ineligible split, and no legal standing for what you’re allowed to claim. It’s just a tracking document.
What GSTR-2B Is
GSTR-2B is a static, auto-drafted ITC statement generated once a month, on the 14th, for every regular taxpayer. It draws from the same supplier filings as GSTR-2A but locks the data to a fixed window: for monthly filers, invoices reported between the 12th of the previous month and the 11th of the current month. Once generated, that snapshot doesn’t move, and CBIC has been explicit that GSTR-2B is the statement to use for eligible ITC.
GSTR-2B also does something GSTR-2A doesn’t: it segregates ITC into eligible and ineligible categories, and it pulls in import and SEZ data from ICEGATE. One caveat worth knowing if your last GSTR-2B read felt outdated: since the Invoice Management System (IMS) rollout, the 14th-of-the-month version is technically a draft. If you accept, reject, or hold invoices in IMS after that date and before filing GSTR-3B, GSTR-2B needs to be recomputed.
GSTR-2A vs GSTR-2B - The Difference, at a Glance
The short version: GSTR-2A tells you what your suppliers have filed. GSTR-2B tells you what you’re legally allowed to claim. Everything else follows from that one distinction.
Feature | GSTR-2A | GSTR-2B |
|---|---|---|
Nature | Dynamic, continuously updated | Static, fixed once generated |
Generation | Real-time, as suppliers file | Monthly, on the 14th (draft, refined via IMS before GSTR-3B) |
Source returns | GSTR-1, GSTR-5, GSTR-6, GSTR-7, GSTR-8 | GSTR-1, GSTR-5, GSTR-6 + ICEGATE import data |
ITC segregation | No eligible/ineligible split | Split into eligible, ineligible, and reversal categories |
Cutoff period | None; changes as filings happen | 12th of prior month to 11th of current month (monthly filers) |
Legal basis for ITC | No | Yes |
Primary use | Supplier tracking and follow-up | GSTR-3B ITC claim |
Which One Do You Actually Use to Claim ITC?
GSTR-2B. Since the removal of provisional ITC under the old Rule 36(4), ITC should be claimed only when it’s communicated through GSTR-2B and is otherwise eligible under the GST Act. If an invoice sits in GSTR-2A but hasn’t made it into GSTR-2B yet, it isn’t claimable this period, regardless of how confident you are that the supplier will eventually file it.
That doesn’t make GSTR-2A irrelevant. It’s the operational layer sitting in front of GSTR-2B. Because it updates in real time, GSTR-2A is what tells you, mid-month, that a vendor hasn’t filed yet, so you can chase them before the cutoff instead of discovering the gap after GSTR-2B has already locked. Treat GSTR-2A as your early-warning system and GSTR-2B as your source of truth. Teams that only look at GSTR-2B find out about missing invoices a month too late; teams that only look at GSTR-2A end up claiming credit the law doesn’t recognize yet.
Why GSTR-2A and GSTR-2B Numbers Don’t Match
A mismatch between GSTR-2A and GSTR-2B is the expected outcome of one document being a live feed and the other being a fixed cutoff. The gap almost always traces back to one of four causes.
Late supplier filing, after the 2B cutoff. This is the most common cause by a wide margin. If a supplier files their GSTR-1 for June after the 11th of July, that invoice appears in your GSTR-2A for June immediately, but it won’t show up in GSTR-2B until the July cycle. Your books show the purchase in June but your ITC claim lands in July. Multiply this across dozens of vendors with inconsistent filing habits and the monthly variance stops being a rounding error.
Amendments filed in a later period. If a supplier corrects an invoice value, tax rate, or GSTIN in a subsequent month’s GSTR-1, GSTR-2A reflects the correction as soon as it’s filed. GSTR-2B doesn’t retroactively update the earlier period; the amendment flows into the GSTR-2B of whichever period the amendment itself was filed in. This creates a timing gap between when you see the correction and when it’s actually usable for ITC.
Credit notes not yet reflected. A credit note issued by a supplier reduces your eligible ITC, but only once it’s filed and lands in a GSTR-2B cutoff window. Until then, your GSTR-2A may still show the original invoice value, while your books have already been adjusted for the credit note internally, or vice versa. Either direction produces a mismatch that has nothing to do with either document being wrong.
Supplier filing under the wrong period. Suppliers occasionally report an invoice against the wrong tax period, either by error or because they’re catching up on a backlog. GSTR-2A shows the invoice the moment it’s filed, tagged to whatever period the supplier used. GSTR-2B then places it wherever the cutoff dates say it belongs, which frequently isn’t the period you or the supplier expected.
None of these four causes are fixable by staring harder at the numbers. They’re fixable by knowing which invoices fall into which bucket, which is exactly what a structured reconciliation format is for.
A Reconciliation Format You Can Actually Use
Most guides on this topic describe reconciliation in the abstract: match your purchase register against GSTR-2B, flag the differences, follow up with suppliers. What they don’t give you is the actual sheet. Here’s a column structure that works, along with a worked example so you can see how it behaves on a real mismatch.
Column structure:
Column | What it captures |
|---|---|
Invoice number | The supplier’s invoice reference |
Supplier GSTIN | For matching against the correct vendor |
Purchase register amount | ITC as per your books |
GSTR-2A amount | ITC as currently reflected in GSTR-2A |
GSTR-2B amount | ITC as reflected in the locked GSTR-2B for the period |
Variance | GSTR-2B amount minus purchase register amount |
Status | Matched / In 2A only / In 2B only / Not in either |
Action needed | Claim now / Hold for next period / Follow up with supplier / Reverse |
Worked example
Say your purchase register for June shows three invoices from a single vendor, GSTIN 27AABCU9603R1ZM:
Invoice | PR amount | 2A amount | 2B amount | Variance | Status | Action |
|---|---|---|---|---|---|---|
INV-2201 | ₹42,000 | ₹42,000 | ₹42,000 | ₹0 | Matched | Claim now |
INV-2214 | ₹18,500 | ₹18,500 | ₹0 | -₹18,500 | In 2A only | Hold for next period |
INV-2229 | ₹9,200 | ₹0 | ₹0 | -₹9,200 | Not in either | Follow up with supplier |
INV-2201 is clean; claim it in June’s GSTR-3B. INV-2214 was filed by the supplier after the June cutoff, so it’s sitting in GSTR-2A but hasn’t reached GSTR-2B yet; it’ll likely clear in July’s GSTR-2B, so hold the claim rather than force it early. INV-2229 doesn’t appear in either statement, which means the supplier hasn’t filed it at all. Running this format against every vendor, every month, turns “the numbers don’t match” into a short, prioritised action list instead of an open-ended investigation.
Due Dates and Filing Windows That Affect Both
GSTR-2B’s cutoff is what makes the mismatch predictable. For monthly filers, GSTR-2B for a given tax period is generated on the 14th of the following month and includes invoices filed by suppliers between the 12th of the previous month and the 11th of the current month. For QRMP suppliers filing quarterly, the window shifts to the 14th of the relevant month through the 13th of the following month.
The practical implication: a supplier who files on the 12th, gets his invoice pushed into an entire additional filing cycle before it becomes claimable ITC. If your team is only checking GSTR-2B after it’s generated, you’re finding out about this a month too late to do anything except wait. Vendor follow-up needs to happen before the 11th, using GSTR-2A as the visibility layer, not after the 14th once GSTR-2B has already locked the gap in.
Where Manual Reconciliation Breaks Down
The column structure above works cleanly for one vendor with three invoices. It stops working somewhere between fifty and a few hundred vendors, which is where most mid-market and enterprise finance teams actually operate.
At that scale, the failure is mechanical. Someone has to export GSTR-2A and GSTR-2B separately, match them against the purchase register by invoice number and GSTIN, catch the cases where a supplier used slightly different invoice numbering across periods, and repeat the whole exercise every single month against a moving set of vendors. A single missed match doesn’t just cost the ITC on that invoice; it costs the hours spent finding it, and the interest exposure if the mismatch surfaces during a GSTR-9 filing instead of a monthly cycle.
The specific ways it breaks, a supplier who systematically under-reports, a Rule 42/43 reversal that never gets tracked, or a GSTR-1 and GSTR-3B mismatch nobody catches until the annual return, are worth their own detailed treatment. What matters here is the underlying pattern where manual reconciliation scales linearly with vendor count, and vendor count only moves in one direction.
Reconciling GSTR-2A against GSTR-2B by hand works until your vendor list stops fitting in a single spreadsheet tab; Nova exists for the point after that.


