CA Toolkit
AI Tool Basics for CA

CA Toolkit

Author : CA. TEJAS ANDHARIA

Watch on Youtube


CA Toolkit — Feature Summary

CA Toolkit is a comprehensive, offline Windows desktop application built specifically for practising Chartered Accountants. It consolidates the most time-consuming and error-prone daily tasks of a CA practice — client management, statutory due date tracking, CPE compliance, income tax notice drafting, ITR document delivery, email management, and 234A/B/C interest calculation — into a single, secure, locally-installed tool with zero cloud dependency for core operations. Built on Python 3.14 and PySide6, the application stores all data in an encrypted local SQLite database and is designed to run entirely on the CA's office computer without any internet subscription or recurring cost.

10Modules100%Offline Core11+AI LLM BackendsITR 1–7JSON Support

Module 1 — Client Registry


The central master database for all clients of the CA practice. Every other module draws client data from here, eliminating redundant data entry and ensuring consistency across the entire toolkit.

  1. Stores all essential client information: Name, PAN, GSTIN, mobile, email, address, date of birth, and type (Individual / HUF / Firm / Company / Trust / AOP / BOI / LLP).
  2. Services Applicable checkboxes for each client: IT, TDS, TCS, GST, ROC, PF/ESI, FEMA — controls which statutory due dates appear for that client.
  3. PAN Folder Scanner: scans a selected root directory for folders whose name contains a PAN number, and auto-imports found clients into the registry — eliminating manual re-entry of existing client lists.
  4. Duplicate PAN detection on import — prompts to skip or overwrite if the same PAN already exists in the database.
  5. Inline search by name, PAN, or GSTIN with instant results.
  6. Full add / edit / delete with confirmation dialogs. Bulk Excel export of the complete client list.
  7. Client data is linked to Document Sender, Smart Email Manager, Send Log, and Notice Reply modules for seamless cross-module workflow.


Module 2 — Statutory Due Dates / Reminders


A complete statutory calendar covering all major compliance due dates across Income Tax, GST, ROC, PF/ESI, and FEMA — filterable by time window and service category, with client-level drill-down and personal reminder capability.

  1. Loads all due dates from an editable assets/due_dates.csv file — the CA can add, modify, or remove due dates directly in Excel without touching any code.
  2. Time window filter: view due dates for Next 7 Days / Next 15 Days / Next 30 Days / Next 60 Days / Next 90 Days / This Month / This Year / All.
  3. Category filter buttons with colour coding: IT (blue), GST (green), ROC (purple), PF/ESI (red), FEMA (orange), PERSONAL (brown).
  4. Services filter: toggleable checkboxes (IT, GST, ROC, PF/ESI, FEMA, PERSONAL) suppress irrelevant categories instantly.
  5. Each due date row shows a colour-coded urgency dot: Red (overdue last 7 days), Orange (due within 7 days), Yellow (due this month), Green (upcoming).
  6. Click any row to open a popup showing all clients for whom that due date applies — filtered by their Services Applicable settings in the Client Registry.
  7. Personal reminders: the 'Set Reminder / Due Date' button adds a custom one-off reminder (date, description, category) directly to the CSV.
  8. Category column auto-adjusts its width to fit the longest category name. Popup table headers are styled in dark blue for clear visibility.
  9. Refresh button reloads the CSV instantly — useful after adding a new statutory date.


Module 3 — CPE Manager


Fetches and displays Continuing Professional Education (CPE) hours directly from ICAI's official CPE portal (cpeapp.icai.org) for the logged-in CA, with a year-wise breakdown and visual comparison chart.

  1. Logs in to cpeapp.icai.org using ICAI membership credentials stored securely in the app's settings.
  2. Fetches Structured (SLA) and Unstructured (ULA) CPE hours for each ICAI CPE year from the dashboard and individual year-wise attendance pages.
  3. Displays a colour-coded year-wise table: Structured hours, Unstructured hours, Total, and Compliant / Non-Compliant status based on ICAI norms.
  4. Bar chart comparing Structured vs Unstructured hours across years — rendered using Matplotlib within the app window.
  5. Data is cached in the local SQLite database to allow instant display on re-open without re-scraping the portal every time.
  6. Refresh button triggers a fresh fetch from the live portal with a progress indicator.
  7. A blinking warning card appears prominently if the current CPE year shows a compliance shortfall.


