Skip to content

banking teardown

Banking module — full teardown (Caesar build contract)

Section titled “Banking module — full teardown (Caesar build contract)”

100% captured 2026-06-19, no manual screenshots needed. Sources: (a) live Zoho demo DOM (#/banking) for read-only views + the Add Transaction menu; (b) Zoho Books official Help docs for the create/edit forms, which the demo blocks (it’s a limited read-only sandbox where Add/Import/Edit don’t open). This file is the checklist we build against and self-verify before review.

🟢 already built in Caesar · 🔧 build fix needed · 🆕 to build

BUILD STATUS (2026-06-19): all sections A–D built in screens/dashboard.html and verified (no console errors). Round-2 (§F) also built & verified: per-account-type Add Transaction types, transactions search + sortable columns, and the full Account Summary view (Activity Summary, Transaction Rules summary, Bank Summary closing-balance chart, Total Uncategorized/Recognized, Recent Transactions / Recurring Expenses / Recurring Journals accordions). Recurring Expenses/Journals link out to Purchases/Accountant (toast until those batches are built). Deliberate prototype simplifications, to revisit if needed: Match & Categorize implements one-click “Match found” + categorize + exclude, but not the full match-candidate selection pane, multi-select match, or the “+ Create adjustment” sub-flow; Import field-mapping doesn’t re-map live per amount-column-type; Reconcile has no Undo. Everything else is faithful and dynamic.


  • Banking overview: #/banking
  • Per-account transactions: #/banking/transactions?account_id=…&filter_by=Status.All&per_page=50
  • Sub-flows launch from the per-account Gear/⋮ menu: Import Statement · Manage Transaction Rules · Reconcile Account · Edit Account.

B. Banking overview page 🟢 (with fixes)

Section titled “B. Banking overview page 🟢 (with fixes)”
  • KPI cards (5): Bank Balance · Card Balance · Cash In Hand · Payment Clearing · Uncategorized Transactions (count + “Categorize now”). 🟢
  • Controls: “All Accounts” selector · “Last 30 days” period. 🟢
  • Cash flow chart — Caesar = actual accounts, rebased index (diverges from demo’s 4 type-series per user). 🟢
  • Accounts table cols: Account Details · Uncategorized (“N transactions”) · Pending Checks · Amount in Bank · Amount in Caesar. 🟢
  • 🔧 Row ⋮ menu varies by account type: Bank & Credit Card → Edit Account · View Transactions · Import Statement · Manage Transaction Rules · Mark as Inactive. Cash & Payment Clearing → Edit Account · View Transactions only. (Currently all rows get the full menu — fix: Petty Cash = reduced.)
  • 🔧 Account-status filter at list level: “Active Accounts” switch (Active / Inactive). Add as a control above/in the table.

C. Account transactions view 🆕 (#scr-bank-txns)

Section titled “C. Account transactions view 🆕 (#scr-bank-txns)”
  • Header: account name + breadcrumb “Dashboard › Banking › {Account}”; account balance summary; ⋮ Gear menu (Import Statement · Manage Transaction Rules · Reconcile Account · Edit Account).
  • View toggle: “Dashboard Account Summary” ↔ “All Transactions”.
  • Status tabs/filter: All · Uncategorized · Categorized · (Manually Added / Excluded). Default Status.All.
  • Transaction table cols: Date · Reference# · Type · Status · Deposits · Withdrawals · Running Balance.
  • Empty state: “There are no transactions recorded for this account. Begin by adding new transactions or simply import your latest account statement.”
  • Actions: Add Transaction (dropdown, see D2) · Import Statement.
  • “Bank Statements From Inbox”: forward statements to a generated email (Copy) + “added all your bank statements!” empty state.

D1. Add Bank or Credit Card (Help: add-accounts)

Section titled “D1. Add Bank or Credit Card (Help: add-accounts)”

Launch: “Add Bank or Credit Card” → Connect page → “Add Account” (manual).

  • Bank fields: Select Account Type (=Bank) · Account Name* · Account Code* · Currency* · Account Number* · Bank Name* · Bank Identifier Code (IFSC/IBAN, optional) · Location (optional) · Users (optional).
  • Credit Card fields: Select Account Type (=Credit Card) · Account Name* · Account Code* · Currency* · Bank Name* · Users (optional). (Credit card omits Account Number & Bank Identifier Code.)
  • (*=required.) Manual entry only in our scope (no live feed integration).

Dropdown grouped Money In / Money Out:

  • Money In: Customer Payment · Sales Without Invoices · Other Income · Interest Income · Owner’s Contribution · Expense Refund · Credit Note Refund · Customer Advance · Transfer From Another Account.
  • Money Out: Expense · Vendor Payment · Vendor Advance · Card Payment · Owner Drawings · Transfer To Another Account.
  • Each opens a record form (mirrors expense/payment forms: Date, Amount, Account/Category, Payee/Customer/Vendor, Reference#, Notes, attachments max 5×5MB).

Launch from account ⋮. Formats: CSV, TSV, XLS, OFX, QIF, CAMT.053, CAMT.054. Steps:

  1. Configure: Choose File · Amount Column Type (Double Column / Single Column + Amount Type / Single Column with Negative Values) · Character Encoding · File Delimiter.
  2. Map fields: match statement headers → Zoho fields (Date, Description, Payee, Deposits, Withdrawals, Reference#) per amount-column type.
  3. Preview → Import. Imported lines land as Uncategorized.

Launch from account ⋮ → New Rule.

  • Rule Name · Apply To (Deposits / Withdrawals radios).
  • Criteria match: “All the following criteria” / “Any one of the following criteria”.
  • Criteria rows: Field (Payee · Description · Reference Number · Amount) · Operator (text: is / contains / starts with / is empty; amount: = / > / >= / < / <=) · Value. Add multiple.
  • Action: Record As (depends on deposit/withdrawal) · Account · Paid Via · Reference Number (Use value from statement / Enter manually) · destination = Recognized (manual review) vs Categorized (auto) · checkbox “Allow Caesar to categorize my bank statements”. Applies to existing + future uncategorized (case-sensitive).

D5. Match & Categorize (Help) — core reconciliation interaction

Section titled “D5. Match & Categorize (Help) — core reconciliation interaction”

Per uncategorized line (in the account’s Uncategorized tab):

  • Match: “Match found” tag → one-click Match; or click line → pane of “best possible matches” with Select (multi-select until selected total = bank amount); Filter (Amount Range · Date Range · Vendor/Customer · Type · Reference#); “Include Withdrawals/Deposits”; “+ Create New Transaction” (Apply To · Date · Account · Amount · Reference#). Multi-select & Match toggle for bulk.
  • Categorize: “Recognized” tag → prefilled (from a rule) → verify → Save; else manual fields by chosen type → Save.
  • Reverse: Unmatch (→ Uncategorized, source → Manually Added) · Uncategorize (deletes the Caesar txn, line → Uncategorized).
  • Sections: Uncategorized / Categorized / Matched (via the All Transactions dropdown).

D6. Edit Account (Help) — same fields as D1, editable.

Section titled “D6. Edit Account (Help) — same fields as D1, editable.”

Launch from account ⋮ → Reconcile Account → Initiate Reconciliation.

  • Fields: Start Date · End Date · Closing Balance (bank statement ending amount).
  • Screen: matched/categorized/manually-added txns listed as cleared/uncleared; Cleared Amount · Closing Balance (editable) · Difference (0 when balanced); “+ Add Transaction” for adjustments; attachments.
  • Finish: Difference = 0 → Reconcile, or Save and Reconcile Later. Status → “Reconciled”. Undo via ⋮ → Reconcile Account → More → Undo.

F. Round-2 capture (2026-06-19) — corrections + missed detail

Section titled “F. Round-2 capture (2026-06-19) — corrections + missed detail”

F1. Add Transaction types are PER ACCOUNT TYPE (was wrong — used bank set for all)

Section titled “F1. Add Transaction types are PER ACCOUNT TYPE (was wrong — used bank set for all)”
  • Bank account (full): Money In = Customer Payment · Sales Without Invoices · Other Income · Interest Income · Owner’s Contribution · Expense Refund · Credit Note Refund · Customer Advance · Transfer From Another Account. Money Out = Expense · Vendor Payment · Vendor Advance · Card Payment · Owner Drawings · Transfer To Another Account.
  • Credit Card account (reduced, confirmed in demo): Money In = Card Payment · Expense Refund. Money Out = Expense · Owner Drawings. (Demo menu listed: Expense, Card Payment, Owner Drawings, Expense Refund.)
  • Cash account (demo wouldn’t open the menu — INFERRED from the asset-account model; flag to confirm): Money In = Customer Payment · Sales Without Invoices · Other Income · Owner’s Contribution · Transfer From Another Account. Money Out = Expense · Vendor Payment · Owner Drawings · Transfer To Another Account. (No Card Payment.)
  • Each type’s record form mirrors the matching module form (Expense→expense fields, Customer Payment→AR/invoice, Vendor Payment→AP/bill, Transfer→from/to account, Owner→equity). Common fields: Date, Amount, Paid To/Received From, Account/Category, Reference#, Notes, attachments (max 5×5MB).

F1b. Add Transaction — EXACT fields per type (captured field-by-field from the demo, 2026-06-19)

Section titled “F1b. Add Transaction — EXACT fields per type (captured field-by-field from the demo, 2026-06-19)”

Demo also shows an Exchange Rate field (multi-currency only) + Reporting Tags — omitted in Caesar (single-currency USD). Attachments = “max 5 files, 10MB each”.

  • Customer Payment / Customer Advance: Customer* · Amount Received* · Bank Charges (if any) · Date* · Payment # · Reference# · Received Via* · Description · Attachments
  • Sales Without Invoices: Revenue Account* · Customer · Date* · Amount* · Bank Charges · Tax · Received Via* · Reference# · Description · Attachments
  • Other Income: From Account* · Date* · Amount* · Received Via* · Reference# · Description · Attachments
  • Interest Income: Date* · Amount* · Received Via* · Reference# · Description · Attachments
  • Owner’s Contribution: From Account* (equity) · Date* · Amount* · Received Via* · Reference# · Description · Attachments
  • Expense Refund: From Account* (expense) · Date* · Amount* · Tax · Received Via* · Vendor · Reference# · Description · Attachments
  • Credit Note Refund: Customer* · Date* · Reference# · Paid Via* · Description (amount derived from the credit note; Caesar adds Amount)
  • Transfer From Another Account: To Account (this) · From Account* · Date* · Amount* · Reference# · Description · Attachments
  • Expense: Expense Account* · Itemize · Vendor · Date* · Amount* · Tax · Reference# · Description · Customer · Reporting Tags · Attach Receipt
  • Vendor Payment / Vendor Advance: Vendor* · Amount* · Date* · Bank Charges · Reference# · Paid Via* · Description (Vendor Advance also: Deposit To)
  • Card Payment: From Account (this bank) · To Account* (card) · Date* · Amount* · Reference# · Description · Attachments (on a card account: From Account = bank, To Account = this)
  • Owner Drawings: To Account* (equity) · Date* · Amount* · Reference# · Description · Attachments
  • Transfer To Another Account: From Account (this) · To Account* · Date* · Amount* · Reference# · Description · Attachments

F2. Account Summary view (is_overview=true) — was under-built; full widget list:

Section titled “F2. Account Summary view (is_overview=true) — was under-built; full widget list:”
  • Activity Summary: Check Summary (N In progress · N To be printed) · Latest Statement Details (Transactions · Auto-Categorized · Recognized · Duplicates · Uncategorized · Best Matches) · Last Manual Import (N transactions on date · Import Statement) · Last Reconciliation (Reconciled On · Closing Balance).
  • Transaction Rules summary: Withdrawal Rule(s): N · Deposit Rule(s): N · New Rule.
  • Bank Summary chart: a Closing Balance line chart over the last 30 days (period filter). → this is the “chart view for the account summary” (build it).
  • Right column: Total Uncategorized (count · Categorize now) · Total Recognized (count · Categorize now) · Recent Transactions (list · View More) · Recurring Expenses (expandable; links to Purchases) · Recurring Journals (expandable; Next Journal Date · View More; links to Accountant).

F3. Transactions list controls to add (per user)

Section titled “F3. Transactions list controls to add (per user)”
  • Search input (the list holds many transactions).
  • Sortable columns with sort icons: Date · Deposits · Withdrawals · Running Balance.
Section titled “F4. Interlinks surfaced here (full map in product memory)”

Recurring Expenses → Purchases module · Recurring Journals → Accountant (Manual Journals) · Recent Transactions → the txn list · Categorize/Match → posts to Chart of Accounts/GL · Customer Payment ↔ Sales invoices · Vendor Payment ↔ Purchases bills · Transfer ↔ another bank account.

  • Real MocX accounts, all USD (consolidated 2026-06-19, no NGN): GTBank · Operations [Bank], Sterling · Collections [Bank], Petty Cash [Cash], Mercury · Operating [Bank], JPMorgan · Reserve [Bank], Corporate Card [Credit Card]; rename Zoho slots → Caesar/MocX.
  • Build transactions view as new .app-screen; modals as web .dlg. All controls live/clickable; toast only for genuinely out-of-scope.
  • Self-verify against this checklist before handing back for review.

Add Transaction type menu — RE-CAPTURED from demo 2026-06-20 (bank account)

Section titled “Add Transaction type menu — RE-CAPTURED from demo 2026-06-20 (bank account)”

MONEY OUT: Expense · Vendor Advance · Vendor Payment · Transfer To Another Account · Sales Return · Card Payment · Owner Drawings · Credit Note Refund · Payment Refund MONEY IN: Customer Advance · Customer Payment · Sales Without Invoices · Transfer From Another Account · Interest Income · Other Income · Expense Refund · Deposit From Other Accounts · Owner’s Contribution · Vendor Credit Refund · Vendor Payment Refund → Caesar TXN_TYPES.bank must match this exactly. Card/Cash = sensible subsets (Card: Card Payment, Expense Refund / Expense, Owner Drawings; Cash: cash-relevant in/out). Each type must open a working Add Transaction form that submits and prepends a real row.

PER-TYPE Add Transaction FORM FIELDS — captured by clicking into EACH type (demo, 2026-06-20)

Section titled “PER-TYPE Add Transaction FORM FIELDS — captured by clicking into EACH type (demo, 2026-06-20)”

(Drop Exchange Rate + Reporting Tags for Caesar = USD/single-org. “Received Via”/“Paid Via” = the bank/cash account the money lands in/leaves. Each must submit and prepend a real row to the account feed + update balances.)

  • Expense: Expense Account · Vendor · Date · Amount · Tax · Reference# · Description · Customer(billable)
  • Vendor Payment: Vendor · Amount · Date · Bank Charges · Reference# · Paid Via · Description
  • Vendor Advance: Vendor · Amount · Date · Bank Charges · Reference# · Paid Via · Deposit To · Description
  • Transfer To Another Account: From Account · To Account · Date · Amount · Reference# · Description
  • Transfer From Another Account: To Account · From Account · Date · Amount · Reference# · Description
  • Card Payment: From Account · To Account · Date · Amount · Reference# · Description
  • Owner Drawings: To Account · Date · Amount · Reference# · Description
  • Sales Return: Revenue Account · Customer · Date · Amount · Tax · Paid Via · Reference# · Description
  • Credit Note Refund: Customer · Date · Reference# · Paid Via · Description
  • Payment Refund: Customer · Date · Reference# · Paid Via · Description
  • Customer Payment: Customer · Amount Received · Bank Charges · Date · Payment# · Reference# · Received Via · Description
  • Customer Advance: Customer · Amount Received · Bank Charges · Date · Payment# · Reference# · Received Via · Description
  • Sales Without Invoices: Revenue Account · Customer · Date · Amount · Bank Charges · Tax · Received Via · Reference# · Description
  • Interest Income: Date · Amount · Received Via · Reference# · Description
  • Other Income: From Account · Date · Amount · Received Via · Reference# · Description
  • Expense Refund: From Account · Date · Amount · Tax · Received Via · Vendor · Reference# · Description
  • Deposit From Other Accounts: Date · Amount · Received Via · From Account · Received From · Reference# · Description
  • Owner’s Contribution: From Account · Date · Amount · Received Via · Reference# · Description
  • Vendor Credit Refund: Vendor · Date · Received Via · Reference# · Description
  • Vendor Payment Refund: Vendor · Date · Reference# · Received Via · Description

ALL account types (bank/card/cash) show the SAME full Add Transaction menu (re-captured 2026-06-20) — do NOT subset by account type. Use the full Money Out/Money In list everywhere.