Several months of GSTR-2B and your purchase register become one reconciliation with late-reported bills placed, typed-differently bill numbers paired, ITC at risk totalled, and a supplier follow-up list with message drafts.
Who it is for: Accountant, CA firm article or owner of an Indian GST-registered business who matches suppliers' bills against GSTR-2B each month before filing GSTR-3B.
Format: Claude skill pack · Version: 1.0.1 · Tested on: Python 3.13.5 (standard library only)
What it does
It reads every GSTR-2B JSON you attach (B2B, credit/debit notes and amendments), checks they belong to one GSTIN and that no month is given twice, and counts a bill that appears in two months once. Your register is read from most Tally, Zoho, Busy or Excel exports. Bills are matched on GSTIN and normalised bill number, tax is compared per head within your tolerance, and bills in 2B under another GSTIN are flagged. Leftover bills from the same supplier with the same tax and a bill number that ends the same way are offered as probable matches for you to confirm. A bill you booked in October that the supplier reported in November's 2B is marked late. Suppliers with missing or mismatched bills go on a follow-up list with a message draft; your own typos are left off it.
What you need
- Claude.ai with code execution switched on (or Claude Code, or just Python 3.10+)
- Your GSTR-2B JSON files (GST portal > Returns > GSTR-2B > Download JSON)
- Your purchase register exported as CSV or Excel
5-minute setup
- Claude.ai: open Settings → Capabilities → Skills, click Upload skill and pick
claude-ai-upload/gstr2b-reconciler-pro.zip. - Claude Code: copy the folder
skills/gstr2b-reconciler-prointo~/.claude/skills/. - Start a new chat. Attach your file and say: "Use gstr2b-reconciler-pro. Reconcile my October and November GSTR-2B against this purchase register and list the suppliers I should chase".
- Claude runs the script and gives you the files listed under Outputs. Check them before you act on them.
Try it with the sample
Run the sample (fictional October and November 2026 GSTR-2B and register):
python3 skills/gstr2b-reconciler-pro/scripts/core.py --gstr2b samples/gstr2b-oct-2026.json --gstr2b samples/gstr2b-nov-2026.json --register samples/purchase-register-oct-2026.csv --my-gstin 27AABCS1234K1ZG --out out
You should see 4 matched (one reported late in November), 1 probable match, 1 amount differs, 1 GSTIN differs, 1 duplicate and 3 missing in books, with ITC at risk ₹1,440.00 and 1 supplier to follow up. In Claude, attach the files and use the prompt above.
Settings you can change
| Option | Default | What it is |
|---|---|---|
--gstr2b |
(required, repeat) |
GSTR-2B JSON downloaded from the GST portal; repeat for up to 12 months of the same GSTIN |
--register |
(required) |
Purchase register CSV/XLSX with GSTIN, supplier invoice number and IGST/CGST/SGST columns |
--my-gstin |
(blank) |
Your GSTIN; the run stops if the 2B files belong to another GSTIN |
--tolerance |
1 |
Rupee difference per tax head treated as a match (0-100) |
--days |
7 |
Date window for probable matches when bills have no digits to compare |
--exact-only |
(off) |
Turn off probable matching of bill numbers typed differently |
--out |
out |
Output folder (recon.xlsx is added when openpyxl is installed) |
What goes in and what comes out
Inputs: One or more GSTR-2B JSON files (up to 12 months, same GSTIN), downloaded by you; Purchase register CSV or XLSX; Optional: your GSTIN, tolerance, date window
Outputs: report.md with the summary, ITC at risk and a to-do list; recon.csv (and recon.xlsx with openpyxl) with one row per bill; supplier-followup.csv with tax at stake and a message draft per supplier
AI disclosure and limits
This product does not call an AI model at run time. It was built by Oarsman AI's AI agents and checked by the automated tests shipped with it.
Limits: - Up to 12 GSTR-2B months of one GSTIN per run. - Probable matches are suggestions; confirm each one. - Reconciles B2B, B2BA, CDNR sections; import (IMPG), ISD and other sections are listed but not matched. - Reads the JSON download, not the GSTR-2B Excel file. - Message drafts are not sent; you send them yourself. - Matching help, not tax advice; your CA decides the ITC claim.
Not tested by us: - a real GSTR-2B download from the portal (the samples follow the published JSON layout) - XLSX registers in the shipped tests (CSV only) - registers from Busy or Marg - the recon.xlsx output in the shipped tests
Files
- oarsman-gstr2b-reconciler-pro-v1.0.1.zip
- CHANGELOG.md
- QA-REPORT.json
- README.md
- SPEC.md
- SUPPORT.md
- TROUBLESHOOTING.md
- VERSION
- VIDEO-SCRIPT.md
- claude-ai-upload
- diagram.mmd
- diagram.png
- preview.png
- samples
- skills
- tests
Help
Self-serve: see TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link. Refund: 14 days, works as described, through the checkout platform.