Filing GSTR-1 straight from Zoho Books. The GST-portal step that quietly expires
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:
| Step | Where | What you're doing |
|---|---|---|
| 1. Log in | www.gst.gov.in | Sign in with your ordinary GST portal credentials |
| 2. Open your profile | Click your name, top right > My Profile | Navigates to your registration's profile page |
| 3. Open API access | Manage API Access, under Quick Links | The screen that governs whether any third-party software — Zoho Books included — can talk to your GSTIN's data |
| 4. Enable it | Select Yes under Enable API Request | Reveals a Duration dropdown |
| 5. Set the window and confirm | Duration dropdown > CONFIRM | Grants API access for the period you selected |
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.
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.
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
Connecting Zoho Books to your Indian bank feed
The other one-time connection most Zoho Books setups get wrong.
Auto-categorising bank transactions in Zoho Books
The automation that saves hours on the bank side — and the one rule pattern that breaks your ITC evidence.
GST reconciliation: the 2026 guide for finance teams
Why a mismatch between what you filed and what you booked becomes a reconciliation problem, not just a filing one.
Input Tax Credit: eligibility, reversals & the 30-Nov clock
What a supplier's incomplete or unfiled GSTR-1 does to their buyer's credit.