Accounting — how to use

Module guide

This page explains every Accounting menu item in plain language: what it is for, what to click, and how it connects to Sales and Purchase. For a shorter overview and spec status table, see the Accounting overview. For menu paths only, see Sidebar menus.
Who can see Accounting? Users with the Accountant, Administrator, or Owner role (permission workspace.accounting). Open the left sidebar group Accounting after you select your company workspace.

First-time setup (do this once)

  1. Review chart of accounts

    Open Chart of accounts. Ensure you have accounts for cash, bank, AR, AP, revenue, purchases/COGS, GST, and retained earnings. The demo seeder creates common codes; adjust names and hierarchy for your business.

  2. Open accounting periods

    Open Accounting periods → generate months for your fiscal year (Apr–Mar). Posting is blocked on closed or locked periods.

  3. Post opening balances (if migrating)

    Use Journal entries → New entry with date in the first open period. Debit assets, credit liabilities/equity so the trial balance foots.

  4. Link bank registers

    Under Bank accounts, create one row per real bank account and link it to GL codes 1000 (cash) or 1100 (bank).

  5. Run a test transaction

    Create a small sales invoice and payment receipt (Sales module) or a manual journal, then open Trial balance to confirm debits equal credits.

How money flows through the system

Sales and Purchase documents can automatically post journal entries when you save or approve them. Manual journals handle adjustments, opening balances, and anything not yet automated. All posted lines appear in Ledger, Trial balance, P&L, and Balance sheet. Customer and vendor sub-ledgers track who owes you and whom you owe, separate from the GL detail.

Setup: chart of accounts & periods

Accounting dashboard

Menu path: /workspace/{your-company-slug}/accounting

Snapshot of AR/AP balances, cash and bank, GST summary, and counts of documents waiting for action.

  • Use it each morning to see overdue receivables and payables.
  • Click through to detailed reports from KPI cards where links exist.

Chart of accounts

Menu path: /workspace/{your-company-slug}/accounting/accounts

Master list of GL accounts: code, name, type (asset, liability, equity, revenue, expense), parent for roll-ups, active and allow-posting flags.

  1. Click New account → enter a unique code (e.g. 1200) and name.
  2. Choose the correct type — it controls whether the account appears on the balance sheet or P&L.
  3. Optional: set a parent account for reporting hierarchy (parent must be same type).
  4. Turn off Allow posting on group/header accounts that should only roll up children.
  5. Deactivate instead of deleting accounts that already have journal history.
  • Auto-posting from Sales and Purchase expects default codes listed in the table below — create them before go-live or postings will create accounts automatically with default names.

Accounting periods

Menu path: /workspace/{your-company-slug}/accounting/periods

Fiscal months (Indian FY: April–March). Status: open (posting allowed), closed, or locked.

  1. Generate months for the fiscal year you need.
  2. During month-end, reconcile AR/AP and bank, run trial balance, then Close the period.
  3. Use Reopen only if you must correct something; avoid reopening locked year-end periods without finance approval.
  4. Year-end close transfers P&L to retained earnings (account 3900 when configured).
  • Any journal dated in a closed period is rejected — fix the document date or reopen the period.

Journal entries (manual)

Menu path: /workspace/{your-company-slug}/accounting/journals

Double-entry vouchers you create yourself: draft, posted, or reversed.

  1. New entry → set date (must fall in an open period), reference, and description.
  2. Add lines: pick account, enter debit OR credit (not both on one line).
  3. Optional: assign a cost center per line for budget reporting.
  4. Save draft to finish later, or Save & post to update the GL immediately.
  5. From the list: Post a draft, or Reverse a posted entry to create an opposite mirror JE.
  • Posted entries cannot be edited — reverse and re-enter if wrong.
  • Only posted lines appear in financial reports.

Automatic posting from Sales & Purchase

You do not need a separate GL screen for routine sales and purchases if documents are saved in the correct status. The system creates a posted journal entry and links it on the document (journal_entry_id).

Event When it posts Typical journal
Sales tax invoice / invoice sent When invoice is saved (not draft/cancelled) Dr AR · Cr Revenue · Cr GST payable
Payment receipt completed When receipt is saved (not draft/cancelled/bounced) Dr Cash/Bank · Cr AR
Sales return / credit note When return is approved or credit note issued Dr Revenue · Dr GST · Cr AR
Purchase invoice approved Approve on purchase invoice list Dr Purchases · Dr GST input · Cr AP (net of TDS) · Cr TDS payable
Vendor payment completed Complete payment workflow Dr AP · Cr Cash/Bank · Cr TDS (if deducted)
Debit note settled Settle purchase return Dr AP · Cr Purchases · Cr GST input
Default account codes used when accounts do not exist yet — the app creates them on first post. Customize your chart before production.
Code Purpose Module
1000 Cash on hand Sales receipts (cash), vendor payments (cash)
1100 Bank Sales receipts (non-cash), vendor payments (NEFT/cheque/etc.)
1200 Accounts receivable Sales invoices
2000 Accounts payable Purchase invoices, payments, debit notes
2100 GST payable (output) Sales tax
2110 GST input (ITC) Purchase tax
2200 TDS payable Purchase TDS withheld
4000 Sales revenue Sales invoices
5000 Purchases / COGS Purchase invoices and debit notes
5100 Depreciation expense Fixed asset depreciation
1500 / 1510 Fixed asset / accumulated depreciation Asset register

