BahiFlow: how a chartered accountancy firm stopped chasing clients for invoices every GST deadline
A chartered accountancy firm with hundreds of GST and income-tax clients spent every deadline week chasing documents over WhatsApp and re-keying invoices. We built BahiFlow: a client document app, AI invoice extraction, a compliance calendar and a practice management system for the firm's staff — 24 features that turned deadline week from a scramble into a checklist.

Deadline week
BahiFlow's managing partner described the tenth to the twentieth of every month as "deadline week that lasts ten days". Articled assistants spent it messaging clients for invoices, receiving blurry photos at midnight, typing invoice details into accounting software, and then discovering on the last day that a client had forgotten half their purchases.
The firm had grown by word of mouth to hundreds of clients, mostly small traders and manufacturers. Each new client added more WhatsApp threads, more spreadsheets tracking who had sent what, and more late nights. Hiring more staff was not keeping up.
“We are chartered accountants. We spend half the month as document collectors.”
A week at the firm
We spent the week before a GST deadline in the firm's office. The pattern was clear within a day. Collecting documents was the bottleneck, not preparing returns. Clients were not careless; they simply did not know what the firm needed each month, and a WhatsApp message sent at the wrong moment was easy to forget.
We also noticed the firm's unwritten knowledge: which clients always sent sales but forgot purchases, which ones needed a phone call rather than a message, and which filings each client needed. None of it was written down anywhere except in staff members' heads.
- A clear monthly checklist for each client of what to send
- One place for documents instead of dozens of WhatsApp chats
- Invoice data extracted without typing
- A single view of every client's filings and their status

Meeting clients where they already are
Most of the firm's clients were not going to learn a new app, so we designed two ways in. Clients who wanted structure got a simple Android app showing exactly what was due each month and a camera to capture it. Everyone else could keep using WhatsApp: documents sent to the firm's business number were filed automatically against the right client and month.
Automatic reminders did the chasing. A few days before each deadline, clients with missing documents got a polite, specific message in Gujarati or English — not "please send documents" but "we have your sales invoices for March; we still need purchase invoices and the bank statement".
The team
A compact team, because the firm wanted results before the next quarterly filing season.
Partner workshops, deadline-week observation and rollout.
Client app, reminder copy and the compliance calendar.
Practice portal, client records and workflow.
Client Android app and document capture.
OCR, LLM extraction and validation rules.
Extraction accuracy testing and filing scenarios.
7 people in total, working as one team.
Key decisions
These decisions were made with the partners, who knew better than anyone what their clients would and would not tolerate.
Force clients onto an app?
- App only
- App plus WhatsApp intake
Our call: App plus WhatsApp intake. Many small traders would never install another app. WhatsApp intake meant every client could participate from day one, while the app served those who wanted more.
Fully automatic extraction?
- Post extracted data straight to accounts
- Staff confirm every invoice, with uncertain fields highlighted
Our call: Staff confirm every invoice, with uncertain fields highlighted. Tax filings carry penalties for errors. Confirmation keeps accountants responsible while replacing typing with checking.
Replace the firm's accounting software?
- Build accounting into BahiFlow
- Export clean data to the software they already use
Our call: Export clean data to the software they already use. The firm and its clients already relied on established accounting software. BahiFlow's job was to feed it clean data, not to replace it.
How to handle client-specific knowledge?
- Leave it with staff
- Capture it as client profiles and filing rules
Our call: Capture it as client profiles and filing rules. Recording which filings each client needs and how they prefer to be contacted protected the firm when staff changed.
The 24 features
Everything that shipped, organised around the firm's monthly cycle: collect, extract, prepare, file.
- 01Monthly document checklist
Each client sees exactly what is due and what has been received.
- 02Camera capture
Multi-page capture with edge detection and enhancement.
- 03WhatsApp intake
Documents sent on WhatsApp filed against the right client and month.
- 04Specific reminders
Messages naming the exact missing documents, in Gujarati or English.
- 05Client acknowledgements
Clients notified when documents are received and returns filed.
- 06Invoice OCR and extraction
Supplier, GSTIN, amounts and taxes extracted automatically.
- 07Validation rules
GSTIN checks, tax arithmetic and date sanity.
- 08Review queue
Confirm-or-correct screen with uncertain fields highlighted.
- 09Duplicate invoice detection
Flags invoices already recorded.
- 10Bank statement parsing
Transactions extracted from statement PDFs.
- 11Compliance calendar
Every client and every filing, with status, on one page.
- 12Client profiles and filing rules
Which returns each client needs and when.
- 13Staff work allocation
Assign clients and filings to staff with workload view.
- 14Task checklists
Step-by-step checklists per filing type.
- 15Deadline alerts
Warnings for filings at risk of missing their due date.
- 16Accounting software export
Vouchers ready to import into the firm's accounting software.
- 17Return-ready summaries
Totals by tax rate and type for filing.
- 18Billing and fee tracking
Professional fees raised and collected per client.
- 19Document archive
Every document stored by client, year and month.
- 20Role-based access
Partners, managers and assistants with different rights.
- 21Audit trail
Every extraction, correction and filing recorded.
- 22Partner dashboard
Filings on track, at risk and completed across the firm.
- 23Data export
Complete export of client data at any time.
- 24Secure client login
OTP-based access for clients.

Building the extraction pipeline
Invoices in the firm's world are anything but standard: printed, handwritten, photographed on a shop counter, sometimes two to a page. We combined OCR with an LLM extraction step that returns structured fields, then validated the results against rules — GSTIN format and checksum, tax arithmetic, date sanity — before anything reached a staff member.
Staff review every extracted invoice, but instead of typing they confirm, with uncertain fields highlighted. We measured extraction accuracy on a set of real invoices from the firm and only widened the rollout once staff were confirming far more than correcting.
- Weeks 1–2Discovery
A GST deadline week observed inside the firm.
- Weeks 3–4Design
Client checklist, reminder copy and calendar prototyped.
- Weeks 5–11Build
Intake, extraction pipeline and practice portal.
- Weeks 12–14Accuracy testing
Extraction measured on real invoices; staff pilot.
- Weeks 15–16Launch
All clients invited before the next GST cycle.
The first deadline on BahiFlow
The first full GST cycle on BahiFlow was noticeably quieter. Most clients had sent documents before the reminders even started, and staff spent their time reviewing returns instead of collecting paper. The partners' favourite screen turned out to be the compliance calendar, which showed every client and every filing on one page for the first time.
What we learned
Specific reminders work; generic ones do not. Telling a client exactly what is missing got a response; asking for "documents" got ignored.
Keep the existing channel. Letting clients continue to use WhatsApp, while BahiFlow organised everything behind it, removed the biggest adoption barrier.
- Next.js
- React Native
- NestJS
- PostgreSQL
- Invoice OCR and LLM extraction
- WhatsApp Business API
- AWS Mumbai

