Filing GSTR-1 is a monthly or quarterly obligation for every GST-registered business. If you use Tally for accounting, you can generate the GSTR-1 data directly in JSON format and upload it to the GST portal without re-entering a single figure. This guide walks you through the complete process, step by step.
What is a GSTR-1 JSON File?
GSTR-1 is a return containing details of all outward supplies made during a period. The GST portal accepts data in JSON (JavaScript Object Notation) format — a structured file that the portal reads and maps automatically to the right fields. Tally ERP 9 and TallyPrime can generate this file directly from your sales data, provided entries are made correctly.
Before You Begin: Key Checks
Skipping pre-export checks is the most common reason for portal errors. Confirm that your GST registration details in Tally match your GSTIN exactly — state code, legal name, and filing frequency. All sales vouchers for the period must be posted, not sitting in draft. Cancelled transactions should be reversed properly, not simply deleted. Every stock item or service ledger must have an HSN or SAC code mapped to it, since the portal rejects entries without valid codes. Customer GSTINs in party ledgers must be valid 15-character alphanumeric entries — invalid GSTINs cause B2B mismatch errors at the portal. Finally, make sure Tally is on the latest release, as GST schema updates on the portal require matching version support.
Step-by-Step: Export GSTR-1 JSON from TallyPrime
Step 1 — Open the GST Returns menu
Go to Gateway of Tally. Select Display More Reports, then Statutory Reports, then GST Returns. Choose GSTR-1.
Step 2 — Set the return period
Press F2 to change the period. Enter the From and To dates matching the GSTR-1 period you intend to file — typically the first and last day of the month, or the quarter for QRMP filers.
Step 3 — Reconcile the return data
Tally shows a summary screen with section-wise breakup — B2B, B2C Large, B2C Others, Credit/Debit Notes, Exports, and HSN Summary. Review each section. Any entry marked with a warning or shown in a different colour needs attention before export. Do not proceed if Tally shows “Incomplete/Mismatch in Information” against any section. Resolve those entries first — fixing them after upload is significantly more work.
Step 4 — Export to JSON
Press E for Export from within the GSTR-1 screen. Select E-Return. Tally will prompt you to choose the format — select JSON. Confirm the file path (default is the Tally data folder) and press Enter. Tally generates a file named in the format GSTR1_[GSTIN]_[Period].json. Note this file path — you will need it during upload.
If you are on Tally ERP 9, navigate to Gateway of Tally, then Display, then Statutory Reports, then GST, then GSTR-1. The export steps are the same; only the menu path differs.
Step-by-Step: Upload GSTR-1 JSON to the GST Portal
Step 1 — Log in to the GST Portal
Go to gst.gov.in and log in with your credentials. Navigate to Services, then Returns, then Returns Dashboard.
Step 2 — Select the return period
Choose the Financial Year and Return Filing Period from the dropdown. Click Search. Locate GSTR-1 and select Prepare Offline — this is the path for JSON upload.
Step 3 — Upload the JSON file
Click Choose File. Browse to the JSON file generated by Tally. The portal validates the file before accepting it. Successful validation shows a confirmation message with a reference token. Failed validation returns specific error codes that tell you exactly which records need correction.
Step 4 — Preview and submit
Once the file processes — which can take a few minutes — go back to the Returns Dashboard and open GSTR-1. Click Preview to verify all sections have populated correctly. When satisfied, click Submit, then File with DSC or EVC depending on your authentication method. After filing, download the acknowledgment and save it. This is your legal proof of filing.
Common Errors and Fixes
| Error / Issue | Likely Cause | Fix in Tally |
|---|---|---|
| Invalid GSTIN format | Party ledger has incorrect or missing GSTIN | Update ledger master with the correct 15-digit GSTIN and re-export |
| HSN/SAC not found | Stock item or service ledger has no HSN mapped | Add the correct HSN/SAC code in inventory or ledger master |
| Tax amount mismatch | Manual override of tax or incorrect tax ledger | Remove manual overrides in the voucher and let Tally auto-calculate |
| JSON schema invalid | Tally version out of date for current portal schema | Update Tally to the latest release and re-export |
| File size too large | High invoice volume exceeds portal file size limit | Split the JSON using the GST Offline Tool and upload in parts |
| Duplicate invoice number | Same invoice entered twice in Tally | Identify and reverse the duplicate voucher, then re-export |
QRMP Filers: What Is Different?
Businesses with annual turnover up to Rs 5 crore can opt for the Quarterly Return Monthly Payment scheme. GSTR-1 is filed quarterly, but the Invoice Furnishing Facility is available for Month 1 and Month 2 of the quarter for B2B invoices. The JSON export process in Tally is identical — only the period selection changes. Select the quarter dates for the full GSTR-1 and the monthly dates when using IFF.
Frequently Asked Questions
Q1. Can I upload a JSON file generated by Tally ERP 9 to the GST portal?
Yes. Tally ERP 9 (Release 6.6.3 and above) supports GSTR-1 JSON export in the current portal schema. The process is the same as TallyPrime, though the menu path differs slightly under Display, then Statutory Reports, then GST.
Q2. How long does the portal take to process the uploaded JSON?
Processing usually takes between 2 and 15 minutes depending on file size and portal load. During peak filing dates — the last two to three days before the due date — processing can take longer. Filing a few days early avoids this delay entirely.
Q3. What if I need to amend an invoice after filing GSTR-1?
Amendments are made in the next month’s GSTR-1 under the amendment sections such as B2BA or CDNRA. In Tally, use an amended voucher type for the corrected entry. When you re-export the JSON for the next period, Tally includes the amendment data automatically.
Q4. Is it mandatory to use the JSON method, or can I enter data directly on the portal?
Both methods are valid. Direct online entry works well for businesses with very few invoices each period. The JSON upload method is faster and significantly less error-prone for businesses with moderate to high invoice volumes, since data flows straight from Tally without manual re-entry.
Q5. The portal shows a processing error but no specific error code. What should I do?
Download the error report from the portal’s offline tool section. It provides a row-level breakdown of which invoices failed and why. Fix those specific entries in Tally, re-export if needed, or use the GST Offline Tool to edit and re-upload a corrected JSON.
Q6. Does Tally automatically separate interstate and intrastate supplies in the JSON?
Yes. Tally uses the state code in your company GSTIN and the party’s GSTIN to classify supplies as interstate (IGST) or intrastate (CGST plus SGST). This is reflected correctly in the exported JSON — no manual classification is required, provided both GSTINs are entered accurately in the respective masters.
Discover more from
Subscribe to get the latest posts sent to your email.