Accounts receivable (customers)

Customer ledger

Menu path: /workspace/{your-company-slug}/accounting/ar/ledger

Sub-ledger of invoices, receipts, and credits per customer — synced when sales documents post to GL.

  1. Filter by customer and date.
  2. Each line shows debit (invoice) or credit (receipt).
  3. Use with Sales → Invoices and Receipts for collection work.

AR aging

Menu path: /workspace/{your-company-slug}/accounting/reports/ar-aging

Outstanding invoices bucketed 0–30, 31–60, 61–90, 90+ days past due.

  • Run weekly for collections.
  • Compare total to GL account 1200 using control-account logic in customer ledger.

Customer outstanding

Menu path: /workspace/{your-company-slug}/accounting/reports/customer-outstanding

List of customers with open balances as of a date.

Customer statement

Menu path: /workspace/{your-company-slug}/accounting/reports/customer-statement

Printable statement for one customer: opening balance, movements, closing balance.

  1. Select customer and date range → generate → send to customer for reconciliation.

Accounts payable (vendors)

Vendor ledger

Menu path: /workspace/{your-company-slug}/accounting/ap/ledger

Sub-ledger of bills, payments, and debit notes per vendor — synced when purchase documents post.

  1. Credits increase what you owe (approved invoices); debits reduce it (payments, debit notes).
  2. Payment lines include TDS deducted in the debit amount.

AP aging

Menu path: /workspace/{your-company-slug}/accounting/reports/ap-aging

Unpaid vendor bills by age bucket — use to prioritize payments.

Vendor outstanding

Menu path: /workspace/{your-company-slug}/accounting/reports/vendor-outstanding

Vendors with open balances as of a date.

Vendor statement

Menu path: /workspace/{your-company-slug}/accounting/reports/vendor-statement

Statement for one vendor for a period — reconcile before paying.

Banking & reconciliation

Bank accounts

Menu path: /workspace/{your-company-slug}/accounting/bank-accounts

Register each real bank or cash account; link to a GL asset account and record opening balance.

  1. New → name, account number, link to CoA 1100 (or 1000 for petty cash).
  2. Book balance updates from posted journal lines on that GL account.

Bank reconciliation

Menu path: /workspace/{your-company-slug}/accounting/reconciliation

Import or enter bank statement lines and match them to posted journal lines.

  1. New reconciliation → pick bank account and statement period.
  2. Add statement lines (date, reference, amount).
  3. Match each line to a journal entry line (or mark as unmatched).
  4. Finalize when statement balance agrees with book balance plus outstanding items.
  • Do this monthly before closing the accounting period.

Tax management

Tax codes

Menu path: /workspace/{your-company-slug}/accounting/tax-codes

Define GST, TDS, TCS rates and optional GL links for reporting.

  1. Create codes used on sales and purchase lines.
  2. Keep rates aligned with statutory slabs.

Tax returns

Menu path: /workspace/{your-company-slug}/accounting/tax-returns

Workspace to prepare GSTR-1, GSTR-3B, GSTR-9, and TDS return workflows (prepare / review / file states).

  • Figures should tie to GL GST accounts and sales/purchase registers — reconcile before filing.

Multi-currency, cost centers & budgets

Currencies

Menu path: /workspace/{your-company-slug}/accounting/currencies

ISO currency master; mark one as base (functional) currency.

  1. Add currencies you trade in.
  2. Set exactly one base currency for the workspace.

Exchange rates

Menu path: /workspace/{your-company-slug}/accounting/exchange-rates

Daily rates from foreign currency to base — used when converting amounts.

  1. Enter rate per currency per date (buy/sell or mid rate per your policy).
  2. Update regularly for accurate conversion on reports.

Cost centers

Menu path: /workspace/{your-company-slug}/accounting/cost-centers

Departments, projects, or branches for dimensional reporting.

  1. Create hierarchy (optional parent).
  2. Assign on manual journal lines.
  3. Use in budgets and budget vs actual report.

Budgets

Menu path: /workspace/{your-company-slug}/accounting/budgets

Budget versions by fiscal period with GL account lines and optional cost center.

  1. New budget → name, fiscal year, periods.
  2. Add lines: account, period, amount.
  3. Activate when ready; close when superseded.

Fixed assets

Fixed assets register

Menu path: /workspace/{your-company-slug}/accounting/fixed-assets

