Odoo Accounting Module
A practical, role-based guide for SME finance teams implementing or using Odoo Accounting in Malaysia — from customer invoicing through to fixed asset tracking.
Customer invoicing & billing
This is the order-to-cash cycle: turning a customer request into a quotation, confirming it into an order, invoicing it, and following up until payment lands. Typically owned by accounts executives/clerks, with the finance manager reviewing and the director approving larger transactions.
1.1 Process flow
- Create a quotation — add the customer, products or services, quantities and prices.
- Send the quotation to the customer for approval (by email or print/PDF).
- Once accepted, confirm the quotation into a sales order.
- Create the customer invoice from the confirmed order.
- Validate and send the invoice to the customer.
- Register the payment when funds are received, and reconcile it against the invoice.
- Follow up on any invoice still unpaid past its due date.
1.2 Key fields to know
| Field | What it means / why it matters |
|---|---|
| Payment terms | Determines the due date shown on the invoice and used in aged receivables (e.g. Immediate, Net 30). |
| Payment reference | The reference customers should quote when paying — helps automatic reconciliation match the right invoice. |
| Journal | The accounting journal the invoice posts to (usually ‘Customer Invoices’). Rarely changed by end users. |
| Tax on lines | The SST/tax code applied per line — covered in detail in Section 4. |
| Status | Draft → Posted → Paid. Only posted invoices affect the books. |
1.3 Following up on payment
Odoo can send automatic payment reminder emails, and the Accounting → Customers → Invoices list can be filtered by ‘Overdue’ to see everything past its due date at a glance.
- Use the Aged Receivables report (Section 6) to review overdue balances by customer, weekly.
- Register partial payments as they come in — don’t wait for the full amount to reconcile.
- A credit note reverses an invoice, in full or in part — use it for returns, discounts, or corrections rather than editing a posted invoice.
Vendor bills & payments
This is the purchase-to-pay cycle, with a control step SMEs frequently skip: 3-way matching, which checks that what you ordered, what you received, and what you’re being billed for all agree before payment goes out. Typically owned by the purchasing officer (PO stage) and accounts clerk (bill and payment stage).
2.1 The three points of matching
| Step | What it means / why it matters |
|---|---|
| 1. Purchase order (PO) | What was ordered — quantities and agreed prices, created by purchasing. |
| 2. Receipt | What was actually received into inventory — confirmed by the warehouse team, may differ from the PO if there’s a shortage or over-delivery. |
| 3. Vendor bill | What the vendor is charging — should be checked against both the PO and the receipt before approval. |
2.2 Process flow
- Purchasing creates and confirms a purchase order.
- Warehouse records the goods receipt against that PO (see Inventory training for this step).
- Accounts creates the vendor bill — Odoo can pre-fill quantities from what was actually received.
- Compare the bill against the PO and receipt; flag and resolve any discrepancy before approving.
- Validate the bill, then schedule or register the payment.
2.3 What to check before approving a bill
- Quantities billed match quantities received, not just quantities ordered.
- Unit prices match the agreed PO price — investigate any variance before paying.
- The correct SST input tax code is applied (Section 4).
- The bill isn’t a duplicate — Odoo will warn on a matching vendor reference number.
Bank reconciliation
Reconciliation matches each line on your bank statement to the corresponding entry in Odoo — confirming that what the bank says happened actually matches what’s recorded in the books. Usually done weekly by the accounts clerk, reviewed monthly by the finance manager.
3.1 Process flow
- Import or sync the bank statement (via bank feed, or manual CSV/OFX import).
- Odoo suggests matches between statement lines and open invoices, bills, or existing journal entries.
- Confirm correct suggestions; manually match the ones Odoo can’t resolve automatically.
- For anything with no matching entry (bank charges, interest, unexplained deposits), create the journal entry directly from the reconciliation screen.
- Validate the reconciliation once every line is matched.
3.2 Key fields to know
| Field | What it means / why it matters |
|---|---|
| Statement line | The raw transaction as it appears on the bank statement — date, amount, description. |
| Suggested match | Odoo’s best guess at the corresponding invoice, bill or entry, based on amount and reference. |
| Write-off | Used for small unreconcilable differences (e.g. bank rounding) — posts the residual to a designated account. |
| Reconciliation model | A saved rule that auto-matches recurring transactions such as bank fees, so they don’t need manual matching each time. |
SST / tax configuration
Malaysia’s Sales and Service Tax (SST) needs to be configured correctly on both sales and purchase flows before go-live — this is typically set up once by the system administrator or implementation partner, but every user entering invoices and bills needs to understand how it applies to their transactions.
4.1 What’s configured, and by whom
- Tax codes for standard-rated Sales Tax and Service Tax, plus any exempt or zero-rated codes relevant to the business — set up centrally, not per transaction.
- Default taxes per product or product category, so the right code applies automatically when that item is added to an invoice or bill.
- Fiscal positions, if the SME deals with both taxable and exempt customers or vendors, to switch tax treatment automatically based on the partner.
4.2 What end users need to check on every transaction
- Confirm the tax code shown on each invoice or bill line is correct for that product/service — don’t assume the default is always right for one-off or unusual items.
- For exempt or zero-rated customers, confirm the correct fiscal position is applied on the customer record.
- Review the tax total on the invoice/bill preview before validating — catching a wrong code here is far easier than correcting it after filing.
| Field | What it means / why it matters |
|---|---|
| Sales Tax | Applied on taxable goods sold — shows on the customer invoice as a separate line. |
| Service Tax | Applied on taxable services rendered — configured separately from Sales Tax. |
| Input tax (purchases) | SST paid to vendors — tracked but generally not reclaimable under Malaysia’s SST regime, unlike GST. |
| Tax report | Accounting → Reporting → Tax Report — summarises tax collected and paid for SST-02 return preparation. |
Multi-currency
For SMEs invoicing regional or overseas customers, Odoo can operate in multiple currencies while keeping your official books in a single base currency (typically MYR). Relevant to anyone raising invoices, bills, or payments in a foreign currency.
5.1 How it works
- Each company has one base/functional currency (MYR) — all reports ultimately convert back to this.
- Additional currencies must be activated before they can be used on invoices, bills or payments.
- Exchange rates update automatically from a configured rate provider, or can be entered manually.
- On payment, any gain or loss from the rate moving between invoice date and payment date posts automatically to a realised exchange gain/loss account.
5.2 What to check when invoicing in a foreign currency
- Confirm the customer or vendor record’s currency is set correctly before the first transaction.
- Check the exchange rate applied on the invoice date is current — review it if the rate provider hasn’t updated recently.
- At payment, verify the realised gain/loss posted looks reasonable given the rate movement — a large unexpected figure usually means a rate or currency mismatch upstream.
Financial reporting
Odoo’s standard financial reports pull directly from posted transactions, so their accuracy depends entirely on the quality of invoicing, bill entry and reconciliation covered in earlier sections. Typically reviewed by the finance manager and director monthly, or more often during implementation.
6.1 The core reports
| Report | What it means / why it matters |
|---|---|
| Profit & Loss (P&L) | Income and expenses over a chosen period — shows whether the business is trading profitably. |
| Balance Sheet | Assets, liabilities and equity as at a specific date — the financial position snapshot. |
| Aged Receivables | Outstanding customer invoices grouped by how overdue they are (current, 30/60/90+ days) — the core tool for chasing collections. |
| Aged Payables | Outstanding vendor bills grouped the same way — used to plan cash outflows and avoid missed payment terms. |
| General Ledger | Every journal entry, by account — the detailed record behind the summary reports. |
6.2 Using the reports well
- Set the correct date range/comparison period before reading any figure — a report run on the wrong period is a common source of confusion.
- Drill down from a report line into the underlying transactions if a figure looks unexpected — every number in Odoo’s reports is clickable back to source entries.
- Review Aged Receivables weekly, not just at month-end, so collection follow-up stays current.
- Reconcile the Balance Sheet’s bank balance against the actual bank reconciliation status before relying on it.
Fixed asset & depreciation tracking
For SMEs with equipment, machinery, vehicles or office fit-outs, Odoo can track each asset’s value and automatically post depreciation over its useful life, rather than relying on a spreadsheet kept outside the accounting system.
7.1 Process flow
- When a qualifying vendor bill is entered (e.g. purchase of machinery), create or confirm the linked fixed asset record.
- Set the asset’s acquisition value, depreciation method, and useful life/duration.
- Odoo generates the depreciation schedule and posts depreciation entries automatically on the set frequency (usually monthly).
- When an asset is sold or scrapped, dispose of it in Odoo to post the remaining book value correctly.
7.2 Key fields to know
| Field | What it means / why it matters |
|---|---|
| Original value | The acquisition cost of the asset, usually pulled from the vendor bill. |
| Depreciation method | How the value reduces over time — straight-line is the most common for SMEs. |
| Duration / useful life | The period over which the asset is depreciated, typically set per asset category and aligned with your accountant’s guidance. |
| Prorata | Whether depreciation for a partial first period is calculated proportionally from the purchase date rather than the full period. |
| Depreciation board | The full schedule of planned entries for the asset, viewable before they post. |
7.3 What to check regularly
- New qualifying purchases are linked to an asset record promptly, not left sitting only as an expense.
- The monthly depreciation run has actually posted — check the Assets list for anything still ‘Draft’ or ‘Running’ with entries overdue.
- Disposals are processed in Odoo at the time an asset is sold or scrapped, so the book value doesn’t linger inaccurately on the Balance Sheet.
Quick reference
A.1 Menu paths at a glance
| Area | Menu path |
|---|---|
| Customer invoicing | Sales → Orders → Quotations / Accounting → Customers → Invoices |
| Vendor bills | Purchase → Orders / Accounting → Vendors → Bills |
| Bank reconciliation | Accounting → Accounting → Bank |
| Tax configuration | Accounting → Configuration → Taxes |
| Tax report (SST) | Accounting → Reporting → Tax Report |
| Currencies | Accounting → Configuration → Currencies |
| Financial reports | Accounting → Reporting |
| Fixed assets | Accounting → Accounting → Assets |
A.2 Who typically trains on what
| Role | Focus areas |
|---|---|
| Accounts executive/clerk | Customer invoicing, vendor bills, bank reconciliation (Sections 1–3) |
| Purchasing officer | Vendor bills — PO and receipt side of 3-way matching (Section 2) |
| Finance manager | All sections, with emphasis on reporting, tax and asset review (Sections 4, 6, 7) |
| Company director | Financial reporting for oversight and approvals (Section 6) |
| System administrator | Tax and currency configuration setup (Sections 4–5) |
For the roles who should be trained on Inventory and Manufacturing modules, see the companion training guides for those areas.
