Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/odoo/documentation/llms.txt

Use this file to discover all available pages before exploring further.

Odoo Accounting is a full-featured accounting solution built around the double-entry bookkeeping standard. Every financial transaction — customer invoices, vendor bills, point-of-sale orders, expense reports, inventory valuations — automatically generates the underlying journal entries, keeping your books accurate without manual data entry. A lighter Odoo Invoicing app is also available for businesses that only need to create invoices, manage payments, and handle vendor bills, without the full accounting feature set.

Get Started

Basic concepts of accounting and initial setup of your chart of accounts, fiscal year, and opening balances.

Taxes

Configure taxes, fiscal positions, and country-specific tax integrations.

Customer Invoices

Create and send customer invoices, configure payment terms, and set up electronic invoicing.

Vendor Bills

Manage vendor bills, fixed assets, and invoice digitization via OCR.

Payments

Process payments online, by check, or in batches, and follow up on outstanding invoices.

Bank & Cash

Bank synchronization, reconciliation rules, and cash register management.

Reporting

Financial statements, tax returns, analytic accounting, and budget reports.

Core Accounting Concepts

Double-Entry Bookkeeping

Odoo uses the double-entry bookkeeping system for all accounting transactions. Every entry requires a corresponding and opposite counterpart in a different account — one account is debited and another is credited — so the accounts always balance. Odoo creates these journal entries automatically for every transaction type in the system.
Every accounting entry in Odoo follows the double-entry principle: each transaction debits one account and credits another for the same amount, keeping the books balanced.

Accrual and Cash Basis

Both accrual basis and cash basis accounting are supported. Accrual basis records income and expense when the transaction occurs; cash basis records them when the payment is actually received or made. You can configure the default accounting method and define specific cash basis tax rules per tax.

Chart of Accounts

Every company has its own chart of accounts. When operating multiple companies or branches in the same database, accounts can be shared between entities for consolidation reporting purposes. Odoo ships with localized chart-of-accounts templates for over 100 countries, which can be applied when installing the relevant fiscal localization package.

Multi-Company and Branch Management

Multiple companies can be managed within a single Odoo database. Each company has its own chart of accounts, while accounts can be shared for consolidation reporting. Users can view records and reports from multiple companies simultaneously, but can only post accounting entries in one company at a time. Parent companies and their branches operate under shared accounting and reporting rules:
  • The parent company’s chart of accounts, main currency, and taxes apply to all branches.
  • Each branch can maintain its own dedicated journals and related records.
  • The parent company controls the fiscal period; its lock and closing dates apply across all branches (though branches may set earlier lock dates).
  • The parent company can view all reports, invoices, and bills from its branches; each branch can only view its own data.
The Fiscal Localization package is set on the parent company and applies to all its branches. Adding a branch enables multi-company functions — see Odoo’s pricing page for licensing implications.

VAT and Tax Returns for Branches

Each company and branch must be configured with its own legal information, including a VAT number where applicable. Depending on the organizational structure, branches may share the parent company’s VAT number or have their own, resulting in either a combined or separate VAT return. This flexible setup allows users to generate individual reports and tax returns for each entity when needed.

Multi-Currency Environment

Odoo supports a multi-currency environment with automated exchange rates to simplify international transactions. Every transaction is recorded in the company’s default currency. For foreign-currency transactions, Odoo stores both the company-currency value and the transaction-currency value, and automatically generates currency gain and loss journal entries after reconciliation.

Customer Invoices and Vendor Bills

Accounts Receivable and Payable

By default, Odoo designates one account for accounts receivable (customer invoices) and another for accounts payable (vendor bills). Because transactions are linked to contacts, you can generate per-customer or per-vendor reports at any time. The Partner Ledger report — available at Accounting → Reporting → Partner Ledger — shows the running balance for each customer and supplier.

Sharing Invoices with External Accountants

Odoo provides three ways to give an external accountant access to your invoices and bills:
Add the accountant as a new user in your database and assign the Administrator role in the Accounting section of their access rights. Also enable Bank account validation as needed.Adding an accountant user to an Odoo Online database is free if they have an Odoo account registered under the same email address as the company user record. However, Odoo.sh and On-premise deployments may involve extra charges for each additional user — refer to Odoo’s pricing page for details.
Navigate to Accounting → Configuration → Journals, open the relevant journal, and enter one or more email addresses in the Send Copy To field on the Advanced Settings tab. Separate multiple addresses with ; (no spaces). Records are sent automatically in XML format.
Navigate to Accounting → Customers → Invoices (or Vendors → Bills), select the records to include, then click the Print menu and choose Export ZIP. The archive can be sent directly to your accountant.

Bank Synchronization and Reconciliation

The bank synchronization system connects directly with banking institutions to automatically import all transactions into Odoo — no manual statement uploads required. Once transactions are imported, Odoo’s reconciliation engine matches bank lines against outstanding invoices, bills, and payments using configurable matching rules.
Payment providers (such as Stripe or PayPal) can also be added as bank accounts, but this is a separate process from configuring them as online payment providers. Bank accounts are reconciled in Accounting; payment providers handle customer-facing checkout flows.

Inventory Valuation

Odoo supports both periodic (manual) and perpetual (automated) inventory valuation, integrated directly with the Accounting app. The available costing methods are:
  • Standard Price — a fixed cost defined on the product.
  • Average Cost (AVCO) — the running weighted average of all stock-in costs.
  • First In First Out (FIFO) — the cost of the oldest stock-in lots is used first.

Retained Earnings

Odoo calculates current year earnings in real time. No year-end journal entry or profit-and-loss rollover is required — the profit and loss balance is automatically reflected on the balance sheet report at all times.

Accounting Firms Mode

For accounting practices managing multiple clients, the Accounting Firms mode can be enabled at Accounting → Configuration → Settings. When active:
  • Document sequences become editable on all records.
  • A Total (tax incl.) field appears on invoice encoding forms to speed up data entry.
  • Invoice Date and Bill Date are pre-filled when encoding a new transaction.
  • A Quick encoding shortcut is available for customer invoices and vendor bills.

Financial Reports

Odoo provides a comprehensive set of real-time financial reports, updated automatically as transactions are posted. All reports are accessible from the Accounting → Reporting menu.
ReportDescription
Balance SheetAssets, liabilities, and equity at a point in time
Profit and LossRevenue and expenses over a period
Cash Flow StatementCash inflows and outflows
Executive SummaryKey performance indicators at a glance
Tax ReturnComputed tax obligation for a fiscal period
EC Sales ListEU cross-border sales listing

Tax Return

The Tax Return report (available at Accounting → Reporting → Tax Return) aggregates all accounting transactions for a selected tax period and calculates the tax obligation automatically. Depending on the active fiscal localization, an XML version of the tax report can be generated and uploaded directly to the relevant tax authority’s platform.
Use Odoo’s report engine to create and customize your own reports. Navigate to Accounting → Reporting and click Customize on any existing report to get started.

International Standards and Localization

Odoo Accounting supports over 100 countries through standardized features and country-specific fiscal localization packages. Each localization package provides a pre-configured chart of accounts, taxes, and other legally required configurations for that jurisdiction. Install the localization package for your country during initial setup to comply with local accounting regulations.

Build docs developers (and LLMs) love