Track capital assets, CWIP, monthly depreciation (SLM or WDV), and disposal.

  1. New asset → acquisition cost, useful life, depreciation method, link to asset / accumulated dep / expense GL accounts.
  2. CWIP assets can be capitalized when ready.
  3. On asset detail: Post monthly depreciation (one run per calendar month).
  4. Bulk run: on index, pick period month and run depreciation for all active assets.
  5. Dispose when sold or scrapped.
  • Depreciation posts Dr 5100 expense · Cr 1510 accumulated depreciation.
  • Server cron can run depreciation on the 1st of each month — see Scheduled jobs below.

Recurring journals

Recurring journal templates

Menu path: /workspace/{your-company-slug}/accounting/recurring-journals

Rent, salaries accruals, depreciation journals, etc. on a monthly/quarterly/annual schedule.

  1. New template → balanced lines, frequency, start date, next run date.
  2. Activate when ready; Pause to stop without deleting.
  3. Enable Auto-post to skip draft and post immediately when run.
  4. Run due — processes all templates with next run date on or before today.
  5. Open a template to run once manually or view run history.
  • Daily server job runs due templates at 02:00 — ensure Laravel scheduler cron is configured on production.

Financial reports

Ledger

Menu path: /workspace/{your-company-slug}/accounting/reports/ledger

All posted lines for one GL account between two dates, with opening and closing balance.

  • Start here when investigating a trial balance variance.

Trial balance

Menu path: /workspace/{your-company-slug}/accounting/reports/trial-balance

Every account with debit or credit balance; totals must match.

  1. Pick as-of date → run → confirm total debits = total credits before month-end close.

Profit & loss (P&L)

Menu path: /workspace/{your-company-slug}/accounting/reports/pl

Revenue minus expenses for a date range.

Balance sheet

Menu path: /workspace/{your-company-slug}/accounting/reports/balance-sheet

Assets, liabilities, and equity as of one date.

Cash flow statement

Menu path: /workspace/{your-company-slug}/accounting/reports/cash-flow

Indirect-method cash flow: net income, adjustments, working capital, investing, financing; reconciles to cash and bank GL.

  • Use alongside bank reconciliation.
  • Direct method and per-account cash categories are not yet available.

Budget vs actual

Menu path: /workspace/{your-company-slug}/accounting/reports/budget-vs-actual

Compare budget lines to actual posted amounts by account and cost center for a period.

  1. Activate a budget first.
  2. Select budget version and period range.

Scheduled jobs (server administrator)

Recurring journals and fixed-asset depreciation can run automatically for every organization in the SaaS. This requires a system cron entry that calls Laravel’s scheduler every minute.

  1. On the server, add: * * * * * cd /path/to/app && php artisan schedule:run
  2. Daily at 02:00 — php artisan accounting:run-tenant-schedules --recurring (due recurring templates).
  3. Monthly on the 1st at 02:30 — php artisan accounting:run-tenant-schedules --depreciation (previous month’s depreciation).
  4. Manual run for one company: php artisan accounting:run-tenant-schedules --slug=your-company --recurring --depreciation
  5. Dry run: add --dry-run to list tenants without posting.

Month-end checklist

  1. Post all sales invoices and payment receipts for the month (or confirm auto-post succeeded).
  2. Approve purchase invoices and complete vendor payments; settle debit notes if applicable.
  3. Run fixed-asset depreciation for the month (or confirm cron ran).
  4. Reconcile each bank account (Bank reconciliation).
  5. Run recurring journals (Run due) for accruals.
  6. Run Trial balance — debits must equal credits.
  7. Run P&L and Balance sheet; investigate unusual balances in Ledger.
  8. Run AR aging and AP aging; follow up collections and payments.
  9. Close the accounting period when satisfied.

Frequently asked questions

Why can’t I post a journal?

The journal date may fall in a closed or locked accounting period. Open the period on Accounting periods, or change the document date to an open month.

I edited an invoice but the GL did not change

Re-save the sales invoice or purchase invoice in a status that triggers posting. Posted JEs are replaced when the poster runs again on that document. Cancelled documents unpost (reverse) the JE.

Customer ledger does not match GL account 1200

Use control-account reconciliation on the customer ledger screen. Differences usually mean manual journals hit AR without a customer sub-ledger line, or documents posted before sub-ledger was enabled.

Where is inventory GRNI posting?

Posted goods receipts (GRN) auto-create a journal: debit Inventory (1250), credit GRNI accrual (2050), using line qty × unit cost. When you approve a purchase invoice whose lines reference those GRN rows, the system debits 2050 (clears GRNI) instead of 5000 Purchases for that portion. Stock adjustments, physical counts, and transfers also post via Inventory source journals.

How do I import bank statement lines?

Accounting → Bank reconciliation → open a statement → Import from CSV. Use columns for date plus withdrawal/deposit, debit/credit, or a signed amount; optional reference and description.

Can I delete an account?

Deactivate accounts that have history. Deleting accounts referenced on journal lines is blocked.

Related documentation