Pull GSTR-2B straight from GSTN, match it against your purchase register in four passes, and get a short list of genuine exceptions instead of a spreadsheet with thousands of rows and no verdict.
Getting the 2B file is the easy part. Turning it into a defensible input-tax-credit decision is the work.
Fetch the period directly from GSTN through the GST Suvidha Provider connection, or upload the JSON or Excel download from the portal. All three routes land in the same reconciliation.
Exact match on GSTIN, invoice number and date; then the same invoice within one day either side; then same number under a different GSTIN, flagged rather than force-matched; then the residuals reported as one-sided.
Numbers are upper-cased and stripped of punctuation before comparison, so "inv/001", "INV-001" and "Inv 001" all reconcile to the same key. That alone removes most false mismatches.
Matched pairs are compared on taxable value, CGST, SGST, IGST, cess, date and GSTIN. Anything differing by a rupee or more is flagged with the exact components that differ — no hunting.
The 2B credit for the period, split by tax component, with amendments replacing the documents they amend, supplier credit notes surfaced as rows to act on, and import-of-goods and input-service-distributor credit reported separately.
Link a row to the right bill, unlink a wrong match, or resolve it with a written note that stays attached to the row. Resolved rows can be reopened, and a whole import can be re-run.
The spreadsheet approach is not wrong so much as unrepeatable — and it silently rewards whoever is best at VLOOKUP.
One-day date differences and punctuation in invoice numbers are the two commonest causes of a match failing. Both are handled before the exception list is built, so the list you review is short and real.
The same invoice number under a different supplier GSTIN is reported as a GSTIN mismatch rather than quietly paired. That is the case most likely to cause a wrong credit claim.
Resolving a row records a note against it. Six months later, when someone asks why a missing invoice was accepted, the answer is on the row rather than in an email thread.
Reconciliation and filing sit in one system, so the credit you decided on is the credit that flows through — not a number re-typed from a spreadsheet into a portal.
Input tax credit is the largest reversible number in most Indian businesses. It depends entirely on suppliers filing correctly and on time, which is outside your control — and the consequence of a supplier’s lapse lands on you, in the form of credit that must be reversed with interest.
That makes the monthly 2B reconciliation less of a clerical chore and more of a control. The point is not to produce a matched percentage; it is to surface the small set of documents where you and GSTN disagree, early enough to do something about it — chase the supplier, fix a keying error, or consciously defer the credit.
ReadyBooks is built around that goal. The matching exists to shrink the list, the statuses exist to say why a row is on it, and the notes exist so the decision survives the person who made it.
The first pass is an exact match on the combination of supplier GSTIN, normalised invoice number and invoice date. Anything that matches here is uncontroversial, and clearing it first keeps it out of the way of the fuzzier passes that follow.
The second pass relaxes the date by a single day in either direction, keeping the GSTIN and invoice number fixed. This catches the extremely common case where you and your supplier recorded the same document on adjacent dates — a dispatch late at night, a bill entered the following morning. Relaxing the date but holding GSTIN and number constant is deliberate: it recovers genuine matches without inviting false ones.
The third pass looks for the same invoice number under a different GSTIN. Rather than treating this as a match, it is reported as a GSTIN mismatch, because it is precisely the situation where an automatic pairing would be dangerous — a group company, a changed registration, or simply a coincidence of numbering. A human should look at it.
Whatever survives all three passes is reported as one-sided: present in 2B but absent from your books, or present in your books but absent from 2B. The first usually means a purchase you have not recorded; the second usually means a supplier who has not filed. Those are different problems with different owners, which is why they are labelled differently rather than lumped together as "unmatched".
After a pair is matched, every money column is compared: taxable value, CGST, SGST, IGST and cess. A difference of one rupee or more in any single one of them marks the pair as a value mismatch, and the specific components that differ are recorded against the row. The invoice date and the supplier GSTIN are held to exact equality — the tolerance is a money concept, and a GSTIN that is nearly right is simply wrong.
One rupee is a deliberate default. Rounding differences between two systems computing tax on the same base are routine and meaningless; a threshold below that would flood the exception list with noise and train everyone to ignore it. A threshold much above it would start concealing real differences — and on a large invoice, a genuine rate error rarely stops at a few rupees.
The threshold is configurable for your organisation, which matters if you deal in very large values or in sectors where cess makes the arithmetic awkward. It is worth setting once, deliberately, rather than adjusting it whenever a month looks untidy.
A period’s 2B is not a simple list of invoices. Suppliers amend documents they have already reported, issue credit notes that reduce the value of earlier supplies, and the statement carries all of it. Adding the rows up naively produces a figure that is wrong in both directions.
Amendments are handled explicitly: an amendment replaces the document it amends rather than being added alongside it, so an invoice corrected from ₹1,00,000 to ₹90,000 contributes ₹90,000, not ₹1,90,000.
Supplier credit notes are treated differently, and deliberately so. Rather than being silently subtracted from the headline figure, they come through as reconciliation rows for you to match and act on — because a credit note in 2B that you have no record of is usually a signal about your books, not just a smaller number. Credit notes within the input-service-distributor figure are netted there, since that total is reported separately anyway.
Two categories are reported separately rather than folded into the main total: credit on imported goods, which reaches you through customs rather than through a supplier’s return, and credit distributed by an input service distributor. Both are legitimate credit, but they arrive by different routes and are worth seeing distinctly when you are reconciling against your own purchase register.
What comes out of this is the credit available per 2B for the period. It is not, and does not claim to be, the credit you should finally claim: blocked credits under Section 17(5), reversals under Rules 42 and 43, and your own judgement on eligibility all sit downstream of it. The reconciliation gets you to a trustworthy starting number.
GSTR-2B is static once generated, which is its great virtue for reconciliation — the number does not move under you. But static also means it is a snapshot of what suppliers had filed by the cut-off, and a supplier who files late appears in a later period’s statement, not retrospectively in the one you already reconciled.
The practical consequence is that the one-sided-in-books list is rarely empty, and should not be treated as an error. Some of those rows are purchases where the supplier will file next month; some are purchases where the supplier never will. Distinguishing between them is a commercial judgement, not a matching problem, which is why the resolve-with-note flow exists rather than an automatic write-off.
It also means the reconciliation is worth running every period rather than once a year. A supplier who has stopped filing is much easier to deal with in month two than in month eleven, when the credit is old, the relationship is stale, and the interest has been accruing.
| Status | What it means | Typical action |
|---|---|---|
| Matched | Found on both sides with every money column within tolerance. | Nothing. This is the bulk of a healthy period. |
| Value mismatch | Paired, but the date or the GSTIN differs, or a money column differs by a rupee or more. | Check which component differs; correct the bill or query the supplier. |
| GSTIN mismatch | Same invoice number found under a different supplier GSTIN — flagged, never auto-paired. | Confirm which entity actually supplied you before accepting any credit. |
| One-sided in 2B | GSTN has the document; your books do not. | Usually an unrecorded purchase. Record it, or establish it is not yours. |
| One-sided in books | You have recorded the purchase; GSTN has no matching document. | Usually a supplier who has not filed. Chase them, or defer the credit with a note. |
Source: Reflects the shipped GSTR-2B matcher in ReadyBooks as at 21 July 2026.
The four-pass match clears the routine ones and leaves a couple of dozen genuine exceptions. Suppliers who have not filed are identified in the same month rather than at year end.
Reconciliation runs before the return is prepared, so the claim is based on what GSTN actually shows. Deferred items carry a note explaining why.
One reconciliation per client per period, with linked bills and written resolutions attached to the rows — so the basis for a claim is reconstructable months later.