How does an automated GSTR-2B matching tool decide that two invoices match?

A tool treats two invoices as the same document when the supplier GSTIN is identical and the invoice numbers are identical after a fixed clean-up. It then compares tax: a difference of ₹1 or less is a match, more than ₹1 is a value mismatch. That is all the machine decides. Whether the credit can be claimed, and what to do with the leftovers, is still your call.

When a tool shows “Matched” against an invoice, you will sign under that answer when you file GSTR-3B. So you should be able to say what the tool compared and what it ignored. This post walks through the rules our reconciliation tool applies, in the order it applies them, and ends with a worked example in which the machine’s answer and the right answer are not the same.

Choosing a tool? See our guide to GST reconciliation software first.

The question a matcher is really answering

The law does not ask whether your books agree with the supplier. It asks whether the supplier furnished the invoice details in GSTR-1 and whether they were communicated to you in GSTR-2B. That is the condition in Section 16(2)(aa) of the CGST Act, repeated in Rule 36(4), which bars ITC on invoices whose details have not been communicated to you in GSTR-2B. So the matcher’s job is narrow: for each purchase in your register, is it in your GSTR-2B, and does the tax agree?

Why the key is GSTIN plus invoice number

Invoice number alone is not unique. Two suppliers can both issue invoice 001 in the same month. Amount alone is worse: a monthly rent or freight bill repeats the same value every month. What is unique is the pair. Rule 46(b) requires a consecutive serial number of not more than sixteen characters, containing only letters, numerals, hyphen and slash, “unique for a financial year”. Within one supplier and one financial year, the number identifies one invoice.

The phrase “for a financial year” has a practical consequence. A supplier who restarts numbering at 1 in April can legitimately issue INV/1 in March and again in April. If your register spans two financial years, both rows carry the same key. Our tool treats the second row as a duplicate in your books and counts it once, so keep each run inside one financial year, or split the file at 31 March.

Step 1: clean both sides before comparing

Raw text almost never matches, so the tool cleans it first. For the GSTIN it trims spaces and converts to capitals. For the invoice number it converts to capitals, removes every character that is not a letter or a digit, and then removes zeros at the very start of what is left. Nothing else.

In your booksIn GSTR-2BKey on both sidesResult
000129129129Same invoice
BILL # 401BILL-401BILL401Same invoice
INV/2026/102inv-2026-102INV2026102Same invoice
SVT/2025/0841SVT/2025/841SVT20250841 and SVT2025841Different keys
AB/26-27/089AB/2026-27/089AB2627089 and AB202627089Different keys

The last two rows are deliberate. A zero in the middle of a number is not stripped, and a two-digit year is not turned into a four-digit year. The clean-up is narrow on purpose: every extra rule that helps one supplier’s numbering also creates a chance of joining two genuinely different invoices. Even the separator rule has a cost. Removing slashes makes 1/23 and 12/3 both become 123. It is safe because the GSTIN must also agree and the tax check follows, and because hyphen and slash are the only punctuation a valid invoice number may contain under Rule 46(b). A space or a hash in your number column is a keying artefact, so dropping it loses nothing.

Our guide on invoice number mismatches and fuzzy matching catalogues the numbering patterns you will meet; the table above is the exact rule this tool applies to them.

Step 2: compare tax, with a ₹1 tolerance

Once a key is found on both sides, the tool adds up IGST, CGST, SGST and cess for that invoice in GSTR-2B and compares the total with the tax column you mapped from your register. If the two differ by ₹1 or less, the invoice is Matched. If they differ by more than ₹1, it is a Value mismatch and both figures and the difference are shown.

The tolerance exists because two systems can round the same invoice differently, one line by line and the other on the invoice total. Section 170 rounds tax, interest, penalty and refunds to the nearest rupee, while each supplier’s billing software rounds its invoices in its own way, so a difference of a few paise or a rupee between two systems is common. See the round-off mismatch guide for how to book such differences.

Common mistake: reading the tolerance as a legal allowance. It is only a screening threshold so that rounding does not bury real exceptions. The credit you claim follows what your GSTR-2B shows, not the figure in your books.

Two things are deliberately not part of the test. Taxable value is shown in the report but does not by itself move an invoice out of Matched. If a rate error produces the same tax on a different taxable value, glance down the taxable column of the matched list. And the invoice date is not in the key either: it is compared afterwards, and if the two dates are five or more days apart a note is added to the row.

