What month-end looks like for a CA firm serving SMBs
Every month, the same thing happens. 140 clients, each with a pile of Razorpay settlements, bank statements, and sales invoices that need to be reconciled before the GSTR-1 can be filed. Some clients are meticulous and send organized data. Most send a WhatsApp forward of their bank statement and a PDF that is actually a scanned photo of a printout.
The firm had seven accountants. During the month-close window, roughly the 1st through the 12th of each month, everyone worked 10-to-12-hour days. Errors still crept in. Filing deadlines were sometimes missed by hours. The partners wanted to grow the client base, but the math was unworkable: adding 20 clients meant hiring another accountant, who took three months to become productive.
The senior partner had tried three different “accounting AI” tools in the previous two years. All of them were designed for US/UK accounting, handled INR poorly, did not understand the Tally data format, and had no awareness of Indian GST structure.
Building for the actual Indian CA workflow
We started by spending four days working alongside the accountants, watching what they actually did, not what they said they did. The gap between the described workflow and the actual workflow was significant.
What they described: “We get data from clients, enter it in Tally, reconcile with bank, file GST.”
What they actually did: a 23-step process that included manually matching Razorpay payouts to invoices (Razorpay batches payouts by settlement period, not by invoice), converting foreign currency transactions at the correct exchange rate, identifying which transactions were GST-liable and at what rate, flagging B2B transactions that needed HSN codes, and then preparing GSTR-1 data in the format GSTN actually wants (which is specific and finicky).
Every one of those steps was either fully automatable or automatable with a quick human check.
What we built
The Razorpay reconciler: Pulls settlement data via API, matches each payout to the corresponding invoices using a fuzzy matching algorithm (accounting for partial payments, refunds, and the 2-3 day settlement lag). Outputs a reconciliation report that highlights any unmatched transactions. An accountant reviews the exceptions, typically 3-8 per client per month, rather than every transaction.
The Tally voucher generator: Takes the reconciled transaction data and generates XML-formatted voucher files that import directly into Tally. Handles all major voucher types: sales, purchase, payment, receipt, journal, and credit notes. The GST details (HSN code, rate, CGST/SGST/IGST split) are auto-populated using our GST classifier, implemented as a Claude Skills module.
The GSTR-1 prep tool: Reads the reconciled sales data and formats it into the GSTR-1 structure: B2B invoices (with GSTIN validation), B2C sales by state, exports, and credit notes. Flags invoices where the GSTIN appears invalid against the GSTN database.
The WhatsApp intake bot: Clients send documents to a WhatsApp number. The bot acknowledges receipt, extracts what it can automatically, and flags what is missing. Instead of accountants chasing clients for documents, the bot does it politely, in Gujarati or Hindi depending on the client’s preference.
The numbers after three months
The 12-day monthly close window dropped to 3.8 days in month 3. Month 1 ran at 7.2 days as the team learned the system, month 2 came in at 5.1 days, and month 3 settled at under 4.
Error rates on GST filings fell significantly. Before automation, the firm was filing late on 8 to 12 client accounts per month, missing GSTN deadlines by hours or days. In the three months after deployment, there was one late filing, caused by a client who did not send data until the 11th.
The firm took on 18 new clients in Q1 without adding staff. The senior partner estimates the firm can add another 40 to 50 clients before needing to hire, and when they do hire, the new accountant will spend time on advisory work rather than data entry.
The detail that mattered most
The GSTIN validation step. Several clients had supplier GSTINs in their records that were either expired, cancelled, or simply wrong. Incorrect GSTINs are common in Indian SMB environments, where they get copy-pasted incorrectly all the time. Before automation, these errors surfaced only when GSTN rejected the filing. After automation, they are flagged during data prep and fixed before filing.
In month 1, the validation step caught 34 invalid GSTINs across 22 clients. Each one would have caused a filing rejection that would have taken 1-2 hours to diagnose and refile. The GSTIN validation alone saved approximately 50 staff-hours in the first month.
Tech used
n8n (orchestration) · Claude Sonnet 4.6 with prompt caching · Razorpay API · custom Tally voucher XML generator · GSTN API (for GSTIN validation) · WhatsApp Business API (Interakt) · Sarvam STT for voice messages · custom GSTR-1 formatter