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.
A. Routes / IA
Section titled “A. Routes / IA”- 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.
D. Sub-flow forms 🆕 (web .dlg modals)
Section titled “D. Sub-flow forms 🆕 (web .dlg modals)”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).
D2. Add Transaction (demo menu + Help)
Section titled “D2. Add Transaction (demo menu + Help)”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).
D3. Import Statement (Help)
Section titled “D3. Import Statement (Help)”Launch from account ⋮. Formats: CSV, TSV, XLS, OFX, QIF, CAMT.053, CAMT.054. Steps:
- Configure: Choose File · Amount Column Type (Double Column / Single Column + Amount Type / Single Column with Negative Values) · Character Encoding · File Delimiter.
- Map fields: match statement headers → Zoho fields (Date, Description, Payee, Deposits, Withdrawals, Reference#) per amount-column type.
- Preview → Import. Imported lines land as Uncategorized.
D4. Manage Transaction Rules (Help)
Section titled “D4. Manage Transaction Rules (Help)”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.”D7. Reconcile Account (Help)
Section titled “D7. Reconcile Account (Help)”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.
F4. Interlinks surfaced here (full map in product memory)
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.
E. Caesar build notes
Section titled “E. Caesar build notes”- 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.