How do I reconcile GSTR-2B for several GSTINs and consolidate the result?

Reconcile each GSTIN separately, its own GSTR-2B against its own purchase register, then stack the results in one consolidation sheet that has a column for your own GSTIN. The stacked sheet is where the value is: it exposes invoices booked in the wrong entity, which look like "missing from 2B" in one GSTIN and "not in books" in another, and no single run can show that.

A company with registrations in three states does not have one GSTR-2B problem; it has three, and they interact. ITC is tied to the registered person the invoice is communicated to and to that person's GSTR-2B, so credit that lands in another GSTIN's 2B is not credit in yours. The mistakes that cost money are therefore the ones that move an invoice between GSTINs, and they only show up when the runs are put side by side.

This page is one part of our GSTR-2B reconciliation guide, which shows how the whole process fits together.

This guide covers the setup, the consolidation sheet, the cross-GSTIN test and a worked three-state example. The legal side of branch transfers and ISD is in the multi-GSTIN and branch transfer guide; here the focus is the monthly working method.

Set up: one run per GSTIN, files named so they cannot be mixed

  1. Download every GSTIN's GSTR-2B for the same period. Each registration has its own statement, generated on the 14th of the following month for monthly filers. The download steps are in the Excel download guide; the full-year guide helps when you are catching up. The portal's Excel holds B2B, B2BA, CDNR and CDNRA.
  2. Export one purchase register per GSTIN. However your ERP separates branches, whether by company, branch or godown, the export must contain only that GSTIN's purchases. Export steps are in the guides for Tally Prime, Busy, Marg and Zoho Books.
  3. Name every file with your own GSTIN and the period. For example GSTR2B_27AAAPT1234C1Z5_092026.xlsx and REG_27AAAPT1234C1Z5_092026.xlsx (dummy GSTIN). Rename the portal download as soon as you save it; a folder of six files all called "GSTR2B" is how a Karnataka register gets matched against a Gujarat 2B.
  4. Keep a due-date column per GSTIN. Monthly filers file GSTR-3B by the 20th; quarterly filers by the 22nd or 24th depending on the state. If your GSTINs are not all on the same schedule, the same calendar day means different things for different entities.
Per GSTIN: download 2B → export register → run the match → save the CSV as RESULT_<GSTIN>_<MMYYYY> → paste into the Data sheet

The consolidation sheet

Use one workbook with a Data sheet and a Summary sheet. Paste each GSTIN's result under the last one. Keep the result's own columns in their original order and add your columns on the left and right.

ColumnHeadingComes from
A, BOur GSTIN, PeriodYou type them for every pasted block
C to LBucket, GSTIN, Supplier, Invoice No, Date, Taxable (Books), Tax (Books), Tax (2B), Diff, NoteThe result CSV, unchanged. The GSTIN column here is the supplier's.
MKeyFormula (below)
NTwin countFormula (below)
O, POwner, StatusYou: who chases it, and open or closed

The Key puts the supplier GSTIN and a cleaned invoice number in one cell, so the same document can be recognised whichever register or statement it came from. In M2 use =D2&"|"&UPPER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F2,"/",""),"-","")," ","")). This mirrors what a matcher must do with invoice numbers: ignore case, slashes, hyphens and spaces, which is why number formats decide most matches. Rule 46(b) allows numbers of up to 16 characters made of letters, digits, hyphen and slash, so all of those need handling. The tool also drops leading zeros; if a supplier numbers its invoices in digits only, strip the zeros in the Key as well, or a twin will be missed when only the zeros differ.

The Twin count asks: does this key appear under another of my GSTINs? In N2 use =COUNTIFS(M:M,M2,A:A,"<>"&A2). Filter N greater than 0 and you have every document that appears in two of your entities.

On the Summary sheet, one line per GSTIN and one column per bucket, using SUMIFS, for example the at-risk figure for the GSTIN in A2: =SUMIFS(Data!I:I,Data!A:A,$A2,Data!C:C,"Bucket C*")+SUMIFS(Data!I:I,Data!A:A,$A2,Data!C:C,"Bucket E*").

Check the Bucket D amounts before you sum them. In the CSV that gstr2bmatch.in exports (as of 30 Sep 2026), rows in "Bucket D - Only in 2B" show the 2B tax in the Tax (Books) column and leave Tax (2B) empty. For bucket D, sum column I (Tax (Books)), not column J (Tax (2B)). Test any tool's export this way before you build formulas on it.

The cross-GSTIN test

Once every GSTIN is pasted, filter the Data sheet for Twin count above 0 and sort by Key. Most twins fall into one of three patterns.

