CABookkeeper docs
Getting started (10 minutes)
- Sign up your firm, then Add client with GSTIN — state, PAN and the GST calendar fill in automatically.
- Connect Tally (below) so CABookkeeper knows each client's real ledgers. Without it, CABookkeeper starts with standard Tally ledgers and creates new ones as you approve.
- Import a bank statement on the client's Bank tab. Review the queue, approve, then Tally → Send.
Bank statements
Use the PDF or Excel/CSV you download from net-banking. CABookkeeper finds the header row itself (Date, Narration, Ref, Value date, Withdrawal, Deposit, Balance — or Amount + Dr/Cr), joins wrapped narrations, skips repeated page headers and puts newest-first statements in order.
Balance proof: every row must satisfy previous balance + deposit − withdrawal = balance. A break means a missing or misread row; CABookkeeper tells you where. Re-importing the same file adds nothing (duplicates are detected).
Scanned (photo) statements have no text layer — ask the client for the bank's downloaded PDF.
How ledger mapping works
- Learned — what you approved before for this client (by party name and UPI id).
- Party match — the name in the narration matched to the client's Sundry Debtor/Creditor ledgers.
- Rules — Indian narration patterns: bank charges, interest, GST (CPIN), TDS (ITNS 281), salary, rent, electricity, telecom, fuel, insurance, EMI, cash withdrawals and deposits (Contra).
- AI — only for what is left, using only ledgers that exist in the client's chart.
Tally bridge
- In TallyPrime: F1 Help → Settings → Connectivity, set TallyPrime to act as Both (client and server) on port 9000.
- In CABookkeeper: Tally bridge → Create device key.
- On the Tally PC (Node.js 20+), in this project folder: set
SURGE_URL,SURGE_DEVICE_KEY, optionallyTALLY_COMPANIES(comma-separated, for ledger sync), thennpm run bridge.
Each push sends ledger masters first, then vouchers, so a voucher never fails on a missing ledger. Tally's answer (created / errors) is shown on the client's Tally tab. If Tally is closed, pushes wait. Prefer files? Download masters.xml and vouchers.xml and use Gateway of Tally → Import.
GST: 2B reconciliation, GSTR-1 and 3B
Download GSTR-2B JSON from the GST portal and upload it on the client's GST tab. Purchase invoices approved in CABookkeeper are matched by GSTIN + invoice number (exact, then the same number written differently, then same amount within 3 days). You see matched, mismatched, missing-in-2B and not-in-books invoices with ITC at risk in rupees.
GSTR-1 JSON (B2B, B2CL above ₹1 lakh, B2CS, HSN, documents) downloads for the offline tool. The 3B working limits ITC to what 2B supports and sets off credit in the Rule 88A order.
TDS
Payments mapped to rent, professional fees, contractors/transport, commission or loan interest are checked against FY 2025-26 limits (194I ₹50,000/month, 194J ₹50,000/year, 194C ₹30,000 single or ₹1 lakh/year at 1%/2%, 194H ₹20,000 at 2%, 194A ₹10,000). CABookkeeper shows the TDS due, deposit date (7th; 30 April for March) and books the TDS journal in one click. Under the Income-tax Act 2025 these sit in section 393 — confirm the reference on the return.
194Q (0.1% on purchases above ₹50 lakh per seller) switches on per client when last year's turnover was above ₹10 crore. Booked TDS journals build the deductee-wise 26Q working per quarter (CSV download). Upload Form 26AS (TRACES text or CSV) to see TDS your client's customers deducted: credit not yet in the books, customers who have not filed, and short or excess amounts — book the TDS receivable in one click.
Notice replies
Paste the notice text or upload the PDF on the client's Notices tab. CABookkeeper identifies the notice (GST DRC-01C, DRC-01B, DRC-01A, DRC-01, ASMT-10, REG-17, REG-03; Income-tax 139(9), 143(1)(a), 143(2), 148/148A, 142(1), 245), the reply date and the amounts, adds the client's own figures and drafts a reply. Drafts are always marked for CA review — CABookkeeper never files anything.
Client portal, WhatsApp and chat
From a client's Client chat & docs tab create a secure link (30 days, no login). CABookkeeper writes the request in the client's language and opens WhatsApp or email with it ready — you press Send. Files land in Client uploads; send each to Bank, Invoices or GST in one click. Clients can ask “when is my GST due?” in their own language and get an answer from their books.
Follow-ups: requests with no upload after 3 days show under Client uploads → Follow-ups due; one click makes a reminder (fresh link, same language), up to 3 times. Sending from the server (WhatsApp Cloud API, email via Resend) is off until the firm owner turns it on with keys; every attempt is logged on the client's tab. Languages: messages and chat are in English by default. Indian-language requests, chat and voice notes (Sarvam) are built and can be switched on per install.
Ask questions
On a client's Ask tab: “unpaid vendors > 60 days”, “top 5 expenses last month”, “cash payments above 10000”. On the firm dashboard: “which clients have ITC at risk above 50000”, “clients with overdue tasks”, “top 3 clients by unmapped lines”. Common questions are answered by rules without AI; others are turned by AI into a checked query plan — never raw SQL.
AI and costs
Parsers and rules do most of the work without AI. When AI is needed it runs on our own Qwen server first; a cloud model (Claude) is used only if ours is down, slow or gives an answer that fails our checks. Every AI call is logged against the client in the AI cost meter.
Security
- Each firm's data is isolated; staff see only clients assigned to them.
- Passwords are hashed with scrypt; sessions are httpOnly cookies; device keys and upload links are stored only as hashes.
- The audit trail is append-only — the database rejects edits and deletes.
- Tally's port 9000 stays on your PC; the bridge only makes outgoing calls.
- Client data is not used to train AI models.