Why GSTR-2B Decides Your ITC
GSTR-2B is the auto-drafted statement the portal generates for you each month from what your suppliers filed. Since ITC became tied to it, the rule is blunt: if a purchase isn't in your 2B, you generally can't claim credit for it in GSTR-3B — no matter that you hold the invoice and have paid the supplier.
So reconciliation isn't paperwork. It answers two questions that cost real money:
- Am I claiming credit I'm not entitled to? Claim it and you face reversal with interest.
- Am I missing credit I am entitled to? A purchase in 2B you never booked is money left on the table.
iAccounting pulls the 2B directly from the portal and matches it line by line against your purchase register, so both questions are answered before you file.
Before You Start
Three things need to be true, or the fetch will fail:
- A real, active GSTIN saved on your company. The portal only ever returns your own 2B.
- API access switched on at the portal — Step 2 below. This is the step most people miss.
- Your purchases actually booked for the period. Reconciliation compares 2B against your purchase register; with an empty register everything shows as "not booked" and the report tells you nothing useful.
Also worth knowing: 2B for a month is generated by GSTN around the 14th of the following month. Ask for the current month and iAccounting will stop you rather than spend your money on an empty response.
Step 1 — Log In to the GST Portal
- Open www.gst.gov.in and click Login.
- Enter your username and password and the captcha.
Note the username you use here — you'll type the same one into iAccounting in Step 6. It's the portal username, not your GSTIN and not your email address.
Step 2 — Enable "Manage API Access" (The Step Everyone Misses)
By default the portal will not answer software on your behalf. You have to grant that permission yourself, and it expires — so this comes back around every month or so.
- Once logged in, click your profile icon (top right) → My Profile.
- In the left menu (or Quick Links), open Manage API Access.
- Set "Enable API Request" to Yes.
- Choose a duration — pick the maximum offered, normally 30 days.
- Click Confirm.
That's the "OTP allowance" — it's what lets the portal send you an OTP for software access at all. Skip it and Step 6 fails with an authorisation error, no matter how correct everything else is.
Step 3 — Check Your GSTIN in iAccounting
Open Masters → Company and confirm the GSTIN field holds your real, registered 15-character number.
This matters more than it sounds. A demo or placeholder GSTIN left over from setup (the classic 23ABCDE1234F1Z5) is rejected by the portal, and the error can read like a connection problem when it's really just a typo in your own company master.
Step 4 — Open GSTR-2B Reconciliation
- Open the 🤖 Auto Accounting menu.
- Click 📥 GSTR-2B Reconciliation (ITC).
Across the top you'll find ⚡ Auto-fetch 2B from Portal, ⚡ Fetch 2A, 📂 Load 2B JSON… and 💾 Save 2B JSON…, with a row of summary tiles beneath: Issues, Warnings, Correct ✓, Wrong ✗ and ITC in 2B (₹).
Click ⚡ Auto-fetch 2B from Portal to begin.
Step 5 — Pick the Return Period
A small dialog asks which period you want. It opens on last month, which is the usual pull.
- One month — choose the month and year.
- Whole financial year — tick "Fetch the whole financial year (all 12 months)". The portal has no single yearly 2B file, so iAccounting downloads each month in turn and merges them. One OTP covers the lot.
The whole-year option is the most expensive action in the app, so before it starts you'll see exactly how many months will be downloaded and what the total wallet cost will be. Nothing is spent until you click OK.
Step 6 — The OTP on Your Mobile
Now the handshake. The Connect to GST Portal (OTP) dialog opens with your GSTIN already filled in and locked.
- Type your Portal username — the same one from Step 1.
- Click Send OTP. The status line reads "Requesting OTP from the portal…".
- The portal sends a one-time password to the mobile number and email registered against that GSTIN. It usually arrives within a few seconds. The dialog confirms: "OTP sent to the taxpayer's registered mobile/email. Enter it and click Verify."
- Type the OTP into the OTP box — which only becomes editable once the OTP has actually been sent.
- Click Verify.
On success the dialog closes and the download begins immediately.
The OTP goes to the number registered with GSTN, not to whoever is sitting at the computer. If you're an accountant working on a client's books, arrange for them to read it out to you — or have them enable API access and send the OTP while you're on the phone.
Step 7 — Read the Result
The five tiles across the top give the headline:
| Tile | What it counts |
|---|---|
| Issues | Things that will cost you money if ignored |
| Warnings | Things to check, usually mismatches |
| Correct ✓ | 2B invoices that match a purchase you've booked |
| Wrong ✗ | 2B invoices not booked, or booked at a different value |
| ITC in 2B (₹) | Total input credit the portal says is available |
Below the tiles come the aggregate checks — 2B Invoices Not in the Purchase Register, Amount Mismatches, Booked Purchases Missing From 2B (ITC at Risk), and Total ITC — 2B vs Books. Each is badged ISSUE, WARNING, INFO or PASS, carries the rupee amount at stake, and suggests a fix.
That last check is the one to look at hardest: it compares the total ITC in your 2B against the total in your books, and passes only if they agree within about 1%. A pass there means your 3B claim is safe.
Then every invoice is listed in three sections: ✅ Correct, ❌ Wrong / needs action, and Booked but not in 2B — ITC at risk.
Step 8 — Work Each Bucket
❌ NOT BOOKED — in 2B, missing from your books
Your supplier filed it; you never recorded it. Usually a bill that never reached your desk. This is credit you're entitled to and currently not claiming — chase the invoice, book the purchase (Transactions → Purchase), and re-run the reconciliation.
⚠ AMOUNT WRONG — booked, but the value differs
Same invoice number and supplier, different figure. Someone typed it wrong, or the supplier filed a different amount. Compare against the physical invoice: if your entry is wrong, correct it; if the supplier's filing is wrong, ask them to amend it in their next GSTR-1.
⚠ NOT FILED — booked by you, absent from 2B
You hold the invoice and have probably paid, but the supplier hasn't reported it. This credit is not claimable yet. These are the entries that cause reversals with interest if you claim them anyway.
Chase the supplier to file. Until they do, keep this ITC out of your 3B claim — and consider holding payment on repeat offenders. The amount at risk is shown per invoice, so you know exactly what's in dispute.
✅ CORRECT — matched
Nothing to do. This is your safe, claimable ITC.
The "none matched" note
If every invoice comes back as not booked and there's nothing in the ITC-at-risk list, iAccounting shows a note rather than letting you conclude your suppliers all failed you. It nearly always means the purchases for that period aren't booked yet, or the wrong company or period is open.
No API Access? The Manual Route Works Too
You don't have to use the portal connection at all. Reconciliation itself is entirely offline:
- On the portal, go to Returns → GSTR-2B → Download and save the JSON.
- In iAccounting, click 📂 Load 2B JSON… and pick that file.
You get exactly the same reconciliation, with no API access, no OTP and no wallet cost. The only thing you lose is the convenience of the automatic download.
💾 Save 2B JSON… works the other way: archive a fetched 2B, or hand it to your CA. A whole-year fetch saves as a single file that loads straight back in.
What It Costs
Each monthly download is a metered portal call charged to your wallet — the per-call rate is shown before a whole-year run, and you approve the total before anything is spent. Loading a JSON file yourself costs nothing, and the reconciliation, review and re-runs are always free.
Practical consequence: fetch a month once and use Save 2B JSON… to keep it. Re-loading the saved file to re-check your work costs nothing, while re-fetching charges again.
Error Messages Explained
| Message | What it means | Fix |
|---|---|---|
| "…log in to the GST portal → Manage API Access, enable it…" | API access is off or has expired for this GSTIN. | Redo Step 2. This is the single most common failure. |
| "The GST portal rejected this GSTIN as invalid." | The company's GSTIN is a placeholder or a typo. | Masters → Company, enter the real registered GSTIN. |
| "This company has no valid GSTIN set" | The GSTIN field is empty or malformed. | Same — set a valid 15-character GSTIN. |
| "GSTR-2B for MM/YYYY isn't available yet" | You asked for a month the portal hasn't generated. | Wait until after the 14th of the following month, or fetch 2A instead. |
| "No active GST-portal session — send and verify an OTP first." | The six-hour session lapsed or the app restarted. | Fetch again; the OTP dialog reappears. |
| "Your credits are exhausted. Recharge to use online GST features." | Wallet balance is empty. | Recharge, or use the manual JSON route, which is free. |
| "Enter the GST portal username." | The username box is blank. | Type the portal username from Step 1 — not your GSTIN. |
Tips & Best Practice
- Reconcile before filing 3B, every month. Discovering a missing invoice after filing means an amendment; before filing it's just a correction.
- Book your purchases first. Reconciling against an empty register produces a long, useless "not booked" list. The bill scanner makes short work of a backlog.
- Fetch after the 14th. Earlier and the month simply isn't there yet.
- Do a whole year before your annual return. One OTP, one pass, every month merged — the fastest way to prepare GSTR-9.
- Save every 2B you fetch. It's free to re-load and re-check; re-fetching costs again.
- Keep a supplier watch-list. The NOT FILED bucket names the suppliers costing you working capital month after month. That's a commercial conversation, not an accounting one.
- Re-enable API access monthly. It lapses silently after ~30 days.
- 2A vs 2B. 2B is the static, ITC-deciding statement — reconcile against it. 2A is dynamic and updates as suppliers file, so it's useful mid-month to see whether a chased supplier has finally filed.
What's Next?
- GSTR-2B Reconciliation — the concepts — the five buckets and Rule 37 in depth
- File GSTR-3B — claim the reconciled ITC
- Scan Bills with Mobile — clear a purchase backlog before reconciling
- Input Tax Credit Rules — conditions, blocked credits and reversals