How to reconcile GSTR-2B with your purchase register in Excel

GSTR-2B reconciliation is one of the most repetitive tasks in a CA office — and one of the easiest to get subtly wrong by hand. Here's the column-by-column logic that holds up, and where manual matching usually breaks down.

Start with the columns that actually identify a match

GSTIN, invoice number and taxable value are the three fields that uniquely identify most invoices. Match on all three first — exact GSTIN, exact invoice number (after trimming whitespace and standardizing case), and tax amount within a small tolerance. This first pass should clear the majority of straightforward invoices.

Handle invoice number variations in a second pass

Vendors are inconsistent about invoice number formatting — leading zeros, hyphens, slashes. A second pass that strips non-alphanumeric characters and re-matches on GSTIN plus a normalized invoice number catches a large share of the remainder.

Use date tolerance and supplier-name matching as a last resort

For what's still unmatched, a small date window (plus or minus a few days, since invoice date and 2B upload date can differ) combined with fuzzy supplier name matching closes most of the rest. What's still unmatched after this should go to a human, not get force-matched.

Classify everything that's left

Sort remaining rows into Missing in Books, Missing in 2B, GSTIN Mismatch, Invoice Number Mismatch, Date Mismatch, Amount/Tax Difference, and Duplicate. A clear category is more useful to a reviewer than a single generic "unmatched" bucket.

Need help with this for real client data?

Send a sample file and we'll show you the cleaned output.

Upload a sample file