PatternWhat it meansFix
Missing or IMS-flagged in GSTIN X (bucket C or E), only in 2B for GSTIN Y (bucket D)The supplier billed Y, but the purchase went to X, or the bill was booked in the wrong registerDecide who received the goods (below)
Booked in two registersSame bill entered under two GSTINs. At most one is right.Delete the wrong voucher; the twin count clears
Matched in both GSTINsUsually a booking error, or two different supplier numbers collapsing into one key after cleaningOpen both supplier documents

For the first pattern the question is which GSTIN actually received the goods or services. Section 16(2)(b) makes receipt a condition of credit, and the delivery record answers it. If the goods came to X and the supplier billed Y, the supplier must amend the recipient GSTIN. GSTR-1A lets a supplier amend a record of the same tax period after filing GSTR-1 and before filing GSTR-3B. Until it is fixed, neither GSTIN can claim: X has no 2B line and Y did not receive the supply. If the goods came to Y and X's clerk booked it in the wrong register, move the voucher, and Y claims it as a normal 2B line. Ask your CA before you move credit or ask for a fresh invoice, because a change of GSTIN can change more on the invoice than the GSTIN itself.

Worked example: three states, one supplier error

A plastics trading company has registrations in Maharashtra (27), Gujarat (24) and Karnataka (29) under one PAN. All GSTINs are dummies. The September 2026 runs give the following, with each figure being tax in rupees.

GSTINBooks taxMatched (A)Value mismatch (B, books)At risk (C + E)Only in 2B (D)
27AAAPT1234C1Z5₹8,71,200₹7,92,000₹21,000₹58,200₹26,100
24AAAPT1234C1Z7₹5,31,000₹4,86,000₹0₹45,000₹9,000
29AAAPT1234C1Z1₹3,68,100₹3,24,000₹12,600₹31,500₹0
Group₹17,70,300₹16,02,000₹33,600₹1,34,700₹35,100

For each GSTIN, matched + value mismatch + at risk equals books tax: ₹16,02,000 + ₹33,600 + ₹1,34,700 = ₹17,70,300. Read alone, Maharashtra has ₹26,100 of purchases in the 2B that are not in its books and Gujarat has ₹45,000 at risk. The twin filter shows these are partly the same problem.

KeyGujarat runMaharashtra run
24AAAKP5678D1Z9|KP260917 (Kaveri Polymers, tax ₹26,100)Bucket C, in books, not in 2BBucket D, in 2B, not in books

The goods were received at the Gujarat warehouse, but the supplier reported the invoice against the Maharashtra GSTIN. So Maharashtra's ₹26,100 in bucket D is not a bill to add to its books, and ₹26,100 of Gujarat's ₹45,000 is not a supplier that failed to file; it is a wrong recipient GSTIN. Genuinely unbooked 2B lines across the group are ₹9,000 (Gujarat), and the remaining ₹18,900 in Gujarat and all of the ₹58,200 and ₹31,500 elsewhere are ordinary supplier follow-ups. Send the fix to the supplier:

Dear Kaveri Polymers accounts team, Your invoice KP/26/0917 dated 18 September 2026 (tax ₹26,100) has been reported against our Maharashtra GSTIN 27AAAPT1234C1Z5. The goods were ordered by and delivered to our Gujarat registration, GSTIN 24AAAPT1234C1Z7. Please amend the recipient GSTIN to 24AAAPT1234C1Z7 (through GSTR-1A if your GSTR-3B for September is not yet filed, otherwise as your CA advises) and confirm once done. Regards, Accounts team

Own-entity invoices and ISD credits

Keep a lookup of your own GSTINs and add a column that flags them, so group-level statistics do not treat a branch as an outside supplier. Credits distributed by an Input Service Distributor are a separate stream: from 1 April 2025 an office that receives invoices for input services on behalf of distinct persons must register as an ISD and distribute the credit. The tool lists ISD lines it finds in the 2B in an informational bucket and does not match them, so reconcile them against your distribution advice by hand.

A monthly order of work

Run all GSTINs on the same day, right after the 14th, and rank them by at-risk rupees so the biggest exposure is worked first. Give each open twin and each supplier chase an owner in column O. The working plan for the days before the 20th is in the 14th-to-20th timeline; a practice handling many clients faces the same pattern, covered in the CA firm guide.

Run one GSTIN at a time

The tool matches one GSTR-2B against one purchase register per run, on supplier GSTIN and invoice number. It does not know which of your GSTINs the files belong to and has no consolidation view, so use the naming rule and the sheet above. It reads the first sheet of your register file. Your GSTR-2B and purchase register files are read in your browser and never uploaded to any server.

Reconcile GSTR-2B →

Related guides

Last checked: 30 Sep 2026. Sources: CGST Act, section 16, CGST Rules, Rule 36(4) (notification 40/2021-CT), CGST Rules, Rule 46, GSTN GSTR-1A FAQ, GSTR-3B user guide, GSTN return user guide (GSTR-2B generation), GSTN FAQ on comparison of liability declared and ITC claimed, CGST Act, section 20.