Step 3: sort what is left into buckets

An entry that finds no partner is not simply “unmatched”. The tool asks one more question: does this supplier’s GSTIN appear anywhere in your GSTR-2B? That splits the leftovers in two.

BucketRule appliedWhat it tells you
A: MatchedKey found in GSTR-2B, tax within ₹1The document is the same. It does not say the credit is claimable.
B: Value mismatchKey found, tax differs by more than ₹1Same invoice, different tax. The invoice copy decides which figure is right.
C: Missing from 2BKey not found, and the supplier GSTIN is nowhere in your GSTR-2BMost likely the supplier has not filed GSTR-1, or the GSTIN was keyed wrongly in your books.
D: Only in 2BA GSTR-2B invoice that no register row claimedA bill to book, or a supplier error to query.
E: IMS PendingKey not found, but the supplier GSTIN does appear elsewhere in your GSTR-2BThe supplier filed something for you, just not this invoice.

Bucket E carries a label the tool cannot fully earn. It cannot see your live IMS dashboard, so “IMS Pending” is an inference. IMS Pending is one genuine cause, because a record kept Pending is not part of that period’s GSTR-2B. But a numbering difference, an omission by the supplier or a filing in a later period land in the same bucket. The IMS Pending guide covers how to confirm and release it.

Three side lanes keep the main buckets clean. A second register row with the same key goes to Duplicates in books and is counted once, so its tax is not added again. Credit and debit notes, and ISD credits, are listed for information and are not matched against your register; full two-way credit note matching is not built. Matched rows also carry notes read from your file: an ITC not available flag with its reason, reverse charge, a partial ITC percentage, or the original number of an amended invoice.

Worked example: where the machine and the accountant differ

A trading firm reconciles one month against six purchase invoices. The GSTIN is the same on both sides for each pair.

Books invoiceBooks taxGSTR-2B invoiceGSTR-2B taxTool result
000871₹4,500871₹4,500A: Matched
KP-118₹7,200KP/118₹7,200A: Matched
PN/0203₹2,499.50PN/0203₹2,500.00A: Matched (difference ₹0.50)
RE-26-1108₹4,500RE-26-1108₹4,860B: Value mismatch, ₹360
MPW/0094/25₹9,720Nil (supplier absent)NilC: Missing from 2B
SVT/2025/0841₹18,000NilNilE: IMS Pending
NilNilSVT/2025/841₹18,000D: Only in 2B

The tool’s summary says ITC at risk is ₹9,720 plus ₹18,000, which is ₹27,720. Now look at the last two rows as an accountant would. Same supplier, same tax of ₹18,000, and numbers that differ only by the zero after the slash. This is one invoice split into two buckets by a keying difference. Correct the number in your books to what the invoice copy shows, and the ₹18,000 is in GSTR-2B and available. The genuine at-risk figure falls to ₹9,720, plus the ₹360 to be explained on RE-26-1108.

The lesson is a habit worth keeping: a single keying difference shows up twice, once in C or E and once in D. After every run, sort bucket D by supplier and look for a partner in C or E with the same tax.

What the matcher cannot decide

Frequently asked questions

Does the tool use the invoice date to match?

No. The match key is the supplier GSTIN plus the cleaned invoice number. The date is compared afterwards, and if it differs by five days or more a note is added to the matched row.

Why does one invoice show up in bucket E and again in bucket D?

The invoice number is usually written differently in your books and in the supplier's GSTR-1, in a way the clean-up does not remove, for example a zero in the middle of the number. Your books row cannot find its GSTR-2B row, so the two halves land in different buckets. Look for the same supplier and the same tax amount on both sides.

Is a matched invoice always eligible for ITC?

No. A match only shows that the invoice is in your GSTR-2B with the same tax. You must still have received the goods or services, and the 180-day payment rule in Rule 37 and the Section 16(4) time limit continue to apply.

See how your own files sort

Load both files, confirm which columns hold the GSTIN, invoice number, date and tax, and the tool applies exactly these rules. Every invoice is listed in its bucket, with the rupee totals at the top and a CSV export. 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), CGST Rules, Rule 46, CGST Rules, Rule 37, CGST Act, Section 170, GSTN FAQs on IMS.