How-to · Zoho & GST filing

Filing GSTR-1 straight from Zoho Books. The GST-portal step that quietly expires

The short answer

Filing GSTR-1 directly from Zoho Books needs API access enabled separately on the GST portal (My Profile > Manage API Access), on top of GST being configured inside Zoho Books. That access is granted for a duration you choose, not permanently — when it lapses, Zoho Books starts asking for OTPs again or rejecting pushes, which looks like a Zoho problem but is a portal-side authorisation that quietly ran out.

Zoho Books can push your outward supply data to the GST portal and file GSTR-1 without you opening a second tab. The part that breaks isn't usually Zoho Books — it's a separate, time-bound permission on the government portal itself, one that Zoho's own docs mention but don't fully explain, and that lapses without telling anyone.

Push, then file — two different things

Zoho's GSTR-1 documentation splits the job into two separately documented actions with their own steps and their own OTP: Push Transactions to the GST Portal, and File GSTR-1 Through Zoho Books. The distinction matters: pushing puts your data on the portal, it is not by itself a filed return. You can push data to the portal and still not have filed anything; conflating the two is the first place people lose track of where a return actually stands.

Both steps happen inside Zoho Books once the connection is live: go to Filing & Compliance on the left sidebar, select GST Filing, choose the GSTR-1 return for the period, click File Now, and select File Online. A popup then asks for your PAN; click Generate OTP, enter the OTP sent to your registered mobile number, and click File Now again to complete the filing. Then click Mark as Filed from the returns page — the step Zoho's own page calls out separately, and the one that actually closes the loop on whether a return shows as done. Nothing in that flow requires a separate browser tab on the GST portal — that's the entire value of the integration, and also why a failure inside it is easy to miss: there's no second screen forcing you to double-check.

The step that isn't inside Zoho Books at all

Before any of that works, per Zoho's API access setup page, you have to authorise the connection on the government portal itself — this step lives entirely outside Zoho Books:

StepWhereWhat you're doing
1. Log inwww.gst.gov.inSign in with your ordinary GST portal credentials
2. Open your profileClick your name, top right > My ProfileNavigates to your registration's profile page
3. Open API accessManage API Access, under Quick LinksThe screen that governs whether any third-party software — Zoho Books included — can talk to your GSTIN's data
4. Enable itSelect Yes under Enable API RequestReveals a Duration dropdown
5. Set the window and confirmDuration dropdown > CONFIRMGrants API access for the period you selected
Zoho's own documentation doesn't say what the Duration options are, or how long the grant lasts once you pick one — and we're not going to invent a number here. The page tells you to "select a duration from the dropdown" and stops there; it says nothing about renewal, expiry or what happens when the window closes. Several third-party GST filing guides describe a maximum window — most commonly cited as 30 days — but none of them are GSTN or Zoho themselves, so treat that figure as unconfirmed and read the actual options off your own portal screen rather than off any guide, including this one (checked 26 August 2026).

Zoho's filing page says it a second way, in the push step rather than the prerequisites: pushing sends an OTP to your GST-registered mobile or email "if your session has expired". Read alongside the Duration dropdown above, the shape of the mechanism is clear even where the exact number isn't: API access is a time-bound grant, not a one-time toggle, and Zoho Books has no way to renew it on your behalf — only you, logged into the GST portal directly, can do that.

Video walkthrough by Zoho Books — embedded with credit; the guide above is our own.

This video predates the current Zoho Books interface — it dates from 2018. Every step and menu label above is sourced from Zoho's current written documentation, not from the video.

Why this is the step people forget every renewal

Nothing about a lapsed API access grant looks like what it is. It doesn't produce an error that says "your GST portal authorisation expired". Zoho's own documentation says an OTP is sent when the session has expired; the symptom is that this starts happening on an integration that was working fine last month — Zoho Books asking for an OTP again, or a push simply not going through. Because the renewal happens on a different site, logged into with different credentials, for a screen most finance teams only ever visit once during setup, it's easy to read the symptom as "Zoho Books is being unreliable" rather than "the portal-side grant ran out" — and to spend time troubleshooting the wrong system.

The honest fix isn't a Zoho setting: it's putting a recurring reminder against whatever window you chose in the Duration dropdown, in the same calendar you'd use for a filing deadline, rather than waiting to notice a failed push.

