GSTR-9 or the annual return can only be submitted or filed online. However, a majority of the details can be filled offline by using an offline utility provided by the Goods and Services Tax Network (GSTN). Further, those taxpayers who have to enter more than 500 records per table in Table 17 and 18 of the GSTR-9 will not be able to enter such details online. They will compulsorily have to use the offline utility to do so.
Key Takeaways
- GSTN released Consolidated FAQs on GSTR‑9/9C to guide taxpayers in annual return filing for FY 2024‑25.
- CBIC issued key notifications revising annual return and reconciliation formats for FY 2024‑25:
- Notification No. 13/2025‑Central Tax - amended CGST Rules introducing new ITC reporting fields.
- Notification No. 15/2025‑Central Tax - exempted taxpayers with turnover up to ₹2 crore from filing GSTR‑9.
- Notification No. 16/2025‑Central Tax - updated GSTR‑9 format to enable IMS‑based ITC auto‑population, new reversal disclosures.
- GSTR-9 is the annual GST return that consolidates all GSTR-1, 2A/2B and 3B data for a financial year, covering outward and inward supplies, tax paid and ITC.
- For FY 2024-25, filing GSTR-9 is mandatory if aggregate turnover exceeds ₹2 crore, while GSTR-9C is required if turnover exceeds ₹5 crore.
- The GSTR-9 due date for FY 2024-25 is 31st December 2025, and delay attracts a late fee of ₹200 per day (₹100 CGST + ₹100 SGST), capped at 0.25% of turnover.
The offline utility can only be used on a desktop/laptop and not on a mobile device. The following are the system requirements:
Step 1: Visit the GST portal.
Step 2: Navigate to Downloads > Offline Tools > GSTR-9 Offline Tool.
Step 3: Click on ‘Download’ hyperlink and then ‘Proceed’.
Step 4: Extract the contents of the zip file downloaded above. Navigate to the location of the extracted files and open the excel utility.
Step 5: The excel utility will automatically open on the home sheet. Click on ‘Enable Editing’.
Please ensure that macros are enabled by clicking on ‘Enable content’.
A pop-up dialogue box will be displayed with the message ‘Open saved version’ with an option to click on either ‘Yes’ or ‘No’. If ‘Yes’ is selected, the utility will open with any previously saved data. If ‘No’ is selected, any old unsaved data will be lost, and a new blank utility will open.
Step 6: On the home sheet, enter the GSTIN and the financial year for which the return is being filed. Leave this utility running while the following steps are performed.
Step 1: Log in to the GST portal.
Step 2: Navigate to Services > Returns > Annual Return or click on ‘Annual Return’ on the dashboard.
Step 3: Select the financial year for which you want to upload details. Click on the ‘Search’ button.
Step 4: On the GSTR-9 tile, click on the ‘Prepare Offline’ button. Move to the ‘Download’ section and click on the ‘Generate JSON file to download’ option.
The JSON file will take up to 20 minutes to get generated. After it is ready, click on the ‘Click here to download – File 1’ hyperlink.
The GSTR-9 JSON file will be downloaded. This file contains system-computed Form GSTR-9 data based on filed Form GSTR-1 and Form GSTR-3B for editing in the offline tool with a few exceptions.
Step 5: Unzip/extract the download file. A JSON file will be available on the extracted location.
Step 6: Go back to the offline utility and navigate to the ‘Home’ tab. Click on the ‘Open Downloaded Form GSTR-9 JSON File’ button.
Step 7: Navigate to the location of the saved JSON file and click on ‘Ok’ to proceed. The utility will display a message for successful import of the GSTR-9 JSON file.
Enter the following details in the sheets as follows:
Note: The generated JSON file that was initially downloaded from the GST portal will be used to source the auto-populated data from already filed Form GSTR-1 and GSTR-3B into the respective fields in Table 4 to Table 18 of the Form GSTR-9. Some of this data will also be populated into non-editable fields.
Validate the data and generate the JSON file:
Step 1: Table 4 to Table 18 of the workbook will have a validate button on every sheet. Once data is filled into a particular sheet, click on ‘Validate’. If the information is in order, a success message is displayed. In case of an error, the same will be displayed.
Step 2: After validating every sheet, go to the ‘Home’ sheet and click on the ‘Generate JSON File to upload’ button.
Step 3: The ‘Save As’ pop-up window will be displayed. Choose where you want the JSON file to be saved and click on the ‘Save’ button.
A message will be displayed that details are saved successfully and asking the user to upload the file on the GST portal.
Step 1: Log in to the GST portal.
Step 2: Navigate to Services > Returns > Annual Return.
Step 3: Select the financial year for which you want to upload details. Click on the ‘Search’ button.
Step 4: On the GSTR9 tile, click on ‘Prepare Offline’. The ‘Upload’ section will be displayed by default.
Step 5: Click on the ‘Choose File’ button and navigate to the location of the generated JSON file. Click on ‘Open’ when done.
A message showing the successful upload of the JSON file will be displayed and you will be asked to wait until the GST portal validates the uploaded data. The status of the uploaded JSON file will be shown in the ‘Upload History’ section.
In case there were no errors, the status would appear as ‘Processed’.
In case there were errors in the data uploaded, the ‘Upload History’ section will show the status of the JSON file as ‘Processed with Errors’ and provide a hyperlink to ‘Download Error Report’ if any.
Click on the ‘Generate error report’ link to save the error JSON file. Instructions to resolve the errors are provided later in this article.
To preview the filled data, in the annual return GSTR9 table, click on ‘Prepare Online’.
A question will be displayed: ‘Do you want to file a Nil return?’ Answer this question and click on ‘Next’.
The Form GSTR-9 annual return for normal taxpayers page will be displayed along with fully furnished details in Table 4 to Table 18 that were filed using the offline utility. A preview of the form can be obtained by clicking on either the ‘Preview Draft GSTR-9 (PDF)’ or the ‘Preview Draft GSTR-9 (Excel)’ button.
For instructions on how to proceed with the filing, click here.
Extract the error JSON file as mentioned earlier to a convenient location on your computer and follow the following instructions:
Step 1: Open the offline utility and navigate to the ‘Home’ sheet.
Step 2: Click on the ‘Open Downloaded Error JSON Files’ button. Navigate to the location of the stored error JSON files and click on ‘Ok’. Ensure both the files from the unzipped folder are selected before clicking on ‘Ok’. A message saying ‘Error Files successfully Opened’ will be displayed.
Step 3: On each individual sheet, go through the column ‘GST Portal Validation Errors’. You will see a text in this column informing the user of the nature of the error. Make the requisite corrections and click on the ‘Validate Sheet’ button on every sheet.
Step 4: Go to the ‘Home’ sheet and click on the ‘Generate JSON File to upload’ button.
Step 5: The ‘Save As’ pop-up window will be displayed. Choose where you want the JSON file to be saved and click on the ‘Save’ button. A message will be displayed asking the user to upload the file on the GST portal.