Module 4 — IT / GST Notice Reply (AI-Assisted)


An AI-powered notice drafting module that enables the CA to paste an Income Tax or GST notice and receive a professionally drafted reply within seconds — with full PII protection before the notice text reaches any external AI server.

  1. Accepts notice text by paste or file upload (PDF / image / text).
  2. PII Pseudonymisation (Masking): Before the notice is sent to any AI API, a regex-based engine (~10 pattern categories) identifies and replaces all sensitive identifiers — PAN, GSTIN, TAN, Aadhaar, mobile numbers, email addresses, firm names, addresses, and PIN codes — with neutral placeholders. The masked text alone is sent to the AI.
  3. After the AI returns the drafted reply, the original values are substituted back (de-pseudonymisation) — the final reply shown to the CA contains the real client details.
  4. Microsoft Presidio was evaluated but rejected in favour of pure Python regex — Presidio's NLP model caused mislabelling of Hindi and Gujarati words as PII, and required a large model download unsuitable for offline CA offices.
  5. AI backbone is configurable: supports OpenAI, Anthropic Claude, Google Gemini, Groq, Grok (xAI), Mistral, Sarvam AI, Krutrim (Ola), Together AI, Cohere, Perplexity, and any custom OpenAI-compatible endpoint.
  6. Deadline extraction: automatically identifies reply deadlines from the notice text using regex and highlights them in orange with a 'Set Reminder' button to add directly to the due dates calendar.
  7. Reply is displayed in a scrollable rich-text panel with one-click copy to clipboard.


Module 5 — Section 234A/B/C Interest Calculator


Automates the filling of 234A/B/C Interest Calculation Excel utility (AY 2025-26 and AY 2026-27) directly from the ITR JSON file — eliminating manual data entry and transcription errors across 25+ input fields.

  1. Supports all ITR types: ITR-1, ITR-2, ITR-3, ITR-4, ITR-5, ITR-6, and ITR-7.
  2. ITR JSON Auto-Fill: The CA loads the assessee's ITR JSON file (as downloaded from the Income Tax portal) and the app fills the Excel utility automatically via win32com — no manual typing required.


Fields auto-filled in the 'Input' worksheet:

D6 — Client NameAssessee's full name from PersonalInfo.AssesseeName
D7 — PANPAN from PersonalInfo.PAN
D9 — Assessment YearDerived from Form_ITRx.AssessmentYear (e.g. 2025-2026)
D10 — Due Date of FilingStatutory due date: 16/09/2025 (non-audit) or 10/12/2025 (audit) for AY 2025-26; 31/08/2026 or 31/10/2026 for AY 2026-27. Audit flag read from PartA_GEN2.AuditInfo.LiableSec44ABflg.
D11 — Date of Order/FilingJSONCreationDate from CreationInfo — editable by CA if actual date differs
D12 — Total IncomeTotalIncome after Chapter VI-A deductions (ITR-1/4) or PartB-TI.TotalIncome (ITR-2/3/5/6/7)
D13 — Tax on IncomeNetTaxLiability for ITR-1; TaxPayableOnRebate for ITR-4; PartB_TTI.ComputationOfTaxLiability.TaxPayableOnTI.TaxPayableOnRebate for ITR-2/3/5/6/7
D14 — SurchargeTotalSurcharge from respective TaxComputation section
D15 — Education CessEducationCess from respective TaxComputation section
D16 — Relief u/s 89Section89 field
D17 — TDS + TCSSum of TDS and TCS from TaxesPaid
D19–D23 — Advance TaxCumulative advance tax per installment period (upto 15-Jun, 15-Sep, 15-Dec, 15-Mar, 31-Mar) from ScheduleIT chalans
D24 — Self Assessment TaxSelfAssessmentTax directly from TaxesPaid summary field
D25 — SAT DateLast date among ScheduleIT chalans paid after 31-Mar of the financial year
D26 — 44AD/44ADA FlagRecursive search for NatOfBus44AD or NatOfBus44ADA as a non-empty list anywhere in the JSON


Fields auto-filled in 'Uneven-Accrual Based Input' worksheet:

