Module guide
workspace.accounting). Open the left sidebar group Accounting after you select your company workspace.First-time setup (do this once)
-
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.
-
Open accounting periods
Open Accounting periods → generate months for your fiscal year (Apr–Mar). Posting is blocked on closed or locked periods.
-
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.
-
Link bank registers
Under Bank accounts, create one row per real bank account and link it to GL codes
1000(cash) or1100(bank). -
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.
- Click New account → enter a unique code (e.g. 1200) and name.
- Choose the correct type — it controls whether the account appears on the balance sheet or P&L.
- Optional: set a parent account for reporting hierarchy (parent must be same type).
- Turn off Allow posting on group/header accounts that should only roll up children.
- 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.
- Generate months for the fiscal year you need.
- During month-end, reconcile AR/AP and bank, run trial balance, then Close the period.
- Use Reopen only if you must correct something; avoid reopening locked year-end periods without finance approval.
- 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.
- New entry → set date (must fall in an open period), reference, and description.
- Add lines: pick account, enter debit OR credit (not both on one line).
- Optional: assign a cost center per line for budget reporting.
- Save draft to finish later, or Save & post to update the GL immediately.
- 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 |
| 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.
- Filter by customer and date.
- Each line shows debit (invoice) or credit (receipt).
- 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.
- 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.
- Credits increase what you owe (approved invoices); debits reduce it (payments, debit notes).
- 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.
- New → name, account number, link to CoA 1100 (or 1000 for petty cash).
- 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.
- New reconciliation → pick bank account and statement period.
- Add statement lines (date, reference, amount).
- Match each line to a journal entry line (or mark as unmatched).
- 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.
- Create codes used on sales and purchase lines.
- 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.
- Add currencies you trade in.
- 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.
- Enter rate per currency per date (buy/sell or mid rate per your policy).
- 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.
- Create hierarchy (optional parent).
- Assign on manual journal lines.
- 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.
- New budget → name, fiscal year, periods.
- Add lines: account, period, amount.
- 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.
- New asset → acquisition cost, useful life, depreciation method, link to asset / accumulated dep / expense GL accounts.
- CWIP assets can be capitalized when ready.
- On asset detail: Post monthly depreciation (one run per calendar month).
- Bulk run: on index, pick period month and run depreciation for all active assets.
- 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.
- New template → balanced lines, frequency, start date, next run date.
- Activate when ready; Pause to stop without deleting.
- Enable Auto-post to skip draft and post immediately when run.
- Run due — processes all templates with next run date on or before today.
- 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.
- 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.
- Activate a budget first.
- 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.
-
On the server, add:
* * * * * cd /path/to/app && php artisan schedule:run -
Daily at 02:00 —
php artisan accounting:run-tenant-schedules --recurring(due recurring templates). -
Monthly on the 1st at 02:30 —
php artisan accounting:run-tenant-schedules --depreciation(previous month’s depreciation). -
Manual run for one company:
php artisan accounting:run-tenant-schedules --slug=your-company --recurring --depreciation -
Dry run: add
--dry-runto list tenants without posting.
Month-end checklist
- Post all sales invoices and payment receipts for the month (or confirm auto-post succeeded).
- Approve purchase invoices and complete vendor payments; settle debit notes if applicable.
- Run fixed-asset depreciation for the month (or confirm cron ran).
- Reconcile each bank account (Bank reconciliation).
- Run recurring journals (Run due) for accruals.
- Run Trial balance — debits must equal credits.
- Run P&L and Balance sheet; investigate unusual balances in Ledger.
- Run AR aging and AP aging; follow up collections and payments.
- 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
- Inventory — how to use
- Sales — how to use
- Purchase — how to use
- Accounting overview & spec status — Shorter module summary
- Order-to-cash & procure-to-pay — How Sales and Purchase connect to Accounting
- Sidebar menus — Table of every sub-menu
- Screens & URLs — List, create, edit pattern
- Database columns — Accounting tables reference
- Glossary — ERP terms explained