GST Compliance
Annexure-B JSON Utility for GST Refunds: How to Prepare an Error-Free File

In short
From 18 May 2026, under GSTN Advisory No. 660, Annexure-B for accumulated-ITC refunds can no longer be a PDF. You must prepare it in a standardised Excel offline utility that produces a JSON file, then upload that JSON on Form GST RFD-01. The portal validates your invoices against GSTR-2B. It applies to four categories — exports without tax, SEZ supplies without tax, inverted duty structure, and export of electricity. Report data invoice-wise and HSN/SAC-wise, split mixed invoices, and watch the limits: 10,000 line items per file, 25 files, 2,50,000 total. Most rejections come from dropdown mismatches, stray spaces, duplicates and editing the JSON after generation. Reconcile your purchase register to GSTR-2B before you build the file — that is where refunds are won or lost.
If your business exports, supplies to an SEZ, or sits under an inverted duty structure, your GST refund is real working capital — often the difference between a comfortable month and a tight one. From 18 May 2026, the way you prove that refund changed. The GST Network has replaced the old PDF Annexure-B with a standardised offline utility that generates a structured JSON file, validated by the portal against your returns. This is not a cosmetic change of format. It moves refund filing from a document an officer reads to a dataset the system checks — and an unreconciled claim now fails at the door rather than three months later. Here is exactly what Annexure-B is, how to build the file, what to report in each field, and how to keep it error-free.
What is Annexure-B?
Annexure-B is the invoice-wise statement of your inward supplies (purchases) on which input tax credit has been availed, submitted with Form GST RFD-01 when you claim a refund of accumulated ITC. In plain terms: it is the proof, line by line, of the credit you are asking the government to return. Where Annexure-A in a refund context deals with outward supplies, Annexure-B is squarely about the inputs behind your unutilised credit.
The legal foundation has not changed. The right to a refund of unutilised ITC flows from Section 54(3) of the CGST Act, 2017, read with Rule 89 of the CGST Rules; zero-rated supplies made under a Letter of Undertaking sit under Rule 96A. The original Annexure-B format came from Circular No. 135/05/2020-GST, later refined by Circular No. 170/02/2022-GST. What GSTN Advisory No. 660 dated 18 May 2026 changed is purely the mechanism of furnishing it.
What changed: PDF out, JSON in
Until 17 May 2026, you prepared Annexure-B in Excel or Word, converted it to PDF, and uploaded it as a supporting attachment. An officer then read it manually. From 18 May 2026, for the covered categories, that route is closed. You now:
- Download the prescribed Annexure-B offline utility (an Excel tool) from the GST portal;
- Enter your data in the utility's two tables;
- Let the utility validate and generate a JSON file; and
- Upload that JSON on the RFD-01 screen, where the portal validates it against GSTR-2B.
The intent is uniformity, automated invoice-level verification, and faster processing — but the practical effect is that the reconciliation burden moves squarely onto you and your advisor, before filing.
Which refund categories does it apply to?
The JSON utility is mandatory only for these four accumulated-ITC categories:
| Category | Who typically files |
|---|---|
| Export of goods/services without payment of tax (excluding electricity) | Exporters operating under LUT |
| Supplies to an SEZ unit / SEZ developer without payment of tax | Vendors supplying SEZs under LUT |
| Inverted duty structure [clause (ii), first proviso to Section 54(3)] | Manufacturers where input GST > output GST |
| Export of electricity without payment of tax | Power exporters |
If your refund falls outside these four, the new utility does not apply — but if you are an exporter, SEZ supplier or in an inverted-duty sector across Delhi NCR, this is now your only route.
How the utility is structured: two tables
The offline utility contains exactly two tables, and understanding the split is half the battle:
- Table 1 — Reversal Details: your ITC reversals for the period.
- Table 2 — HSN/SAC-wise Inward Invoice Details: the invoice-by-invoice purchase data on which ITC was claimed in GSTR-3B.
The core discipline is that every line in Table 2 represents one HSN/SAC code and one category of input supply. You do not lump a whole invoice into one row.
What to report — field by field
For each line item in Table 2, the utility expects the following, all mapped specifically to that HSN/SAC and input-supply category:
| Field | What to enter |
|---|---|
| Type of inward supply | Input, Input Service, or Capital Goods — reported separately |
| Type of document | The document type for the entry (e.g. invoice) |
| Supplier GSTIN | The vendor's GSTIN |
| Invoice number & date | As per the original tax invoice |
| HSN / SAC code | Correct code for that supply (commonly 4, 6 or 8 digits) |
| Taxable value & tax amount | Proportionate to the HSN/SAC and category on that line |
| Total ITC | The full credit on the line |
| Eligible ITC / Ineligible ITC | The bifurcation of that credit |
| Blocked under Section 17(5)? | Flag whether the credit is blocked or otherwise |
| GSTR-2B return period | The 2B period in which the invoice appears |
Table 1 (reversals) must capture ITC reversed under Rules 38, 42 and 43 and Section 17(5) as per the relevant month's GSTR-3B, plus any other reversals reflected in Table 4(B)(2) of GSTR-3B. Getting the eligible-versus-ineligible and blocked-credit classification right is where bulk-processed claims most often go wrong — treat it as a per-invoice decision, not a formula dragged down a column.
Splitting invoices with multiple HSN/SAC or categories
A single invoice often carries several HSN/SAC codes, or a mix of inputs, input services and capital goods. The utility will not accept it as one row. You must:
- Split the invoice into separate line items — one per HSN/SAC code and one per input-supply category;
- Ensure each line carries only one category mapped to one HSN/SAC; and
- Distribute the invoice value and tax proportionately across those lines.
The utility's Read Me sheet carries a specific note on this (Point 6) — read it before you start entering data, not after the JSON fails.
Duplicate validation: the five-field rule
The system rejects duplicate line items. A duplicate is judged on five parameters together:
- Supplier GSTIN
- Invoice Number
- Invoice Date
- Category of Input Supply
- HSN/SAC
Where the same invoice repeats the same input-supply category and the same HSN/SAC, report it as a single consolidated line, not two. Validation is applied separately for each type of inward supply and document type.
How GSTR-2B validation actually behaves
This trips people up, so be precise about it:
- Uploaded invoices are matched against your GSTR-2B. Results appear in a Valid documents sheet showing whether each invoice is present in 2B.
- For invoices in GSTR-2B periods November 2024 onward, mismatches surface in an Invalid documents report — these are the entries you must fix.
- For invoices of periods up to October 2024 or earlier, the system does not validate against 2B. You will see a generic "not validated" message, but those invoices are still treated as part of the validated documents. This is expected behaviour, not an error — you can proceed with filing.
Line-item limits — and what to do when you exceed them
| Limit | Value |
|---|---|
| Line items per utility file | 10,000 |
| Files per refund application | 25 |
| Total line items per application | 2,50,000 |
If your claim exceeds 2,50,000 line items, upload the first 2,50,000 through the utility and submit the balance invoices as supporting PDFs. GSTN has indicated higher-volume ingestion is being evaluated. One critical rule when you use multiple files: enter reversal amounts only in the final file, with all earlier files showing reversals as zero. The portal recalculates the consolidated Net ITC after all JSONs are uploaded — review that consolidated summary before you submit.
How to prepare the file: step by step
- Reconcile first. Before opening the utility, line up your purchase register → GSTR-2B → ITC eligibility → refund claim. Confirm the 2B period for each invoice, the eligible/ineligible split, blocked credit under 17(5), and any reversals. Fixing a mismatch now is far cheaper than after a deficiency memo.
- Download the latest utility from the GST portal — Downloads → Offline Tools. Always use the current version; an outdated one can miss fields.
- Enter Table 2 (invoices) invoice-wise and HSN/SAC-wise, splitting mixed invoices proportionately.
- Enter Table 1 (reversals) per the relevant GSTR-3B.
- Validate inside the utility and resolve any flagged issues.
- Generate the JSON. Do not open, edit or rename it afterwards.
- Upload on RFD-01 via the "Click to upload the Statement of invoices (Unutilized ITC)" link, then run the portal validation.
- Review the Valid and Invalid documents reports, correct any post-November-2024 mismatches in the utility, regenerate a fresh JSON, and re-upload before final submission.
The error-free checklist
Almost every Annexure-B rejection traces back to one of these. GSTN has flagged them specifically — treat the list as a pre-flight check:
- Match dropdown values exactly. When copy-pasting into dropdown cells, the value must match the prescribed option character-for-character. A stray leading or trailing space alone will fail validation.
- Never paste into frozen / protected cells. It breaks processing and JSON generation.
- Close any older version of the utility completely before using a new one — running both can corrupt the copy-paste behaviour.
- Strip stray spaces everywhere — e.g. extra spaces after a supplier name — as they cause JSON generation or upload errors.
- Do not edit the JSON after generation, and do not rename it. Change the data in the utility, revalidate, regenerate.
- De-duplicate on the five-field rule before generating.
- Reconcile to GSTR-2B for all November-2024-onward invoices so the Invalid documents report comes back clean.
- Retain the underlying invoices. The JSON is the data layer; the original tax invoice remains your primary support if questioned.
For the recurring GST and TDS deadlines that sit around refund cycles, see our GST & TDS compliance calendar 2026, and for the other big 2026 portal change, our note on the e-way bill Ship-To GSTIN and closure updates.
Note: this guide is based on GSTN Advisory No. 660 dated 18 May 2026 and the related portal instructions, and on Section 54(3) of the CGST Act with Rules 89 and 96A. Utility versions, field labels and limits can change through further GSTN releases. Treat this as general guidance and confirm the current portal position for your specific claim before you rely on it.
How Startup Advisory Can Help
Startup Advisory is a CA-led firm in Saket, New Delhi that handles GST refunds end to end for exporters, SEZ suppliers and inverted-duty manufacturers across Delhi NCR. With the Annexure-B JSON regime, the reconciliation is the refund — and that is exactly what we do:
- Purchase-register-to-GSTR-2B reconciliation and ITC eligibility review before any filing.
- Building, validating and uploading the Annexure-B JSON on RFD-01 — with the eligible/ineligible and Section 17(5) classification done invoice by invoice.
- Clearing Invalid-documents mismatches and responding to deficiency memos and officer queries.
- Ongoing GST return filing and reconciliation through our bookkeeping service, so your refund file is clean every cycle.
Call 9311972982 or book a free consultation to get your accumulated-ITC refund filed right the first time.















































