Enquire now with Startup Advisory

Blog

GST Compliance

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

Annexure-B offline utility generating a JSON file for accumulated-ITC GST refunds under GSTN Advisory 660

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:

CategoryWho 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 taxVendors 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 taxPower 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:

FieldWhat to enter
Type of inward supplyInput, Input Service, or Capital Goods — reported separately
Type of documentThe document type for the entry (e.g. invoice)
Supplier GSTINThe vendor's GSTIN
Invoice number & dateAs per the original tax invoice
HSN / SAC codeCorrect code for that supply (commonly 4, 6 or 8 digits)
Taxable value & tax amountProportionate to the HSN/SAC and category on that line
Total ITCThe full credit on the line
Eligible ITC / Ineligible ITCThe bifurcation of that credit
Blocked under Section 17(5)?Flag whether the credit is blocked or otherwise
GSTR-2B return periodThe 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:

  1. Supplier GSTIN
  2. Invoice Number
  3. Invoice Date
  4. Category of Input Supply
  5. 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

LimitValue
Line items per utility file10,000
Files per refund application25
Total line items per application2,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

  1. 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.
  2. Download the latest utility from the GST portal — Downloads → Offline Tools. Always use the current version; an outdated one can miss fields.
  3. Enter Table 2 (invoices) invoice-wise and HSN/SAC-wise, splitting mixed invoices proportionately.
  4. Enter Table 1 (reversals) per the relevant GSTR-3B.
  5. Validate inside the utility and resolve any flagged issues.
  6. Generate the JSON. Do not open, edit or rename it afterwards.
  7. Upload on RFD-01 via the "Click to upload the Statement of invoices (Unutilized ITC)" link, then run the portal validation.
  8. 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.

Frequently Asked Questions

Annexure-B is the invoice-wise statement of your inward supplies (purchases) on which input tax credit has been claimed, filed with Form GST RFD-01 when you claim a refund of accumulated ITC. It is the line-by-line proof the GST officer uses to verify that the credit you want refunded is genuine and correctly computed.

Under GSTN Advisory No. 660 dated 18 May 2026, Annexure-B can no longer be uploaded as a PDF for the covered categories. It must be prepared in a standardised Excel offline utility that generates a JSON file, which is uploaded on the RFD-01 screen and validated against GSTR-2B. It is a move from a document-style annexure to a machine-readable data upload.

Four accumulated-ITC categories: exports of goods or services without payment of tax (excluding electricity), supplies to an SEZ unit or developer without payment of tax, ITC accumulated due to an inverted tax structure under clause (ii) of the first proviso to Section 54(3), and export of electricity without payment of tax. Other refund types are not covered.

Table 1 captures ITC reversals (Rules 38, 42, 43 and Section 17(5), plus other reversals from Table 4(B)(2) of GSTR-3B). Table 2 captures invoice-wise, HSN/SAC-wise inward data: supplier GSTIN, invoice number and date, type of inward supply (input, input service, capital goods), document type, HSN/SAC, taxable value, tax amount, total ITC, eligible and ineligible ITC, whether blocked under Section 17(5), and the GSTR-2B return period.

After entering and validating the data in the utility, it generates a JSON. On the RFD-01 screen you click the link to upload the Statement of invoices (Unutilized ITC), upload the JSON, and the portal validates it. Results appear in a Valid documents sheet, and mismatches for periods from November 2024 onward appear in an Invalid documents report.

Invoices for GSTR-2B periods from November 2024 onward are matched against your 2B, and mismatches are flagged in the Invalid documents report. Invoices for periods up to October 2024 are not validated against 2B; the system shows a generic not-validated message but still counts them among the validated documents. That is expected behaviour, not an error.

Each utility file holds up to 10,000 line items, and up to 25 files can be uploaded per refund application — a total of 2,50,000 line items. If the claim exceeds this, upload 2,50,000 through the utility and submit the balance invoices as supporting PDFs.

Dropdown values that do not exactly match the prescribed list (including stray leading or trailing spaces), data pasted into frozen or protected cells, an old utility version left open alongside a new one, duplicate line items sharing the same supplier GSTIN, invoice number, invoice date, input-supply category and HSN/SAC, and manual edits to the JSON after it was generated.

No. Never edit the JSON directly and do not rename it. If a change is needed, correct the data in the Excel utility, revalidate, and generate a fresh JSON. Editing or renaming the generated file typically causes upload or validation failures.

When a claim is split across several utility files because of the 10,000-line limit, 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, so review the consolidated summary carefully before submitting.
NR

About the author: CA Neeraj Rohilla, FCA

Co-Founder & Chartered Accountant, Startup Advisory — Saket, New Delhi

CA Neeraj Rohilla is a Fellow Chartered Accountant (FCA) and a co-founder of Startup Advisory. He leads the firm's work on company registration, Startup India (DPIIT) recognition, income-tax advisory and virtual CFO services for founders across Delhi NCR.

Our Testimonials

Our Clients

Latest Updates

Fresh guides on tax, GST and startup compliance from our CA team.

Get a Free Consultation

Share your details — our experts call you back.