The platform, documented
Everything VISIONS ERP does - the double-entry financial core (ledger, AR/AP, treasury, fixed assets, budgeting and reports), the operational modules (inventory, purchasing, sales), HR & payroll, and the Auto Garage and Real Estate industry verticals. A complete, double-entry general ledger sits under every transaction in the system.
Overview
The Financial module is the system of record for your company's money. Every posting - a sales invoice, a stock movement, a payroll run, a depreciation charge - writes a balanced double-entry journal to the same general ledger, so your trial balance, profit & loss and balance sheet are always live and always reconciled.
It is organised into a few connected areas:
- General ledger - chart of accounts, journal entries, fiscal calendar, and the trial balance / financial statements they roll up into.
- Receivables & payables - customers and vendors, their invoices and bills, receipts and payments, credit/debit notes, refunds and post-dated cheques.
- Cash, bank & treasury - bank and cash accounts, reconciliation, company credit cards, a reconciliation centre and a forward cash-flow forecast.
- Fixed assets - an asset register with categories, scheduled depreciation runs and disposals.
- Configuration - currencies and exchange rates, tax codes, cost centres and budgets.
Around that core sit the operational modules - Inventory, Purchasing and Sales - the workforce module, HR & Payroll, and the industry verticals, Auto Garage and Real Estate. Each is documented below, and every one posts through to this same ledger.
Sub-ledger documents (invoices, bills, receipts, payments, inventory moves) post through to the general ledger automatically. You rarely key a manual journal - but when you do, the same rules apply: debits must equal credits, and the date must fall in an open period.
Finding your way around
Screens are grouped by what you're doing, not by which module owns them. Three places, and they don't overlap:
Three masters break the rule on purpose: Items, Customers and Vendors stay in the sidebar, because they are worked with constantly alongside the documents that reference them - burying them in setup would cost more than the tidiness is worth.
One consequence worth knowing: a screen never mixes the two jobs. Tax codes are set up under Settings and what they collected is read under Reports → Tax Summary, rather than both crowding a single page.
Core concepts
Chart of accounts
The chart of accounts is the backbone of the ledger. Accounts are organised under account groups, and each group carries an account type - Asset, Liability, Equity, Income or Expense - and a normal balance (debit or credit). Every account inherits its type from its group.
A sensible default chart is created for you when you register, including the system accounts the module needs to post automatically. You can add, rename and reorganise accounts, group them into a tree, and mark accounts active or inactive.
Find it under Financial → Chart of Accounts.
Fiscal years & periods
A fiscal year defines the date range the books cover, divided into monthly accounting periods. The current calendar year is opened for you on registration.
- Only an open fiscal year accepts postings.
- Closing an accounting period prevents any new entry - manual or system-generated - from being dated into it, protecting reported figures.
- Every posting is validated against these locks before it is written.
Find it under Settings → Financial → Fiscal Years.
Journal entries
A journal entry is a balanced set of debit and credit lines dated within an open period. Use it for adjustments, accruals, opening balances and anything the sub-ledgers don't cover.
Each line targets one account and carries either a debit or a credit. The screen shows a running total and blocks saving until debits equal credits. Lines can optionally carry a tax code and a Cost Center, and the whole entry can be keyed in a foreign currency.
Actions
- Post - moves the entry into the ledger. Requires the entry to balance, sit in an open period, and (if submitted) be approved.
- Unpost - returns a manual posted entry to draft so it can be corrected. System-generated entries are unposted from their source document instead.
- Reverse - see Reversing entries.
- Create copy - duplicate an entry as a new draft.
Find it under Financial → Journal Entries.
Recurring journals
A recurring journal is a saved, balanced template that regenerates a draft entry on a schedule - perfect for rent, standing accruals or fixed allocations.
- Set a frequency (weekly, monthly, quarterly, semi-annual or annual), a start date and an optional end date.
- Generate produces a draft journal from the template and advances the next-run date; the draft is reviewed and posted like any other.
- Templates can be paused, resumed and edited; they deactivate automatically past their end date.
Find it under Financial → Recurring Journals.
Reversing entries
Reversing a posted entry creates a new, posted entry that mirrors the original with debits and credits swapped, dated on a reversal date you choose. The original is marked Reversed and the two are linked, so the full audit trail is preserved - nothing is deleted.
Reversal is for manual entries. An entry can't be reversed twice, and the reversal date must fall in an open period. To undo a system entry, reverse its source document instead.
Approval workflow
Documents can be routed for sign-off before they post - journal entries, sales invoices and purchase bills all share the same flow. Submitting a document moves it to Pending; an approver then approves or rejects it.
- A pending or rejected document cannot be posted; a rejection sends it back with a reason.
- An approver cannot approve their own submission - a second person must review it.
- Editing a submitted document returns it to un-submitted, so approval always reflects the current figures.
- Submitting notifies everyone who can approve; the approver's decision notifies the submitter.
Approval rights are granted per document type - e.g. financial.journal.approve, financial.arinvoice.approve and financial.apbill.approve - so you can separate who posts from who approves.
That built-in flow is a single sign-off, always on. When you need approval to depend on the value of the document, or to pass through more than one person, use approval routing below.
Approval routing
Approval routing lets you decide, in configuration rather than in code, which documents need sign-off, when, and from whom. A route is matched against the document's own figures, so a $200 stock adjustment can go straight through while a $200,000 one collects two signatures first.
It spans modules: it governs inventory transactions, purchase orders and sales orders on the transactional side, and leave requests, expense claims, employee loans and overtime on the people side - all through one engine and one screen.
Routing is opt-in. Until you create a route, every document behaves exactly as it did before - nothing is blocked, and no approval controls appear anywhere in the app.
How a route is built
Every route has three parts.
A step names its approver in one of three ways:
A route also has an order and an active switch. When several routes could match, the lowest order number wins - so put your most specific route first. Switching a route off leaves its history intact but stops it matching anything new.
What you can test
Each document type publishes the facts a condition can match on:
Amount (the transaction's total value), TransactionType (Opening Stock, Goods Receipt, Goods Issue, Adjustment) and Warehouse.Amount - the order total including tax.Amount - the order total including tax.Days, LeaveType and Employee.Amount and Employee.Amount and Employee.Hours and Employee.Comparisons are is, is not, is more than, is at least, is less than and is at most. Values that look like numbers are compared as numbers, so Amount is at least 5000 behaves as you would expect; anything else is compared as text.
The lifecycle
Submitting a document asks the engine to match it. If no route matches, the document is marked no approval needed and continues as normal. If one does, it becomes Pending at step 1 and everyone who can clear that step is notified.
A worked example
A distributor wants two signatures on any stock write-down over $5,000 - the inventory controller confirms the count, then finance confirms the hit to the P&L. Anything smaller stays a one-person job.
- Create the route. Settings → Approval Routing → New Route. Name it High-value stock adjustment, applies to Inventory Transaction.
- Add the condition.
Amount· is at least ·5000. - Add the steps. Step 1 Inventory Controller, signed off by anyone who can post and unpost inventory transactions - listed under Inventory Transaction. Step 2 Finance Sign-off, signed off by anyone who can approve or reject journal entries - listed under Also relevant, because posting stock writes to the ledger. Each step tells you how many people can currently clear it. Save.
- A small adjustment. A storekeeper writes off $1,000 of damaged goods. The route doesn't match, so the transaction posts to the ledger immediately - exactly as before.
- A large adjustment. The same storekeeper writes off $10,000. Trying to post it is refused: "High-value stock adjustment requires this document to be approved before posting."
- Submit. They click Submit for approval on the transaction. It shows Pending, with the rail reading 1 Inventory Controller → 2 Finance Sign-off. Everyone with the inventory posting permission gets a notification.
- Step 1. The controller opens the transaction, adds the note "Stock verified against count sheet" and approves. The rail advances; finance is notified. Posting is still blocked.
- Step 2. The accountant approves. The document is now Approved and the submitter is notified.
- Post. The transaction posts, writing its balanced journal to the general ledger. The decision trail - who, when, and what they wrote - stays on the document permanently.
Had the controller rejected it instead, the transaction would show Rejected with the reason, and posting would stay blocked until it was edited and submitted again.
A second example: leave over three days
The same screen, a different shape of approval. Short absences shouldn't need paperwork; longer ones should reach the person's own manager.
- Create the route. Name it Long leave, applies to Leave Request.
- Add the condition.
Days· is more than ·3. - Add one step. Call it Reporting manager, signed off by the requester's manager. Nothing else to choose - the engine reads the reporting line per request.
- Two days off. No route matches; the request is handled as before.
- Nine days off. Sam submits. It routes to Mia, Sam's manager, and only Mia - an HR administrator trying to decide it is told the step belongs to the requester's manager.
- Mia approves. The leave request itself becomes Approved. There is no second action to remember, and the trail records who decided and when.
The rules it enforces
- You cannot skip the route. Never submitting isn't a way around it - if a route matches the document, posting is refused until it has been through.
- You cannot approve your own work. The person who submitted a document can neither approve nor reject it.
- Only the named approver decides. Each step checks that you actually hold its permission at the moment you decide.
- Editing supersedes approval. Change a document with a routing in flight and that routing is cancelled - approvers can never be bound to figures they didn't see.
- Rejection is a full stop, not a delete. A rejected document keeps its reason and stays editable; resubmitting starts a fresh routing.
Where routing bites
loans & overtime
Transactional documents and people's requests differ in one way worth knowing. Approving a purchase order lifts a gate - a human still releases it. Approving a leave request is the decision. The engine handles both; you configure them the same way.
Using it day to day
Two ways in, and you'll use both.
My Approvals - the first item in the sidebar - is one list of everything waiting on your decision, whatever it is: a stock write-down, a purchase order and a colleague's leave request side by side. Each row says which step is yours, who submitted it and when. Approve or reject straight from the list, add a note when the decision needs explaining, or open the document when the summary isn't enough to judge on. The list is never gated by a role: it belongs to whoever the routes actually route to, so a manager with no admin rights still has one. Nothing you submitted yourself ever appears in it.
The document itself carries the same controls under its form, along with the step rail and the full decision trail - useful when you arrived to read the detail rather than to clear a queue.
Approvers are told through the notification bell the moment a step becomes theirs, and the submitter is told the moment it is decided. Every submission and decision is also written to the document's activity feed.
Configure it under Settings → Administration → Approval Routing. It needs the platform.workflow.manage permission, held by Tenant Admin by default.
HR approvals used to be configured separately under HR → Approval Workflows. That screen has been folded into this one, so every approval in the system - a stock write-down and a holiday request alike - is configured in one place.
Import & export
Bulk-load journals from a spreadsheet and export the ledger for analysis.
- Export produces a CSV with one row per line (
EntryRef, Date, Description, Reference, AccountCode, LineDescription, Debit, Credit), honouring your date and status filters. - Import reads the same shape: rows sharing an
EntryRefgroup into one entry, accounts are matched by code, and each group is validated (balanced, at least two lines, open period). Valid entries are created as drafts; invalid groups are reported line-by-line with the reason. Download the template from the import dialog. - Every list in the app also has one-click CSV and Excel export from its toolbar.
General ledger & drill-down
The general ledger shows every posted movement on an account with a running balance. From there you can trace any figure back to where it came from.
Click an account on the trial balance, balance sheet or P&L to open its ledger; click a line's entry number to open the source journal entry (and from there, the originating invoice, bill or receipt).
Find it under Reports → General Ledger.
Multi-currency
Transact in any currency while keeping the ledger in your base currency. A common set of currencies is seeded for you; add more as needed.
- Exchange rates are stored as base-currency units per one unit of the foreign currency, effective by date (e.g.
1 EUR = 1.10 USD). - Keying a journal in a foreign currency captures the currency and rate on the entry; each line stores both the foreign amount and its base equivalent. The ledger, trial balance and statements always read the base amounts.
- The entry form pre-fills the latest rate on record for the chosen currency, and shows a live "posts to the ledger in
" preview.
Find it under Settings → Financial → Currencies & Rates.
Tax codes
Define the tax rates you charge or reclaim, each linked to the GL account the tax posts to and typed as Input (purchases, recoverable) or Output (sales, payable).
- Tag a journal line with a tax code and the system computes the tax on that line's base amount automatically.
- Reports → Tax Summary gives the taxable base and tax by code over any date range - the basis for a return. Setting a code up and reading what it collected are separate screens, so neither gets in the other's way.
Find it under Settings → Financial → Tax Codes; the summary is Reports → Tax Summary.
Accounts receivable
Everything owed to you, from raising an invoice to collecting the cash.
- Customers - the master record, with contact details and running balance.
- Sales invoices - post to receivables and income; convert from a sales order or raise directly.
- Customer receipts - record collections against invoices, including advances.
- Credit notes - reduce a customer's balance for returns or corrections.
- Customer refunds - pay a credit balance back out.
- Post-dated cheques (PDC) - track cheques received but not yet due, from receipt to clearance.
- Statements & aging - customer statements and an AR aging report by bucket.
Accounts payable
The mirror of receivables, for everything you owe.
- Vendors - the supplier master with running balance.
- Vendor bills - post to payables and expense/stock; raise directly or from a purchase order.
- Vendor payments - settle bills by bank, post-dated cheque or company credit card.
- Debit notes - reduce what you owe a vendor.
- Vendor refunds - recover a debit balance.
- Post-dated cheques and AP aging - the payables-side equivalents.
Cash, bank & treasury
A deep treasury layer keeps your cash position accurate and reconciled.
- Bank & cash accounts - each mapped to its own ledger account, with GL-derived balances.
- Bank reconciliation - match your ledger against a statement and clear items with confidence.
- Credit cards - company cards as their own liability accounts, with charges, fees, payments and refunds, and card reconciliation.
- Reconciliation centre - one dashboard for the state of every bank and card account.
- Cash-flow forecast - a forward view built from open receivables, payables and PDCs.
Find it under Financial → Bank & Cash and Credit Cards; the cash-flow forecast is a report.
Fixed assets
Track capital assets from acquisition through depreciation to disposal.
- Asset categories supply the GL accounts (asset cost, accumulated depreciation, depreciation expense) and the default depreciation policy new assets inherit.
- Asset register - each asset's cost, method, accumulated depreciation and net book value; place a draft in service, then depreciate.
- Depreciation runs - a monthly run computes each in-service asset's charge (straight-line or reducing-balance) and posts one balanced journal (Dr Depreciation Expense / Cr Accumulated Depreciation). Runs can be unposted to reverse both the ledger and the asset's schedule.
- Disposal - removes the asset from the books and posts the gain or loss automatically.
Find it under Fixed Assets → Asset Register and Depreciation Runs; categories are set up under Settings → Financial → Asset Categories.
Budgeting
Set budgets by account and period, then compare against actual ledger figures to track variance. Budgets feed the executive dashboard's budget-vs-actual view.
Reports
Because everything posts to one ledger, the core statements are always current:
- Trial balance - every account's debit and credit totals, drillable to the ledger.
- Profit & loss and Balance sheet - grouped financial statements with expand/collapse and drill-down.
- Cash flow and sales/category profitability.
- AR / AP aging and customer statements.
- Tax summaries and dimension analysis.
Statements can be printed from customisable templates, and every list exports to CSV or Excel.
Business intelligence
Beyond the standard statements, a role-based executive dashboard turns the same live data into a cockpit you can read at a glance - no exports, no spreadsheet.
- KPI & chart tiles - revenue, gross profit, cash position, receivables and inventory value, refreshed from the ledger as documents post.
- Trends & breakdowns - revenue vs. expenses over time, top products and categories, and month-on-month movement.
- Budgets - track actual against budget by account, with the variance surfaced right on the dashboard.
- Drill-down - click any headline figure to walk from the number down to the source document behind it.
- Personalised layout - each role sees the widgets that matter to it, and the arrangement is remembered per user.
Find it under the Dashboard, shown on sign-in and scoped to your role.
AI assistant
Ask your business a question in plain English and get the answer back - the figure, the table and the chart - without building a report. The assistant reads your live data and replies in seconds.
- Natural language - “top 10 customers by outstanding balance”, “sales over the last six months”, “which items are below reorder level” - just type the question.
- Answers with evidence - replies come back as clean tables and charts you can read or share, and show where the numbers came from.
- Read-only & scoped - the assistant can only read, never change data, and it is locked to your own company's records.
- No SQL, no setup - there's nothing to configure and no report builder to learn.
Your data stays inside your tenant. The assistant runs against a read-only, tenant-scoped view - it cannot see another company's data or modify yours.
Find it under the assistant launcher in the app header.
Inventory
One source of truth for stock, with a moving weighted-average cost. Every movement writes to a stock ledger and posts the matching journal to the general ledger, so inventory value on the balance sheet always ties out.
- Items - a master per product with its unit of measure, category, brand, tax rate and cost. Item types decide behaviour: an Inventory Item is stock-tracked; a Service (and non-inventory) item never moves stock.
- Warehouses - hold stock independently, each with its own on-hand quantity and average cost per item.
- Stock transactions - goods receipts, goods issues, transfers, adjustments and opening balances. Increases value at the entered cost; issues leave at the current average cost, and the average recomputes on every posting.
- Valuation & ledger - a running stock ledger per item/warehouse and valuation reports, always reconciled to the inventory control account.
Find it under Inventory → Items, Warehouses and Stock Transactions; categories and brands are set up under Settings.
Purchasing
From request to receipt to bill, each step feeding the next.
- Purchase requests - raise, approve or reject a request; approval is the gate that lets it become an order.
- Purchase orders - approve or cancel; an order can reference the approved request it fulfils, so the request tracks how much has been ordered.
- Store receipts - receive against a PO to bring stock in (Dr Inventory / Cr GRNI) and move each line's received quantity.
- Vendor bills - billed straight from a PO or receipt, clearing GRNI and booking input tax; purchase returns reverse a receipt.
- Express purchase - a one-page document whose single Post spins up the whole chain: order → receipt → bill → optional payment. Unpost reverses all of it.
Find it under Purchasing → Purchase Requests, Orders, Store Receipts, Vendor Bills, Returns and Express Purchase.
Sales
Quote to cash, on the same ledger.
- Quotations - sent for the customer to accept or reject, then turned into an order.
- Sales orders - approved, then delivered.
- Deliveries - post stock out (Dr COGS / Cr Inventory). Stock-tracked items only - service lines are delivered and invoiced but never touch stock.
- Invoices, returns & credit notes - bill the customer (Dr AR / Cr Revenue + output tax); sale returns and credit notes reverse against the original.
- Express sale - a one-page document whose single Post spins up order → delivery → invoice → optional receipt, and Unpost reverses the chain.
Find it under Sales → Quotations, Orders, Deliveries, Invoices, Returns and Express Sale.
CRM
Track every relationship from first touch to closed deal, and out into the rest of the platform. A per-tenant module - switch it on from the SuperAdmin activation screen.
- Leads - capture prospects with a source and rating; a rule-based score ranks them, and one click qualifies or converts a lead into an account, a contact and an opportunity.
- Contacts & accounts - the people and companies you sell to; an account can be bridged to a Financial (AR) customer so CRM and accounting share one record.
- Sales pipeline - a drag-and-drop board of opportunities by stage, with weighted forecasting and win/loss. Stages and lead sources are configurable.
- Activities & calendar - calls, meetings, tasks and follow-ups logged against any record, shown on a full month calendar.
- Campaigns & marketing lists - plan campaigns against segmented lists of leads and contacts, with budget vs. actual cost.
- Dashboards & reports - pipeline value, win rate, the lead→won funnel, forecast and lead-source performance.
Industry-aware & integrated. Link a deal to a vehicle (Auto Garage) or a property (Real Estate); when it's won, raise the matching job card or lease - or a sales quotation - straight from the opportunity.
Find it under CRM → Dashboard, Leads, Pipeline, Contacts, Accounts, Activities, Calendar, Campaigns, Marketing Lists and Reports.
HR & Payroll
The whole employee lifecycle, with payroll that posts straight to your accounts.
- People & org structure - employee records inside a department / division / section / designation hierarchy.
- Attendance & leave - shifts and attendance, leave types with balances, and leave/overtime requests that route for approval.
- Payroll - configurable salary components and per-employee assignments; a payroll run generates payslips and posts one balanced journal for wage expense and liabilities.
- Loans, claims & settlement - employee loans with repayment schedules, expense claims, and final settlements on exit.
- Talent - appraisal cycles and reviews, recruitment (job requisitions and candidates), and onboarding templates and checklists.
- Self-service - employees see their own records and requests; managers act on their team's, all governed by the same approval routing as the rest of the platform.
Find it under HR; setup (leave types, shifts, salary components, onboarding templates, approval routing) lives under Settings.
Auto Garage
A workshop vertical that takes a vehicle from job card to invoice on one screen, drawing on the same inventory and accounts. The job card is the spine; each tab is a step, and it tracks every activity on a timeline.
Find it under Auto Garage → Job Cards; the workflow tabs open inline on the card.
Real Estate
A vertical for landlords and property managers, tied to the accounting core.
- Properties & units - organise buildings and the units within them.
- Leases - a lease per unit with its tenant, term and rent.
- Recurring rent - turn leases into rent invoices that settle as receivables against your ledger.
Find it under Real Estate → Properties, Units and Leases.
Industry verticals are activated per tenant, so a company only sees the modules it uses. Whatever the vertical, its documents post through to the same general ledger the Financial module describes.
Attachments, comments & activity
Every record across the platform - journals, invoices, bills, purchase and sales orders, inventory moves, payroll runs, employees, fixed assets - can carry supporting context:
- Attachments - upload receipts and supporting documents (up to 10 MB each) and download them any time.
- Comments - discuss a record with your team inline.
- Activity timeline - a full history of what happened to the record: created, submitted, approved, posted, reversed, commented and attached, newest first.
Notifications
The bell in the header keeps everyone in the loop. You're notified when a record you're involved with is commented on, and approvers are alerted when something needs their sign-off. Notifications deep-link straight to the record, and you can mark them read or dismiss them.
Roles & permissions
Access is governed by fine-grained permissions grouped into roles. The built-in roles cover the common split of duties:
You can also create custom roles and grant exactly the permissions you need - for example, separating who may post a journal from who may approve it. Every action is written to an audit trail.
FAQ
Do I have to post manual journals for everyday transactions?
No. Invoices, bills, receipts, payments and inventory moves post to the ledger automatically. Manual journals are for adjustments and things outside those flows.
Can I change a posted entry?
Not directly. Unpost it (manual entries) to edit, or reverse it to leave an audit trail. System entries are corrected from their source document.
How does a foreign-currency transaction hit the ledger?
The document captures its currency and an exchange rate; amounts are converted to your base currency for the ledger, while the original foreign amounts are kept for reference.
Where do I set who can approve journals?
Grant the financial.journal.approve permission to the relevant role under Administration → Roles.
Ready to see it on your own books?
Spin up a company and post your first entry in minutes - no card required.