GST rules referenced
gstrecon automates checks; it is not tax advice. Rule numbers are from the CGST Act 2017 and CGST Rules 2017 as understood at the time of writing. Confirm with your tax adviser.
| Rule | Reference | How gstrecon applies it |
|---|---|---|
| ITC only if the invoice appears in GSTR-2B | Sec 16(2)(aa), Rule 36(4) | Claimable ITC is capped at the 2B amount; booked ITC with no 2B counterpart is reported as ITC At Risk. |
| Blocked credits | Sec 17(5) | Books documents whose HSN/SAC starts with a configured prefix (defaults 8702, 8703 motor vehicles; 9963 food and outdoor catering; 9966 rent-a-cab; 9996 club membership) or whose category/ledger text contains a keyword (food, catering, club, gift, personal, beauty, cosmetic) get flag BLOCKED_17_5 and zero claimable ITC. Override with --rules. |
| Time limit | Sec 16(4) | An invoice or debit note of a financial year (April to March) can be claimed until 30 November following the end of that year. After the as-of date passes it: TIME_LIMIT_EXPIRED, claimable 0. Within 90 days: TIME_LIMIT_NEAR warning. Credit notes are exempt from this check. |
| 180-day payment | Sec 16(2) second proviso, Rule 37 | If a payment date is present and more than 180 days after the invoice date: PAYMENT_180D_BREACH, the ITC is reversed, interest is estimated. Invoices older than 180 days with no payment date raise PAYMENT_180D_RISK (warning only). |
| Interest on reversal | Sec 50(1), Rule 37 | 18% p.a. on the reversed ITC over the days from invoice date to payment date (see limitations). |
| Reverse charge | Sec 9(3)/9(4), Sec 16(1) | Books or 2B rows marked reverse charge flag REVERSE_CHARGE. ITC arises from tax paid by the recipient, so it does not depend on 2B: claimable equals booked ITC (subject to blocks and time limit), and such invoices never generate vendor follow-ups. |
| Place of supply / tax head | Sec 7, 8 IGST Act, Sec 10 IGST Act | An IGST-vs-CGST+SGST difference is reported as TAX_HEAD_MISMATCH. |
| ITC availability in 2B | GSTR-2B ITC availability field | itcavl = N (or "No" in the Excel export) gives flag ITC_NOT_AVAILABLE_IN_2B and zero claimable. |
| Credit and debit notes | Sec 34 | Credit notes reduce ITC (negative sign); debit notes add. |
GSTR-2B fields read
JSON, under data.docdata (or docdata at top level; data.rtnprd is used for a period sanity check):
b2b[].ctin,trdnm;b2b[].inv[].inum,dt,val,rev,itcavl;cdnr[].nt[].ntty(C or D),ntnum,dt,rev,itcavl;- amounts from
items[](rt,txval,igst/iamt,cgst/camt,sgst/samt,cess/csamt) or, whenitemsis absent, the same fields on the invoice/note itself (as the 2B API returns them); impg[].boenum,boedt(orrefdt),portcode,txval,iamt,csamt.
Excel export: sheets B2B, B2B-CDNR, IMPG; the header row is found by scanning for "Taxable Value" and "Integrated Tax". Columns used: GSTIN of supplier, Trade/Legal name, Invoice/Note number, Note type, date, Rate, Taxable Value, Integrated/Central/State Tax, Cess, Supply Attract Reverse Charge, ITC Availability.