ProcessMyBill
AI Tool Basics for CA

ProcessMyBill

Author : CA Arpit Jain

Watch on Youtube

ICAI USE CASE PRESENTED ON 07-10-2026            ProcessMyBill (AI Reimbursement Agent)

Employee reimbursement still runs on forms, portals and emails. Employees spend 10+ minutes per claim and rarely know what is claimable; approvers sign off without context; finance keys in every bill, checks policy from memory and chases missing documents for days; and the accountant re-keys the entry. The result: duplicates and over-cap items get paid, GST input credit is lost, and the audit trail is weak.

2. Solution Overview

ProcessMyBill takes a claim from a WhatsApp chat to a posted journal entry in Zoho Books. It is not "AI deciding". AI does one job: it reads each bill into a fixed schema (vendor, GSTIN, invoice no., date, tax, amount, line items). Python rules then decide - every GST and policy check is deterministic code, and every company number comes from the company's own policy table. People make the final call: the employee confirms, the approver approves, and finance validates before anything is posted.

AI reads. Python rules check. People decide.

3. The Process

  1. Send bills: the employee sends photos or PDFs on WhatsApp, even during the trip. Bills build up under one claim ID.
  2. Read and check instantly: each bill is read in about 5 seconds and checked at once; the employee gets a reply only when something needs attention (a cap, a duplicate, a blocked item).
  3. Submit: the employee gives the purpose, answers the open questions in one pass and can correct any amount, vendor or date. Any correction is shown to finance as "was / now". A claim of 5-6 bills takes about 3 minutes, clarifications included.
  4. Finance review (only if flagged): claims with an open flag land in the finance queue first; clean claims go straight to the approver.
  5. Approval: the reporting manager gets an email with signed links - approve, partially approve (line by line, with a reason) or reject - from the phone. Reminder at 3 days, escalation at 7; never auto-approved.
  6. Validate and post: finance sees the bill image beside the fields, every check result and the proposed journal (GL, input GST, payable). Approve & post creates the Zoho Books journal with bills attached; it never posts twice. The employee is told the payment date (16th / month-end).

4. Questions Asked at Submission - Examples

CheckWhat the employee sees

Hotel limit"Hotel ₹9,440/night is above your ₹6,000 limit for Mumbai (clause 3.1). Claim ₹12,000 for 2 nights?"
Duplicate"This lunch bill is already in this claim" - refused; same bill in an earlier claim: "Remove it?"
Not reimbursable"Dinner includes beer ₹300 (clause 8.1). Remove it?"
Outside trip"Dinner on 3 Oct is outside your trip (29 Sep - 2 Oct). Keep it with a reason?"
Daily meal cap"Meals on 30 Sep total ₹1,260 against ₹1,000/day. The excess needs a reason."
GST credit lost"Your flight invoice is in your name, so the company loses ₹312.50 GST credit. Next time give the company GSTIN."
Documents"Please send the boarding pass for this flight (clause 2.5)."

5. Generic Checks (same for every company, written once in code)

AreaChecks

Is it a valid bill?Unreadable image; not an invoice (booking confirmation, estimate); air ticket without tax invoice; handwritten bill; marked "sample/specimen"; future-dated bill
Is it correct?Arithmetic (lines, tax, total); GSTIN checksum - both re-verified by a second AI read; employee corrections flagged to finance
GSTBlocked credit u/s 17(5) (meals, cab, club); supplier not registered; company GSTIN present / missing / wrong; hotel credit only where the company is registered; credit lost on employee-name invoices shown to employee and finance
Whose bill?Billed to someone other than the employee or company; sender not a registered employee; exited employee held for review
TripBill outside the trip window (taken from ticket dates); bill from a place the trip never went; boarding pass matched to ticket (passenger, date, route)
DuplicatesSame file re-sent; same vendor + invoice no. + amount in the claim; already claimed earlier by self or another employee; same invoice no. with a changed amount

6. Company-Specific Checks (from the company's policy table - 23 rules, each citing its clause)

AreaRules (Demo company values)

TravelCity tiers (1.3); air and rail class by grade (2.1, 2.3); flight below 600 km needs a reason (2.2); ticket + boarding pass required (2.5); travel invoice in company name (2.6); cancellation charges need a reason (2.7)
HotelCap per night by grade and city tier, incl. GST - e.g. M2 Tier-1 ₹6,000 (3.1); company GSTIN on hotel invoice (3.2); breakfast already in tariff (4.2)
MealsDaily cap across bills by grade - M2 ₹1,000 (4.1); client meal ₹2,500 per head with attendee names (4.4)
Local and otherMileage ₹12/km car, ₹5/km two-wheeler, 1,000 km/month (5.3); home-office commute (5.4); laundry ₹500/day on trips over 3 days (6.1); mobile cap by grade - M2 ₹750 (7.1)
Not allowedAlcohol, tobacco, minibar, spa, gifts, fines, family members, etc. (8.1); asset purchases (8.5); expenses the company already paid (8.7)
Documents and timingInvoice required (9.1); GST invoice above ₹1,000 (9.2); bill older than 30 days needs a reason, 60 days refused (9.3); approver is the reporting manager, no auto-approval (10.1)

Every check returns one outcome - Pass, Fix, Explain, Cap, Educate, Refuse, Silent (finance only) or Review - with the reason and clause. Changing a limit means editing the policy table, not the code.

7. Technology and Deployment

LayerTechnologyRole

ServerPython 3.11, FastAPI, SQLite, APSchedulerRuns on our server; nine modules; append-only audit log; reminders
AI (reading only)Gemini 3.6 Flash; GPT-5.5; SarvamBill to fixed schema; second read when a check fails; Hindi voice
ChannelsWhatsApp Cloud API; Gmail APIEmployee chat; approver emails with signed links
AccountingZoho Books India APIJournal with GST lines and bills attached
Finance UIJinja2, Tabler, HTMX, Chart.jsReview queue, claim page, journal preview, analytics

The server is already deployed; WhatsApp and approval links reach it over a secure HTTPS endpoint. A company is onboarded with one masters workbook (employees, grades, approvers, expense heads to GL, policy rules) and its policy text. Only the bill image goes to the AI; masters and data stay on the server. AI reading costs well under ₹1 per bill.

8. Key Metrics

~3 min20+239~8001-Click
To submit a 5-6 bill claimGeneric checksCompany policy rulesModulesAutomated testsPosting to Zoho

9. Target Users & Benefits

  1. Employee: about 3 minutes on WhatsApp instead of forms and days of follow-ups; knows status and payment date
  2. Finance: no data entry or chasing; reviews only flagged claims; posting is one click
  3. Approver: decides from the phone with the bill, the flags and the policy in front of them
  4. Company: leakage stopped before payment; GST credit protected; every decision on an audit trail
  5. Built by a CA: a non-programmer built it with Claude Code in about six days, module by module with tests first