To reconcile ITC, match your purchase register against GSTR-2B on supplier GSTIN plus invoice number, value and tax, then classify each line as matched, in-books-not-in-2B, in-2B-not-in-books, or value-mismatch. Claim ITC in GSTR-3B only for matched, 2B-reflected invoices, and follow up the rest.
Set up the data
- Download GSTR-2B (Excel/JSON) for the period from the portal.
- Export your purchase register from Tally/ERP for the same period.
- Standardise both: clean GSTIN, invoice number (trim spaces/case), invoice date, taxable value, IGST/CGST/SGST.
Match in Excel / Power Query
Build a matching key = GSTIN + normalised invoice number. In Power Query, merge the two tables on the key (full outer join) and compare tax amounts with a small tolerance for rounding. A simple Excel alternative is XLOOKUP/SUMIFS on the key, with a status column.
| Status | Logic |
|---|---|
| Matched | Key in both; tax within tolerance |
| In books, not in 2B | Key only in purchase register |
| In 2B, not in books | Key only in 2B |
| Value/tax mismatch | Key in both; tax differs |
Decide the ITC action
- Matched → claim ITC in GSTR-3B Table 4.
- In books, not in 2B → defer; chase the supplier to file/amend GSTR-1.
- In 2B, not in books → verify and book, or reject in IMS.
- Mismatch → reconcile to the correct figure; claim the eligible amount.
Remember the Section 16(4) time limit (30 November of the next FY) for parked credit.
Make it monthly
Save the Power Query steps so next month is one refresh. For the concepts behind this, see the GSTR-2B reconciliation guide; to automate the matching, use the GST Input Reconciliation tool.
The Excel/Power Query workflow, step by step
A reconciliation you can run in under an hour each month, using the tools most finance teams already have:
- Step 1 — Download: GSTR-2B Excel from the portal (generated on the 14th) and the purchase register from your ERP/Tally for the same period, plus 2-3 prior months (to catch late-reported invoices).
- Step 2 — Normalise in Power Query: trim GSTINs (stray spaces are the #1 false mismatch), standardise invoice numbers (strip prefixes/suffixes, leading zeros, case), convert dates to a common format, and round taxable values to the rupee.
- Step 3 — Create the match key: GSTIN + normalised invoice number + invoice date (with ±1 day tolerance) as the primary key; fall back to GSTIN + amount + month for near-matches.
- Step 4 — Merge queries both directions: 2B-to-register (left anti-join = in 2B but not booked: unbooked invoices or vendor errors) and register-to-2B (left anti-join = booked but not in 2B: vendor hasn't filed — ITC not available under Section 16(2)(aa)).
- Step 5 — Classify exceptions: exact match (avail), value mismatch within tolerance (avail, flag), vendor not filed (park — chase vendor), invoice not booked (book or reject), blocked category 17(5) (reverse/exclude).
Decision rules for the grey cases
| Case | Action |
|---|---|
| In 2B, goods not yet received (in transit) | Do not avail — Section 16(2)(b); defer to receipt month via Table 4(B)(2) mechanism |
| Booked, vendor filed late — appears in next month's 2B | Avail in the month it lands in 2B, not the invoice month |
| Vendor filed under wrong GSTIN (your other state) | ITC belongs to the state on the invoice — coordinate a credit-note-plus-reissue with the vendor |
| 2B shows credit note you dispute | Liability auto-reduces your ITC; raise with vendor immediately — the portal presumes acceptance |
| Vendor's registration retrospectively cancelled | High-risk ITC; assess Section 16(2) compliance evidence and provision for reversal |
Controls that make this audit-proof
Maintain a monthly reconciliation workbook (one tab per month, one summary tab) showing availed-vs-2B-vs-register with signed-off exceptions — this is the exact working the department asks for in ASMT-10 proceedings and the auditor asks for at clause 44 time. Track the vendor-not-filed ageing: payments to chronic non-filers should trigger contractual GST-withholding clauses. And close the loop annually: the cumulative 2B-availed figure must tie to GSTR-9 Table 8A/8B, with the November cut-off (Section 16(4)) as the hard stop for late claims. Vendors who cost you ITC are costing you 18% plus interest — the reconciliation is a procurement-quality metric, not just a tax control.
Scaling up: IMS and multi-GSTIN operations
The Invoice Management System (IMS) on the portal now lets you accept, reject or keep pending each supplier invoice before it enters GSTR-2B — shifting reconciliation from after-the-fact matching to invoice-level workflow. Practical adoption pattern: continue the monthly Power Query reconciliation as the control, and use IMS actions for the exceptions — reject clearly-wrong documents (duplicate invoices, another taxpayer's GSTIN), keep in-transit goods pending, accept the clean matches. For multi-GSTIN entities, run the reconciliation per registration but maintain a group-level dashboard: cross-charge invoices between your own GSTINs are the most frequently missed line (each state must both report and avail), and ISD distribution (mandatory for common input services from April 2025) adds a layer where the ISD's GSTR-6 must reconcile to each recipient's 2B. One rhythm worth institutionalising: the 2B lands on the 14th; the reconciliation, IMS actions, vendor chasers and the 3B ITC figure should all be done by the 17th — three days, every month, and the year-end 9/9C reconciliation becomes an aggregation exercise instead of an investigation.
Key takeaways
- Match on GSTIN + normalised invoice number; compare tax with tolerance.
- Four buckets: matched, in-books-only, in-2B-only, mismatch.
- Claim ITC only for matched, 2B-reflected invoices.
- Automate with Power Query; mind the Section 16(4) deadline.