Setting up e-invoicing in Zoho Books — the one-time IRP connection most businesses get wrong
In Zoho Books, turn on e-Invoicing under Settings, then connect to the Invoice Registration Portal — automatically, if you already push e-Way Bills through Zoho Books, or by registering an API user "Through GSP" on the government portal and selecting Zoho Corporation as your GSP. Only after that one-time connection can you push an invoice for an IRN; skip it and every push fails in the same place.
e-Invoicing in Zoho Books looks like a single toggle. The actual work is a one-time registration on the government's own Invoice Registration Portal, done once per GSTIN, that most guides skip past in a line. Get that step wrong and every invoice you push afterwards fails at the same point — and a failed push, unlike a failed bill, doesn't stop you from carrying on with your day.
Who this applies to, and what to check before you touch Zoho
e-Invoicing is set up per GSTIN, and whether it applies to you turns on turnover, not on Zoho Books. Under Rule 48(4) of the CGST Rules, a registered person — other than a government department, a local authority, a Special Economic Zone unit, an insurer, a banking company or financial institution (including an NBFC), a goods transport agency, a passenger transport service, or a multiplex-cinema admission supplier — must generate e-invoices for its B2B supplies and exports (B2C invoices are outside Rule 48(4)) once its aggregate turnover has exceeded ₹5 crore in any preceding financial year from 2017-18 onwards (Notification 13/2020-CT dated 21 March 2020, as amended by Notification 10/2023-CT w.e.f. 1 August 2023). Two details trip people up: it is a preceding-year test, not a current-year one, and coverage is permanent — crossing ₹5 crore once keeps you in the regime even if turnover later falls back below it. If you've read that the threshold has since dropped to ₹2 crore, treat that as unconfirmed: as of August 2026 no CBIC notification sets that figure for e-invoicing, and the real ₹2 crore instruments on record (Notifications 14/2024-CT and 15/2025-CT) are annual-return filing exemptions — a different provision entirely.
Prerequisite inside Zoho: GST must already be configured for your organisation. e-Invoicing can't be enabled on an org where GST hasn't been set up first.
The one-time IRP connection
This is the step the guides gloss over, because it happens once and then disappears from the workflow. Go to Settings > e-Invoicing and select Enable e-Invoicing. What happens next depends on whether you're already connected to the government's e-Way Bill system through Zoho Books:
- Already pushing e-Way Bills through Zoho Books? Your IRP credentials carry over automatically — nothing further to register.
- Not using e-Way Bills through Zoho? You need a fresh registration:
- Log in to einvoice1.gst.gov.in with your GSTIN credentials.
- Go to API Registration > Create API User > Through GSP.
- Select Zoho Corporation from the list of GST Suvidha Providers, and set a username and password for this API user — this is separate from your GST portal login.
- Back in Zoho Books: Settings > e-Invoicing > Connect Now, enter that username and password, and click Save & Validate.
Then open Settings > Roles and, for every non-admin user who needs to push invoices, enable "Push and Cancel Transactions" under the e-Invoicing section of their role. Admin users get this by default — which is exactly why a non-admin accountant can be blocked with no obvious error the first time they try to push an invoice.
Pushing invoices once you're connected
With the connection live, each invoice, credit note or debit note can be pushed to the IRP with one click, or in bulk — filter by e-invoicing status, select multiple transactions, and push together. A successful push returns the IRN and a QR code — a Rule 46(r) invoice must carry a QR code with the IRN embedded in it, so that isn't a cosmetic option; switch on the relevant display settings in your PDF template rather than leaving them off. If a bulk push fails, Zoho reports it both in the UI — filter transactions on "Yet-to-be-pushed for e-Invoicing" to see the backlog — and by an error summary emailed to whoever initiated the push, but only if someone reads that email or checks the filter.
Three mechanics worth knowing before your first month-end, all portal/vendor behaviour rather than anything fixed by rule or notification, and all current only as of August 2026:
- Retrospective IRN linking. If an invoice was already pushed to the IRP outside Zoho Books, its IRN can usually be fetched automatically for invoices generated within the last six months; older ones need the IRN, acknowledgement number and acknowledgement date entered manually.
- Cancellation has a hard clock. The IRP itself is not required to retain e-invoice data beyond 24 hours, so an IRN can only be cancelled — in full, not partially — within that window, and only if no e-way bill has already been generated against it. Cancelling inside 24 hours in Zoho Books cancels it on the IRP too, and the same invoice number cannot be reused for a fresh IRN afterwards. Miss the window and the fix is not a portal "cancel" button: the supplier must issue a credit or debit note, or edit the details when reporting the period's GSTR-1.
- Old invoices can be locked out entirely. Per a GSTN advisory dated 27 March 2025, from 1 April 2025 taxpayers with aggregate turnover of ₹10 crore or more cannot report an invoice, credit note or debit note on the IRP more than 30 days after its document date — past that window, no IRN can ever be generated for it. GSTN states there is no such reporting restriction below ₹10 crore "as of now", but this is IRP validation resting on no rule or notification, and it is configurable without further notice.
The failure mode nobody mentions: a silent IRN failure and your GSTR-1
This is the part that actually costs money, and it's why the setup above matters more than it looks. Under Rule 48(5), an invoice that should have gone through the IRP but didn't "shall not be treated as an invoice" at all — not a defective one, legally no invoice. That matters to whoever receives it: ITC depends on holding a valid tax invoice (Section 16(2)(a)), and on that invoice actually reaching the buyer's GSTR-2B through the supplier's GSTR-1 (Section 16(2)(aa)).
Per GSTN's advisory on auto-population of e-invoice details into GSTR-1 (30 November 2020), documents reported on the IRP are transmitted to the GST system two days after generation (T+2) and auto-populated into the respective GSTR-1 tables — B2B supplies into Table 4A, reverse-charge supplies into 4B, exports into 6A, and credit/debit notes into 9B — as of August 2026, this being GSTN portal mechanics rather than anything the Rules themselves fix. Edit those auto-populated fields directly in GSTR-1 and the IRN link resets: per the same advisory, the system deletes the auto-populated Source/IRN/IRN-date data, and the entry becomes an ordinary manually-uploaded document rather than one traceable back to the e-invoice.
Put the two together and the actual risk isn't "IRN generation is annoying" — it's this: if a push to the IRP fails and the error email goes unread, that invoice never receives an IRN, is not a valid invoice under Rule 48(5), and never auto-populates into GSTR-1 at all. Unless someone manually reports it separately, it simply never reaches your buyer's GSTR-2B — a real sale that generated no reconciliation trail on either side, discovered, if at all, only when someone works invoice-by-invoice through what the books say you sold against what actually shows up in the portal. That invoice-by-invoice comparison, across every push whether it succeeded or not, is what Recoup runs continuously rather than at month-end.
A first-month checklist
- Confirm the connection, not just the toggle. Push one real invoice in the first week and check the IRN and QR code actually land on it — "Enabled" in Settings doesn't mean the GSP handshake works.
- Read the bulk-push error emails, and check the pending filter. Don't rely on noticing a gap later; a failed push is reported both by an emailed error summary and in the UI under the "Yet-to-be-pushed for e-Invoicing" filter — someone still has to look.
- Check role permissions before go-live day. Confirm every non-admin user who needs to push actually has "Push and Cancel Transactions" enabled — test with their login, not yours.
- Reconcile GSTR-1 against what Zoho pushed. At month-end, compare the invoices Zoho Books shows as e-invoiced against what actually appears in that period's GSTR-1 — auto-populated or otherwise. A gap here is the one this whole setup exists to prevent.
What Recoup does with this once it's live
Recoup works with Zoho Books and reconciles what you've billed against what the GST portal actually shows — checking that vendor invoices carry valid IRNs before you book the credit on them, and, on your own outward side, that every invoice you pushed for e-invoicing actually shows up downstream in GSTR-1 and isn't sitting silently unreported. The setup above gets the pipe connected. Keeping it honest every month is the reconciliation.
e-Invoicing is connected. Is it reconciled?
Recoup checks that every e-invoice you push actually lands in GSTR-1, and that every vendor invoice you claim credit on carries a valid IRN.
Book a demo →Related guides
e-Invoicing
Why an invoice without a valid IRN isn't a legal tax invoice at all.
GST reconciliation: the 2026 guide for finance teams
Why an invoice-level gap upstream becomes an ITC problem downstream.
Input Tax Credit: eligibility, reversals & the 30-Nov clock
The Section 16 conditions a missing or invalid e-invoice can quietly fail.
Connecting Zoho Books to your Indian bank feed
The other one-time connection most Zoho Books setups get wrong.