I1 — Resident StatusMapped from ResidentialStatus field
I2 — Basic Slab₹3,00,000 for AY 2025-26; ₹4,00,000 for AY 2026-27
I3 — Normal Rated IncomeAggregateIncome from PartB-TI (ITR-2/3/5/6/7); TotalIncome for ITR-1/4
I5 — 112A Exemptionmin(actual 112A LTCG, ₹1,25,000) — from Schedule112A.TotalBalance112A
I6 — Marginal RateSlab-based marginal rate under Sec 115BAC(1A) computed from Normal Income
B2:F8 — CG by PeriodCapital gains (STCG @15%, @20%, @30%, applicable rate; LTCG @10%, @12.5%; Dividend) split across 5 installment periods from AccruOrRecOfCG.DateRange


  1. Date handling: All date cells written as Excel serial numbers (integer) — never as strings — to prevent day/month swap caused by Windows regional settings (IST UTC+5:30 timezone shift).
  2. Marginal rate (I6) computed using actual slab tables under Section 115BAC(1A): AY 2025-26 has 6 slabs (0%–30%); AY 2026-27 has 7 slabs (0%–30%) as per Finance Act.
  3. Read-only dialog handled automatically: win32com opens the Excel file with ReadOnly=True — no manual click on the 'Open as read-only?' prompt required.
  4. Post-fill instructions displayed in a styled result dialog: CA is reminded to click 'Click to Run' button in the Uneven-Accrual sheet, and to verify D11 date.
  5. Falls back to openpyxl for machines without pywin32 installed — VBA macro must be triggered manually in that case.


Module 6 — Document Sender


Enables the CA to select a client, choose document types (ITR, 26AS, AIS, TIS, Computation, GSTR-1, GSTR-3B etc.), preview the files found in the client's folder, and dispatch them by email or WhatsApp — all from a single screen.

  1. Client search box linked to Client Registry — type name or PAN to locate.
  2. Assessment Year / Financial Year selector with a comprehensive dropdown (AY 2025-26 back to AY 2018-19 for IT; FY 2024-25 back to FY 2017-18 for GST).
  3. Intelligent folder scanning: constructs the expected file path from the client's PAN + AY/FY, then scans for matching document keywords (ITR, ITRV, 26AS, AIS, TIS, Computation, GSTR-1, GSTR-3B, GSTR-9, DRC-03, IFF).
  4. File preview panel shows the matched documents with checkboxes — CA selects which to attach.
  5. Email delivery: composes a pre-formatted email with client name, document type, and AY/FY in subject and body. Gmail 24 MB size limit is checked before sending. All attachments sent in a single SMTP connection.
  6. WhatsApp delivery: opens a pre-filled WhatsApp Web message with +91 prefix for Indian mobile numbers.
  7. Every successful send is logged to the Send Log with timestamp, client, document list, and channel (Email / WhatsApp).


Module 7 — Smart Email Manager


An IMAP-based email client built specifically for CA practice: categorises the inbox automatically into Department Notices, Client Emails, and Others — and drafts AI-powered replies with one click.

  1. Connects to the CA's email account via IMAP (Gmail, Outlook, or any IMAP server) using credentials configured in Settings.
  2. Fetches emails from the last 7 / 15 / 30 days with a progress bar.
  3. Automatic categorisation:
  4. Department Notices: sender domain matches email_domains.csv (e.g. incometax.gov.in, gst.gov.in, mca.gov.in).
  5. Client Emails: sender address or name matches a record in the Client Registry.
  6. Others: all remaining emails.
  7. Junk / spam domains filtered out via junk_domains.csv.
  8. Click any email row to fetch and display the full body in the preview panel.
  9. Reply Composer: To / CC / BCC fields with autocomplete from the Client Registry. Supports multiple recipients.
  10. AI-Drafted Reply: one click sends the email thread to the configured LLM API and inserts the drafted reply into the composer. PII pseudonymisation is applied before the email content reaches the AI.
  11. Set Reminder button on any email: pre-populates a due date entry in the CSV with the email subject and a suggested date — opens the CSV at the last row.
  12. Star / Flag emails for follow-up. Starred emails shown with a star indicator in the list.


Module 8 — Send Log


