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.
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.
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.
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.
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.
Send a sample file and we'll show you the cleaned output.