The 9 → 0 portals pitch

Indian govt portals are slow, ugly, and confusing.
We're building the layer that means you never see them.

OnGravy replaces incometax.gov.in, gst.gov.in, tdscpc.gov.in, mca.gov.in, ewaybillgst.gov.in, and 4 more with one clean cockpit. Pre-filled returns, AI-drafted notice responses, parallel filing across 50 clients.

See plans →CA-specific landing

Portal by portal — what OnGravy does instead

Portal
The portal pain
OnGravy equivalent
Status
GSTN (gst.gov.in) — e-invoice + IRN
Re-login every 6 hours, captcha, generate IRN one invoice at a time
IRN auto-generated via multi-vendor GSP at the moment of sale
✓ live
EWB (ewaybillgst.gov.in)
Separate login from GST portal. Manual entry.
EWB auto-fired on delivery-note save via vendor API
✓ live
TRACES (tdscpc.gov.in) — 26AS / AIS
Slow, glitchy, requires DSC for download, sessions time out
Pull 26AS / AIS on schedule + reconcile with books
◐ partial
AA Setu (Account Aggregator)
Most CAs still ask the client to email bank statements
4-hourly auto-fetch via consented AA — bank ledger live
✓ live
DigiLocker (digilocker.gov.in)
Each onboarding = client uploads PAN / GSTIN cert / Aadhaar
OAuth pull on signup → 80% of KYC paperwork gone
✓ live
GSTN — GSTR-1 / 3B filing
Fill 200+ fields, hit error code G-3122, no plain-English explanation
JSON pre-built + locally validated. Upload + click Submit (30s)
✓ live
GSTN — GSTR-9 / 9C
Annual filing nightmare. Reconcile books vs 12 GSTR-1 + 12 GSTR-3B by hand
GSTR-9C builder reconciles automatically with diff explanation
✓ live
incometax.gov.in — notices inbox
PDFs buried 4 clicks deep, no filter, no search, no notification
Gmail mode pulls every notice; AI classifies + drafts reply
✓ live
incometax.gov.in — ITR filing
No public API. Long form, captcha, OTP, session timeouts.
Computation pre-built. Computer-use agent drives portal (sandbox)
○ scaffold
MCA portal (mca.gov.in)
Closed API. Browser-only. DSC + Java applet on Windows.
AOC-4 / MGT-7 / DPT-3 XBRL pre-built. Upload + sign with DSC.
◐ partial
TRACES — TDS challan deposit
Generate ITNS-281, pay at bank, type challan no. back into books
Pre-filled ITNS-281 PDF + auto-match challan to deductee lines
◐ partial

Live = shipped, in production. Partial = adapter exists, UI flow being polished. Scaffold = framework in place, target deployment in the next 30-45 days. We publish status changes on /compliance/changelog.

What it actually looks like

Filing GSTR-3B for May

Without OnGravy
  1. Open gst.gov.inCaptcha, OTP, login. ~2 min if portal is up.
  2. Navigate to ReturnsPeriod selector, mode selector, "Prepare online".
  3. Type each value manuallyOutward supplies, ITC available, reverse charge, late fees — 28 boxes.
  4. Hit Save, get an error"G-3122: Schema mismatch on table 4A". No row, no field.
  5. Hunt for the bad rowBrowser dev tools or download → fix → re-upload.
  6. Submit. Pay tax. EVC.20-30 minutes if you're lucky. 2 hours if not.
With OnGravy
  1. Open /dashboard/complianceGSTR-3B for May is already computed from your vouchers.
  2. Review the 4 KPI tilesOutward tax, ITC, net liability, late-fee exposure. Drill down to source.
  3. Hit "Validate"OnGravy runs GSTN's actual schema rules locally in <100ms. Errors in plain English.
  4. Download GSTN JSONOne file, exactly what gst.gov.in expects.
  5. Upload + Submit on portal30 seconds. Or let the computer-use agent do it for you (Pro tier).

Handling a DRC-01 notice

Without OnGravy
  1. Hear about it by accident"Hey, did you see the notice on the portal?" — gst.gov.in doesn't email you.
  2. Log in. Find Notices tab.Three levels deep, 12 PDFs, no order.
  3. Download the PDFIt's 18 pages of section references and a demand line.
  4. Pull books for the periodGSTR-1, 3B, ITC, payments — assemble from Tally + Excel.
  5. Draft a reply in WordCite sections, attach exhibits, mistakes in addressing the AO.
  6. Upload on portal, hope for the bestTracking is the same nightmare Notices tab.
With OnGravy
  1. OnGravy detects the emailGmail scan worker pulls the notice within 15 minutes.
  2. PDF auto-OCR'dNotice body transcribed; you receive an in-app + WhatsApp ping.
  3. Agent classifies + draftsDRC-01 / DRC-02 / ASMT-10 detected. Demand amount + due date extracted. Reply drafted citing sections.
  4. Review on /audit-trail pageEvery event timestamped + actor-stamped. Edit the draft inline.
  5. Submit on portal in 30 secondsMark responded with method=portal → timeline closes the loop.

Filing for 50 clients in one go

Without OnGravy
  1. Open 50 portal tabsOr 50 sequential sessions. Either way, hours.
  2. Lose your place at client 17Captcha expired. Re-login.
  3. No status dashboardMaintain a Google Sheet to track who you've done.
  4. Spread across 3 daysRealistic time on filing peak weekends.
With OnGravy
  1. Open /ca/bulk-filingGrid of every client × every return. Status per row.
  2. Filter to "ready"Pre-validation already ruled out broken returns.
  3. Click File all eligibleParallel submission. Per-client retry on error.
  4. 50 returns in 8 minutesSaturday afternoon, not the whole weekend.

“I haven't logged into gst.gov.in in 11 days. That used to be 11 sessions a week.”

— Indicative of the workflow we're shipping for. Early-access CA reviewer feedback, May 2026.

The honest FAQ

Are you "screen-scraping" the portals? Is that legal?

For everything in Layer 1 of our stack (e-invoice, e-way bill, GSTR returns, AA Setu, DigiLocker) we use the official GSP / API / OAuth channels. No scraping. For the residual portals without APIs (parts of MCA, parts of ITR), our computer-use agent runs in a sandboxed browser that the user sees on their own screen — same as a junior accountant clicking through the portal under your direction. You're always the principal; we never bypass your DSC or your consent.

What about captchas and 2FA?

Captchas and OTPs stay with the human, always. When the agent hits one, it pauses and shows you the challenge in OnGravy — you type in the captcha, we hand it back to the agent. Never auto-solved.

When GSTN ships a UI change, doesn't your automation break?

Yes. We commit to a 30-day SLO for fixing portal-change breakage — same as our compliance changelog SLO. Until the patch ships, the affected flow falls back to "pre-fill + manual click" mode (so you go from 1-click to 5-click, not 1-click to broken).

My CA still wants to log into the portal to "be sure". Is that allowed?

Of course — OnGravy is a layer, not a replacement. Your CA can verify on the portal any time. The point is that they shouldn't HAVE to.

What about MCA forms that need DSC signing?

DSC always stays with you. We pre-fill the form, run local validation, generate the XBRL — you plug in your DSC token and click Sign + Submit. Time on portal drops from ~45 min to ~90 seconds.

Stop fighting the portals.

Plans from ₹299/month. Connect Gmail in notices mode in the first 5 minutes. See the difference within one filing cycle.

See plans →

30-day money-back guarantee. No portal logins. Just OnGravy.