Double-Entry Cashbook, General Journal Studio, CSV Bank Statement Auto-Match, Trial Balance, Chart of Accounts & Studio
Your complete guide to the accounting heart of Keystone X: inspect chronological bank cashbooks with automatic double-entry contra mapping, post balanced General Journal vouchers (`JNL-XXXX`), reverse posted journals with 1-click contra audit trails, import CSV bank statements with smart invoice auto-matching, verify your Trial Balance workpaper, and manage your IFRS Chart of Accounts (`1000–6999`).
1. Plain-English Accounting 101: Cashbooks, General Journals, COA & Trial Balance
Even if you have never studied bookkeeping, Keystone X automates 95% of your double-entry postings behind the scenes whenever you issue an invoice, receive a payment, or log an expense. However, understanding the four pillars of the **Cashbook & General Ledger Command Center** (`Cashbook/index`) gives you—and your external accountant or auditor—complete control over your financial statements:
| Accounting Pillar | What It Means in Plain English | How Keystone X Automates It |
|---|---|---|
| 1. Chart of Accounts (COA) | Every financial bucket in your business has a standardized 4-digit code grouped by category: • 1000–1999: Assets (Bank, AR Debtors, Inventory) • 2000–2999: Liabilities (AP Creditors, SARS VAT Control) • 3000–3999: Equity (Share Capital, Retained Earnings, Drawings) • 4000–4999: Revenue (Sales, Service Labour) • 5000–5999: Direct Cost of Sales (COGS) • 6000–6999: Operating Expenses (Rent, Salaries, Fuel) |
Pre-seeded with a full South African IFRS-SME Chart of Accounts that you can expand at any time in Cashbook/settings?tab=coa. |
| 2. Cashbook Ledger | A chronological diary of a specific bank account showing every Rand that came in (Debit to Bank) and every Rand that went out (Credit from Bank), alongside its Contra GL Account (the reason the money moved) and the running balance after each line. | Automatically compiled in real time from Customer Payments (`1100` AR Contra), Expense Payouts (`6xxx` Expense Contra), Inter-Account Transfers (`10xx` Bank Contra), and Manual Journal lines touching that bank's GL code. |
| 3. General Journal Voucher (`JNL-XXXX`) | Used for non-cash accounting adjustments that don't happen via a normal customer invoice or supplier bill—such as Monthly Depreciation, Payroll Wage Accruals, Director Loan Drawings, or Year-End Audit Adjustments. | Enforces the golden rule of double-entry accounting: $$\sum \text{Debits (DR)} = \sum \text{Credits (CR)}$$ The system physically blocks saving or posting an unbalanced journal. |
| 4. Trial Balance Workpaper | A master summary table listing every active GL Account and its total Period Debits, Period Credits, and Ending Debit/Credit Balance. If the bottom totals match (`Total DR == Total CR`), your books are mathematically in balance. | Calculated live across your selected fiscal period (`01 Mar` to `28 Feb` by default) with 1-click workpaper printing for your external auditor. |
2. Command Center Header, Fiscal Lock Badge & 4 KPI Cards
Navigate to Accounting & Banking → Cashbook & Journals (`Cashbook/index`).
📸 SCREENSHOT PLACEHOLDER: cashbook-command-center-ledger.png
- Navigate to
Cashbook/index?view_mode=cashbook. - Capture the top header (showing the Double-Entry GL badge and action pills: Import Bank CSV, Print Workpaper, Customize, + New Journal Entry), the 4 KPI cards, the 4-Mode View Switcher bar, and the chronological Cashbook Ledger table with Opening Balance brought forward (`B/F`) and Closing Balance carried forward (`C/F`).
Cashbook/settings, a yellow lock badge appears in the header. Keystone X will block any user from backdating new or edited Journal Vouchers on or before that lock date, protecting your historical audited numbers from accidental changes!The 4 Premier Cashbook & GL KPI Cards
- Card 1 — Selected Cashbook Closing: Shows the closing cash balance for the currently selected bank account and date range, along with its Opening Balance (`B/F`) and linked GL Control Code badge (`GL 1000`).
- Card 2 — Period Cashbook Movement: Net cash movement (`Period Inflows DR − Period Outflows CR`) over the selected date filter.
- Card 3 — Trial Balance Integrity: Displays
100% Balancedin green (orOut of Balancein red) along with aggregate Period Debits ($\Sigma\text{ DR}$) and Period Credits ($\Sigma\text{ CR}$). - Card 4 — Journals & Chart of Accounts: Total count of General Journal Vouchers in the period, count of Active GL Accounts in your Chart of Accounts, and a quick
+ Post Entrylink.
3. Mode 1: Chronological Bank Cashbook Ledger (`?view_mode=cashbook`)
In **Cashbook Ledger** mode, use the filter ribbon to select any corporate bank vault (`bank_account_id`) and date range (defaults to the South African fiscal year `01 March` – `28 February`).
| Cashbook Column | What It Displays |
|---|---|
| Row 0: Opening Balance B/F | Pinned top row showing the exact cash balance brought forward (`B/F`) prior to your selected `start_date`. |
| Date & Source Module | Transaction date and color-coded origin badge: AR Receipt, AP Expense, Transfer In/Out, or General Journal. |
| Document / Ref # | Clickable link to the underlying source voucher (`INV-XXXX`, `EXP-XXXX`, `TRF-XXXX`, or `JNL-XXXX`). |
| Party & Narration | Customer name, supplier/beneficiary name, inter-bank vault name, or journal narration. |
| Contra GL Account | Shows the opposite leg of the double-entry posting (e.g., 1100 · Accounts Receivable Control for customer receipts, 6xxx · Operating Expense for expenses, or 1010 · Savings Bank for transfers). |
| Debit (Inflow +) | Money entering the bank account (increases an Asset GL account). |
| Credit (Outflow −) | Money leaving the bank account (decreases an Asset GL account). |
| Running Balance | Live cumulative bank balance after every single chronological transaction, ending with the pinned Closing Balance Carried Forward (C/F) footer row. |
4. Mode 2: Double-Entry General Journals & Posting Studio (`addJournal` & `viewJournal`)
Click the **Double-Entry Journals** pill (`Cashbook/index?view_mode=journals`) to view all manual and template-generated journal vouchers, or click **+ New Journal Entry** (`Cashbook/addJournal`) to open the **Double-Entry Journal Voucher Studio**.
📸 SCREENSHOT PLACEHOLDER: cashbook-add-journal-entry-studio.png
- Navigate to
Cashbook/addJournal. - Click one of the 1-Click Recurring Journal Blueprints at the top (e.g., Monthly Depreciation or Payroll Salary & PAYE Accrual) so two balanced Debit/Credit lines populate automatically.
- Capture the Journal Entry Studio showing the Blueprint buttons, Header fields, Line Items grid, and the green Balanced (Difference: R 0.00) footer bar.
Key Features of the General Journal Voucher Studio (`Cashbook/addJournal`)
- 1-Click Journal Blueprints: Select any configured template (such as Monthly Asset Depreciation, Payroll Gross Salary / PAYE / UIF Accrual, Provision for Bad Debts, or Owner Drawings / Loan Account) to automatically populate the Debit and Credit GL lines and narration!
- Voucher Header Fields:
journal_number: Auto-generated (`JNL-0001`).entry_date: Checked automatically against your Fiscal Period Lock Date (`jnl_lock_date`).journal_type:General Journal,Adjusting Entry,Depreciation,Payroll Accrual,Opening Balance, orReversing Entry.status: ChoosePosted(immediately updates the General Ledger and Trial Balance) orDraft / Under Review(saved for supervisor review before posting).reference&description: External workpaper reference and mandatory audit narration.
- Multi-Line Debit & Credit Grid: Add 2 or more GL lines. Each row requires a GL Account (`gl_account_code`), line description, and either a Debit Amount or a Credit Amount.
- Live Mathematical Balance Guard: As you type, Keystone X sums Total Debits and Total Credits at the bottom of the grid. If `Total Debits != Total Credits`, the difference is highlighted in red and the submit button prevents posting an out-of-balance voucher.
Viewing, Printing & Reversing a Posted Journal (`Cashbook/viewJournal/{id}`)
Reversed, and links both vouchers permanently for your auditors! You can also click Download Journal Voucher PDF (`Cashbook/pdfJournal/{id}`) with dual Prepared By / Approved By signature blocks.5. Mode 3: Live Trial Balance Workpaper (`?view_mode=trial_balance`)
Clicking **Trial Balance Workpaper** (`Cashbook/index?view_mode=trial_balance`) compiles your live general ledger activity across all sub-ledgers (AR Invoices, Customer Receipts, AP Expenses, Bank Vaults, VAT Control, and Posted General Journals) into a multi-column audit schedule:
- Account Code & GL Account Name: Grouped and badged by financial statement class (`Asset`, `Liability`, `Equity`, `Revenue`, `Cost of Sales`, `Expense`).
- Normal Balance Side: Indicates whether the account naturally carries a `Debit` (`Asset`, `Cost of Sales`, `Expense`) or `Credit` (`Liability`, `Equity`, `Revenue`) balance.
- Period Activity (Debit / Credit): Gross debits and gross credits posted during the filtered period.
- Net Ending Balance (Debit / Credit): Net closing position for each GL account, culminating in a grand total verification row confirming $\sum \text{Ending DR} = \sum \text{Ending CR}$.
6. Mode 4: IFRS Chart of Accounts Master Directory (`?view_mode=coa`)
Clicking **Chart of Accounts (COA)** (`Cashbook/index?view_mode=coa`) displays your complete General Ledger chart structure (`1000` through `6999`), showing each account's Code, Name, Account Type, Sub-Category, Normal Balance (`Debit`/`Credit`), Tax Code mapping, System Lock indicator (`is_system`), and Active status.
7. Smart CSV Bank Statement Import & Invoice Auto-Matching (`Cashbook/import`)
Instead of capturing dozens of bank lines by hand, click **Import Bank CSV** (`Cashbook/import`) in the top header to upload a standard CSV bank statement exported from FNB, Standard Bank, ABSA, Nedbank, Capitec, or Investec.
📸 SCREENSHOT PLACEHOLDER: cashbook-csv-bank-statement-import-matching.png
- Navigate to
Cashbook/importand upload a sample CSV bank statement (or view the Step 2 reconciliation grid). - Capture the interactive allocation screen showing positive inflows auto-matched to open Customer Invoices and negative outflows mapped to Expense Categories or GL Account Codes.
Step 1: Supported CSV Formats (`Cashbook/import`)
Select the target Bank Account Vault and upload any `.csv` file up to 5 MB. Keystone X automatically detects both banking industry column layouts:
- 3-Column Format:
Date, Description, Amount(where inflows are positive `+1500.00` and outflows are negative `-450.00`). - 4-Column Format:
Date, Description, Debit, Credit(separate outflow and inflow columns).
Step 2: Smart Auto-Match & Batch Posting (`processImport`)
- Inflows (Money In `> 0`): Keystone X scans all unpaid/partially paid Customer Invoices. If the bank description contains the Invoice Number (e.g.,
INV-0042) or the deposit amount matches an invoice's exact `balance_due`, it pre-selects that invoice automatically! When committed, it records the official Customer Payment (`PaymentModel::recordPayment`) and updates the invoice status to `Paid` or `Partially Paid`. - Outflows (Money Out `< 0`): Choose an Expense Category (creates a paid Expense entry linked to that bank vault) OR choose any GL Account (`gl:XXXX`) to post a balanced Double-Entry Cashbook Journal (`Auto Cashbook Sync`) crediting the Bank GL and debiting the selected Contra GL!
8. Cashbook & GL Governance Studio (`Cashbook/settings` — 4 Tabs)
Click **Customize** (`Cashbook/settings`) to manage your accounting controls across four tabs:
| Studio Tab | Configurable Settings & Actions |
|---|---|
Tab 1: Numbering & Lock Dates (?tab=general) |
Configure Journal Voucher Prefix (`JNL-`), Next Sequence Number, Fiscal Period Lock Date (`jnl_lock_date`) (blocks posting or editing journals on/before this date), Require Approval Above Threshold (`jnl_approval_threshold`), Auto-Post Sub-Ledger Receipts & Expenses to GL, and Enforce Strict Balanced Voucher Check. |
Tab 2: Chart of Accounts Manager (?tab=coa) |
Add new General Ledger accounts (`Cashbook/saveGlAccount`) or edit existing accounts (`Account Code`, `Account Name`, `Type`: Asset / Liability / Equity / Revenue / Cost of Sales / Expense, `Normal Balance`, `Default Tax Code`, and `Active Status`). Core system control accounts (`1000`, `1100`, `2000`, `2200`) are protected from accidental deletion. |
Tab 3: Recurring Journal Blueprints (?tab=templates) |
Create or edit 1-click **Journal Entry Templates** (`Cashbook/saveTemplate`) with pre-mapped Debit GL Code, Credit GL Code, Journal Type, and default narration (e.g., Monthly Depreciation, Salary & PAYE Accrual, Director Drawings). |
Tab 4: Journal Workflow Stages (?tab=stages) |
Customize journal lifecycle badges (`Draft`, `Under Review`, `Posted`, `Reversed`) and color themes (`Cashbook/saveStage`). |