When a push doesn't match your books

A failed push is the visible failure mode. A subtler one, documented in a live Zoho community thread, is a push that "succeeds" but doesn't carry everything your books show — one user reported pushing a period's credit notes and having only one of three actually land on the portal and in Zoho's own summary, and a separate case where UTGST values failed to push on intra-state Union Territory transactions while CGST pushed correctly. Neither case threw an error; both were only caught because someone compared the portal figures against the books line by line.

Per Zoho's filing page, transactions that do fail outright are routed to a Failed Transactions tab, and a successful push triggers a confirmation email and an in-app notification — but nothing forces anyone to open that tab or read that email. A push that fails silently, or succeeds with fewer line items than your books actually contain, only surfaces as an unreconciled gap weeks later — usually when a buyer's credit doesn't show up correctly, or when someone finally sits down to tie GSTR-1 against the sales register at month-end. Catching that gap invoice by invoice, on every push whether it reported success or not, is exactly the kind of continuous checking that's painful to do manually — and by the time it's noticed the old-fashioned way, it's usually already cost a return cycle.

Zoho's page also notes a related manual step, not an automated one: once GSTR-1 is filed, correcting figures found to be wrong afterwards isn't a re-push — you amend them in the GST portal directly, under GSTR-1 sections 9A/9C, in the following period's return. Note that Zoho's page documents only the next-period route. GSTR-1A (inserted by Notification 12/2024-CT dated 10.07.2024) lets you amend the same period's GSTR-1 after filing it and before filing that period's GSTR-3B, so a same-period fix doesn't have to wait for the following period.

What's genuinely undocumented — and what QRMP filers need to know

Being direct about the gaps rather than guessing across them: Zoho's GSTR-1 filing page says nothing about how long a pushed transaction takes to actually appear on the GST server, and nothing about what — if anything — to separately check on the GST portal after a push completes.

On IFF and QRMP, Zoho's documented route is a different one from the push/file flow above: there is no push-and-file flow for the Invoice Furnishing Facility. Zoho Books produces an IFF report (Reports > Invoice Furnishing Facility (IFF) > Export As > JSON), which you then upload on the GST portal yourself. Zoho's GSTR-1 filing page doesn't mention IFF or QRMP at all, so treat the API push/file flow described above as documented for the full quarterly GSTR-1 only — not for the two interim months of a QRMP quarter.

Why an unfiled or incomplete GSTR-1 is worse than a missed filing date

The consequence chain runs further than the current period. Under Section 16(2)(aa) of the CGST Act read with Rule 36(4) of the CGST Rules, a buyer's ITC on an invoice or debit note depends on the supplier having furnished it in GSTR-1 and on its communication in the buyer's GSTR-2B — an invoice that quietly failed to push never gets there, no matter how correct the books look on your side. An unpushed credit note fails the other way round: the buyer's 2B keeps credit that should have been reversed, and your own output liability stays understated until you fix it. And return filing itself is now interlocked: Section 37(4) of the CGST Act (inserted by the Finance Act 2022, in force 1 October 2022 via Notification 18/2022-CT) bars furnishing GSTR-1 for a tax period if the return for a previous period was never furnished at all — separately, Rule 59(6) of the CGST Rules bars GSTR-1 (and the IFF) in several cases, among them where the preceding period's GSTR-3B wasn't filed, or where a Rule 88C/88D intimation was issued and neither paid nor answered. A return you never actually completed filing, because a push kept failing quietly, can therefore block the next one — not because the amount involved was large, but because the period was never closed out.

How Recoup fits in

Recoup doesn't push or file GSTR-1 — that's Zoho Books' job, and the setup above is what makes it work reliably. What Recoup does is check the result: it reconciles what your books say you sold and bought against what the GST portal actually shows, invoice by invoice, continuously rather than at month-end — so a push that silently dropped a credit note, or a UTGST line that never landed, surfaces as a named gap in days, not as a mismatch someone stumbles into during the next filing cycle.

Don't find out about a bad push at month-end

Recoup reconciles what Zoho Books says you filed against what the GST portal actually shows — invoice by invoice, continuously — and names the gap before it becomes someone else's ITC problem.

Book a demo →

Related guides