Skip to content

zoho books teardown

Zoho Books — product teardown (reference for Caesar)

Section titled “Zoho Books — product teardown (reference for Caesar)”

What this is. A full walkthrough of the live Zoho Books demo (zoho.com/ca/books/accounting-software-demo, CA edition), captured 2026-06-18 by driving the running app and reading its DOM. This is the product we mirror/clone for Caesar — see brd.md for what we keep, drop and add (summarised in §13 below).

Demo caveat: it’s a read-mostly “Demo Org” with seeded fake data; create/save actions are disabled, so forms were inspected for structure (fields, line grids, actions) rather than submitted. Fields tagged like ad / sint / molestias are demo custom fields, not standard.


A persistent three-region layout, light theme, very dense.

  • Top bar: org switcher (“Demo Org” / “This is a Test organization”), global Search (Search in <module> ( / )), Quick Create (+), Recent Activities, Refer and Earn, Notifications, Settings (gear), Help (helpline phone), profile (“Hello, Demo User”).
  • Left nav (primary): Home · Items · Banking · Sales · Purchases · Time Tracking · Tax Returns · Accountant · Reports · Documents · Configure Features list. Modules expand in place to reveal sub-items (e.g. clicking Sales reveals Customers/Estimates/Invoices/…).
  • Main content: module list views and detail/forms.
  • Quick Create (+) menu shortcuts: Create Invoice, Create Bill, Create Expense, New Invoice, New Recurring Invoice, New Customer Payment, New Bill, New Vendor Payment, New Recurring Bill.

Design language (observed computed styles)