A permanent, searchable log of every document sent through the Document Sender and Smart Email Manager — providing a complete audit trail of client communications.

  1. Displays all sent records in a table: Timestamp (IST), Client Name, PAN, Documents Sent, Channel (Email / WhatsApp), and Status.
  2. Search and filter by client name, PAN, or channel.
  3. Auto-refreshes every 15 seconds and also refreshes instantly when the tab becomes visible.
  4. Individual log entries can be deleted by the CA (uses client_pan for precise deletion to avoid ID conflicts).
  5. Timestamps stored in UTC in the database and displayed in IST to the user.


Module 9 — Auto Backup & Restore


A one-click encrypted backup of all CA Toolkit data — the SQLite database, configuration files, custom due dates, and email domain lists — into a dated, 7-Zip encrypted archive on a user-selected destination.

  1. Backup items: SQLite database (ca_toolkit.db), Google Calendar credentials, app config folder, custom due_dates.csv, email_domains.csv, and junk_domains.csv.
  2. AES-256 encryption via 7-Zip: the archive is encrypted with a password set in Settings. If 7-Zip is not installed, a plain zip is created and a warning is shown.
  3. Dated folder naming convention (e.g. 'Backup 22-Jun-2026') — each backup run creates a new dated archive.
  4. Restore module: lists all available backup archives in the destination folder, lets the CA select one, decrypts, and restores all files to their original locations.
  5. Progress bar and status messages during both backup and restore operations.


Module 10 — Settings


Central configuration panel for all app-wide settings — SMTP email credentials, LLM API keys, IMAP connection, ICAI CPE credentials, and app preferences.

  1. SMTP Email: server, port, username, password, sender name — for Document Sender and Smart Email Manager.
  2. IMAP Email: server and port for Smart Email Manager inbox sync.
  3. LLM Provider & API Key: supports 11+ providers — OpenAI, Anthropic Claude, Google Gemini, Groq, Grok (xAI), Mistral, Sarvam AI, Krutrim (Ola), Together AI, Cohere, Perplexity, and Custom. Model dropdown is editable for custom model names.
  4. ICAI CPE Credentials: Membership number and password for the CPE Manager portal scraper.
  5. Client Data Root Path: the base folder where client document folders are organised (used by Document Sender for file scanning).
  6. Backup Password: the password used by 7-Zip for encrypting Auto Backup archives.
  7. All settings are saved to a local config.ini file — no cloud sync, no telemetry.


Security & PII Protection Architecture


  1. Local-first by design: all client data, credentials, and documents remain on the CA's own computer. No data is sent to any cloud service except the AI API call for Notice Reply and Email drafting.
  2. PII Pseudonymisation before AI calls: a Python regex engine (~10 pattern categories) identifies PAN, GSTIN, TAN, Aadhaar, mobile, email, firm names, addresses, and PIN codes in notice/email text and replaces them with placeholders (e.g. <IN_PAN>, <MOBILE>) before the text is sent to the AI API. Original values are restored after the AI responds.
  3. Microsoft Presidio explicitly rejected: Presidio's NLP model caused over-masking of Hindi and Gujarati words as PII and required a large spaCy model download — incompatible with the offline CA office environment. Pure regex provides sufficient and predictable coverage.
  4. Encryption at rest: Auto Backup archives use AES-256 encryption. The app database is SQLite (binary format, not human-readable plain text).
  5. No installer or admin rights required — the app runs from its own folder via run.bat.
  6. SETUP.bat and CHECK.bat utilities verify that all dependencies (Python 3.14, pywin32, openpyxl, PySide6, etc.) are correctly installed before first use.


Technology Stack


🐍 Python 3.14Core runtime and all module logic🖼️ PySide6Desktop GUI framework (Qt for Python)🗄️ SQLiteLocal database — Client Registry, CPE cache, Send Log
📊 win32com (pywin32)Excel automation via COM — 234A/B/C filler📗 openpyxlFallback Excel read/write without win32com🤖 Sarvam AI / LLMsNotice drafting, email replies (11+ providers)
🌐 IMAP / SMTPEmail inbox sync and document delivery🔐 7-Zip / AES-256Encrypted backup archives📈 MatplotlibCPE comparison bar chart
📋 re (regex)PII pattern detection — 10 categories