Section titled “Design language (observed computed styles)”
  • Font: Inter (fallback Source Sans Pro / Helvetica / Arial). Base size 13px — dense.
  • Primary button: solid blue #408DFB, white text, ~5px radius, normal weight (400), compact padding.
  • Light surfaces, table-dominant, minimal chrome. Status communicated via uppercase text badges.
  • Implication for Caesar: mirror the information density and structural patterns, but re-skin entirely in the Rechaj design system (brand green #01E46F, General Sans, 4px grid, no card strokes, 600-weight headings). We clone the IA and flows, not the visual style.

2. Information architecture — full route map

Section titled “2. Information architecture — full route map”

SPA with hash routing (#/…). Every primary surface:

Module Route Sub-items (routes)
Home #/home Dashboard #/home/dashboard · Getting Started #/home/gettingstarted · Announcements #/home/announcement · Recent Updates #/home/recentupdates
Items #/inventory/items (single list)
Banking #/banking per-account transactions #/banking/transactions?account_id=…
Sales — Customers #/contacts · Estimates #/quotes · Invoices #/invoices · Payments Received #/paymentsreceived · Recurring Invoices #/recurringinvoices · Credit Notes #/creditnotes
Purchases — Vendors #/vendors · Expenses #/expenses · Recurring Expenses #/recurringexpenses · Bills #/bills · Payments Made #/paymentsmade · Recurring Bills #/recurringbills · Vendor Credits #/vendorcredits
Time Tracking — Projects #/timesheet/projects · Timesheet #/timesheet/alltimeentries
Tax Returns — GST/HST #/taxreturns/hstreturns · BC PST · QST · MB RST · SK PST · Tax Payments #/taxreturnpayments/dues · Tax Adjustments #/taxadjustment/list
Accountant — Manual Journals #/accountant/journals · Bulk Update #/accountant/bulkupdateaccounts · Currency Adjustments #/accountant/bcyadjustment/list · Chart of Accounts #/accountant/chartofaccounts · Transaction Locking #/accountant/transactionlock
Reports #/reports 74 reports across 14 categories (§11)
Documents #/documents/inbox All Documents · Files · Bank Statements · Trash · (Enable Autoscan/OCR)
Settings #/settings full taxonomy in §12

Widget grid, with an Accrual / Cash basis toggle:

  1. Total Receivables — Current vs Overdue (e.g. Total Unpaid Invoices $372,580.05; Current $0.00 / Overdue $372,580.05).
  2. Total Payables — Current vs Overdue (Total Unpaid Bills $249,849.46).
  3. Cash Flow — fiscal-year line chart: Cash as on , + Incoming, − Outgoing, = Cash as on .
  4. Income and Expense — fiscal-year bar chart.
  5. Top Expenses — by category, for a chosen period.
  6. Projects — watchlist.
  7. Bank and Credit Cards — balances per account.
  8. Account Watchlist — selected GL accounts to monitor (accrual).

→ Maps closely to Caesar’s command centre (BRD §7): Receivables, Payables, Cash, Income/Expense, Bank balances. Caesar adds the live operational overlay (swap revenue vs SRRR, fixed-asset register, requisitions, consolidated D:E/covenant).

View Columns Statuses seen Actions
Customers #/contacts Name, Company Name, Email, Work Phone, Receivables, Unused Credits — New
Estimates #/quotes Date, Estimate#, Reference#, Customer, Status, Amount DRAFT, INVOICED New
Invoices #/invoices Date, Invoice#, Order Number, Customer, Status, Due Date, Amount, Balance Due DRAFT, PARTIALLY PAID, (Sent/Paid/Overdue) New, View (saved filters), pagination “50 per page”
Payments Received #/paymentsreceived Date, Branch, Payment#, Type, Reference#, Customer, Invoice#, Mode, Amount, Unused Amount Invoice Payment / Retainer Payment New
Recurring Invoices #/recurringinvoices Customer, Profile Name, Frequency, Last Invoice Date, Next Invoice Date, Status, Amount ACTIVE, EXPIRED, STOPPED New
Credit Notes #/creditnotes Date, Credit Note#, Reference#, Customer, Invoice#, Status, Amount, Balance CLOSED, VOID, PENDING APPROVAL New

Invoice create form (#/invoices/new): header = Customer Name, Invoice#, Order Number, Invoice Date, Terms (→ Due Date), Salesperson, Terms & Conditions. Line grid: Item Details · Quantity · Rate · Discount · Tax · Amount (Add New Row, Add Items in Bulk). Footer: Sub Total, Shipping Charges (+Apply Tax on Shipping), Discount, Round Off, Adjustment, Total. Actions: Save as Draft · Save and Send · Make Recurring · Upload File · Cancel.

Customer create form (#/contacts/new): Type = Business/Individual; Primary Contact (Salutation/First/Last), Company Name, Display Name, Email, Phone (Work/Mobile); Currency, Tax Rule, Opening Balance, Payment Terms; Enable Portal? + Portal Language; Documents; “Add more details” (address / contact persons / custom fields / reporting tags / remarks).

View Columns Statuses Actions
Vendors #/vendors Name, Company Name, Email, Work Phone, Payables, Unused Credits — New
Expenses #/expenses Date, Expense Account, Reference#, Vendor, Paid Through, Customer, Status, Amount — New, “2 New” (bulk)
Recurring Expenses #/recurringexpenses (recurring profile pattern) New
Bills #/bills Date, Bill#, Reference#, Vendor, Status, Due Date, Amount, Balance Due DRAFT, PENDING APPROVAL, (Open/Paid/Overdue) New, View, pagination
Payments Made #/paymentsmade Date, Payment#, Reference#, Vendor, Bill#, Mode, Amount, Unused Amount — New
Recurring Bills #/recurringbills (recurring profile pattern) New
Vendor Credits #/vendorcredits Date, Credit Note#, Reference#, Vendor, Status, Amount, Balance VOID, OPEN, DRAFT New

Bill create form (#/bills/new): header = Vendor Name, Bill#, Order Number, Bill Date, Due Date, Payment Terms. Line grid: Item Details · Account (expense COA account) · Quantity · Rate · Tax · Customer Details (for billable) · Amount. Footer: Sub Total, Discount %, Total. Actions: Save as Draft · Save as Open · Make Recurring. Approval is a separate submit step → lands in PENDING APPROVAL (this is exactly Caesar’s BRD §8.2 / §12 approval-matrix need).

  • Banking #/banking: card/list of accounts with columns Account Details · Uncategorized · Pending Checks · Amount in Bank · Amount in Zoho Books. Actions: Import Statement, Add Bank or Credit Card; period filter (“Last 30 days”), chart toggle.
  • The “Amount in Bank vs Amount in Zoho Books” delta + “Uncategorized” count is the reconciliation surface; each account drills to its transactions (#/banking/transactions?account_id=…&filter_by=Status.All) for categorise/match.
  • → Maps to Caesar BRD §8.4 (bank feeds per subsidiary, automated reconciliation, group cash in USD).
  • Full element-level Banking teardown (build contract): banking-teardown.md — overview + transactions captured end to end; sub-flow forms/modals flagged for screenshot capture.
  • Items #/inventory/items: Name · SKU · Type · Description · Rate. Type values include Goods/Service (demo shows “Digital_service”). Action: New.
  • → Caesar uses Items/Inventory as the receipt point that converts to a capitalised fixed asset on deployment (BRD §8.5–8.6) — the most MocX-specific flow, absent in vanilla Zoho.
View Structure
Manual Journals #/accountant/journals List: Date, Journal#, Reference#, Status (DRAFT/PUBLISHED), Notes, Amount, Documents. Action: New Journal.
Chart of Accounts #/accountant/chartofaccounts List: Account Name, Account Code, Type. 52 default accounts (§10). Action: New Account.
Transaction Locking #/accountant/transactionlock Period locking — per-module lock to a date, or “Lock All Transactions”. (Caesar BRD non-negotiable: period locking.)
Currency Adjustments #/accountant/bcyadjustment/list FX revaluation: Date, Currency, Exchange Rate, Gain or Loss, Notes. Action: Make an Adjustment.
Bulk Update #/accountant/bulkupdateaccounts Bulk re-account transactions.

Manual Journal form (#/accountant/journals/new): header = Date, Journal#, Reference#, Notes, Currency, “Cash based journal” toggle, Journal Type. Line grid: Account · Description · Contact · Tax · Debits · Credits. Footer: Sub Total, Total ($), Difference (must be 0 → enforces balanced double-entry). Actions: Save as Draft · Save and Publish (publish = posted). → Directly = Caesar’s GL journal entry.

Key concept — sub-ledger → GL: every transaction (invoice, bill, payment, expense) auto-posts a journal. On a transaction’s detail page a “Journal” action shows the underlying double-entry posting. Caesar inverts the emphasis (the ledger is the system of record; sub-ledgers feed it summarised journals) but the mental model is the same.

9. Transaction lifecycle & cross-cutting patterns

Section titled “9. Transaction lifecycle & cross-cutting patterns”
  • Document detail pattern (e.g. #/invoices/2): formatted document (Invoice#, Bill To, line items, totals) + lifecycle action bar (Edit · Send Mail · Share · Reminders · PDF/Print · Record Payment · Journal · More) + an activity/audit timeline (“Invoice sent via email”, “Customer viewed on…”, “Payment Initiated”) and Comments & History.
  • Status vocabulary per doc type: Draft → (Pending Approval) → Sent/Open → Partially Paid → Paid/Closed; plus Void, Overdue, Expired, Stopped. Uppercase text badges.
  • Approval: documents can sit in PENDING APPROVAL (seen on Bills, Credit Notes) — an approval step between draft and open.
  • Recurring: invoices/bills/expenses support recurring profiles (frequency, next-run).
  • Attachments: Upload File on every transaction; Documents module + Autoscan (OCR).
  • Multi-currency: per-contact currency, currency on journals, FX revaluation, realized/unrealized gain-loss reports.
  • Multi-branch: “Branch” appears on transactions (e.g. Payments Received → “Head Office”).
  • Custom fields & Reporting Tags: transactions carry custom fields and Reporting Tags (see §12) — Zoho’s dimensional slicing mechanism.

10. Default Chart of Accounts (52 accounts) & type taxonomy

Section titled “10. Default Chart of Accounts (52 accounts) & type taxonomy”

Account types observed (count): Expense (21), Income (7), Equity (4), Other Current Liability (4), Other Current Asset (3), Cash (3), Accounts Payable (1), Accounts Receivable (1), Cost of Goods Sold (1), Other Expense (1), Fixed Asset (1), Stock (1, Inventory Asset), Other Liability (1), Bank (1), Credit Card (1), Payment Clearing Account (1).

Representative accounts: Accounts Payable, Accounts Receivable, Advance Tax, Bad Debt, Bank Fees and Charges, Cost of Goods Sold, Depreciation Expense, Drawings, Exchange Gain or Loss, Furniture and Equipment (Fixed Asset), Inventory Asset (Stock), Opening Balance Adjustments/Offset, Owner’s Equity, Petty Cash, Prepaid Expenses, Retained Earnings, Sales, Tax Payable, Undeposited Funds, Unearned Revenue, Bank/Cash/Credit Card Account, Payment Clearing Account.

→ Caesar wants one governed group COA (IFRS-aligned, lean) mapped from this, with analytical detail living in segments rather than a wide COA (BRD §6). The Fixed Asset / Depreciation / Inventory Asset accounts are the seed for the asset sub-ledger flow.

11. Reports catalog (74 reports, 14 categories)

Section titled “11. Reports catalog (74 reports, 14 categories)”
  • Business Overview (5): Profit and Loss · Cash Flow Statement · Balance Sheet · Business Performance Ratios · Movement of Equity
  • Sales (3): Sales by Customer · by Item · by Sales Person
  • Receivables (8): Customer Balances · AR Aging Summary · AR Aging Details · Invoice Details · Estimate Details · Customer Balance Summary · Receivable Summary · Receivable Details
  • Payments Received (4): Payments Received · Time to Get Paid · Credit Note Details · Refund History
  • Recurring Invoices (1)
  • Payables (10): Vendor Balances · Vendor Balance Summary · AP Aging Summary · AP Aging Details · Bills Details · Vendor Credits Details · Payments Made · Refund History · Payable Summary · Payable Details
  • Purchases and Expenses (8): Purchases by Vendor / by Item · Expense Details · Expenses by Category / Customer / Project / Employee · Billable Expense Details
  • Taxes (1): Tax Summary
  • Banking (1): Reconciliation Status
  • Projects & Timesheet (7)
  • Accountant (6): Account Transactions · Account Type Summary · General Ledger · Detailed General Ledger · Journal Report · Trial Balance
  • Currency (2): Realized Gain or Loss · Unrealized Gain or Loss
  • Activity (5): System Mails · Activity Logs & Audit Trail · Exception Report · Portal Activities · Client Reviews
  • Plus Custom Reports + Favorites. Action: Create Custom Report.

→ P&L / Balance Sheet / Cash Flow / General Ledger / Trial Balance / AR & AP Aging / Audit Trail cover Caesar BRD §10. Caesar adds per-segment slicing (cluster/SPV P&L) and the consolidated group roll-up.

Grouped left-nav inside Settings:

  • Organization — Org Profile #/settings/orgprofile, Branding, Currencies #/settings/currencies, Opening Balances #/settings/openingbalance/details.
  • Taxes & Compliance — Taxes / Return Settings #/settings/taxes/returnsettings.
  • Users & Roles — Users #/settings/users, Roles #/settings/roles (default: Admin = unrestricted; Staff = all except reports/settings/accountant; Staff-Assigned-Customers-Only; custom roles support per-module permissions → segregation of duties).
  • Preferences — General + per-module (Contacts, Accountant, Timesheet, Portal, Quotes, Invoices, Recurring Invoices, Credit Notes, Delivery Notes, Packing Slips, Expenses, Items).
  • Online Payments — customer & vendor payment gateways.
  • Customisation — Reporting Tags #/settings/reportingtags (Tag Name + named Options, can be Mandatory) · Transaction Number Series (auto-numbering) · PDF Templates.
  • Reminders & Notifications, Developer & Data (API, Data Backup), Integrations (SMS, Zapps, other apps, Zoho Sign).

Reporting Tags = the dimension mechanism. Free-form tags with options, attachable per transaction/line, optionally mandatory. This is Zoho’s analog to Caesar’s segment spine — but Caesar elevates dimensions to a first-class, structured 4-segment model (Subsidiary / Location / Class / Department) rather than generic tags (BRD §6). Important design divergence.

13. Caesar mapping — mirror / drop / add

Section titled “13. Caesar mapping — mirror / drop / add”

Mirror (clone the IA, flows, forms):

  • Sales (AR): Customers, Invoices, Payments Received, Credit Notes, (Estimates optional).
  • Purchases (AP): Vendors, Bills, Payments Made, Expenses, Vendor Credits — plus the requisition→PO→bill approval chain (Zoho’s PENDING APPROVAL is the seed; Caesar formalises the amount/entity approval matrix).
  • Banking + reconciliation surface.
  • Accountant: Manual Journals (debit/credit + Difference=0), Chart of Accounts, Transaction Locking (period lock), Currency Adjustments (FX reval).
  • Reports: P&L, Balance Sheet, Cash Flow, GL, Trial Balance, AR/AP Aging, Audit Trail.
  • Patterns: document detail + activity/audit timeline, sub-ledger→GL “Journal” link, status lifecycle, attachments, multi-currency, recurring.
  • Dashboard → command centre.

Drop / defer (per BRD §14 out-of-scope or not-MocX):

  • Estimates/Quotes, customer/vendor portals, online payment gateways, reminders/email templates, client reviews, CRM-ish bits.
  • Time Tracking / Projects billing (not core; revisit only if billable ops need it).
  • Canada-specific Tax Returns (GST/HST, PST, QST…) → replaced by Nigerian VAT/WHT + FIRS e-invoicing (BRD §8.9).
  • Riders are not customers — revenue arrives as summarised daily journals by cluster, not per-rider invoices (BRD §2, §8.3). So the high-volume AR invoicing path is not mirrored for swap revenue.

Add (Caesar-native, beyond Zoho):

  • Subsidiary tree + elimination entity and native group roll-up (Zoho needs separate orgs; this is the reason for Caesar — BRD §5).
  • First-class 4-segment dimensional spine (Subsidiary/Location/Class/Department) instead of Reporting Tags (BRD §6).
  • Fixed-asset sub-ledger seeded from the deployed fleet, capitalisation from Hermes deployment events, depreciation, collateral/SPV tagging (BRD §8.5).
  • Inventory→capitalised-asset conversion flow (BRD §8.6).
  • Liabilities/facility schedules (Telpo facility, asset-finance, deferred tail) with D:E & covenant headroom (BRD §8.7).
  • Intercompany flows + elimination (BRD §8.8).
  • Summarised-journal ingestion from Hermes / billing / Polaris / banks (BRD §9).
  • Command centre overlay of booked ledger + live operational feeds (BRD §7).
  • Cluster / SPV-pool reporting off the segment spine; consolidated group statements.

Captured from the live CA demo, 2026-06-18. Representative create-forms inspected: Invoice, Bill, Manual Journal, Customer (others follow the same header + line-grid + footer pattern). Next batches design Caesar’s flows against this baseline — command centre first (see ../flows/README.md).