Accounting and Invoicing: Journals, Taxes and Posting
What to know
Odoo Accounting starts with a chart of accounts (installed per company and country template) and journals: sales, purchase, bank, cash and miscellaneous. Every accounting document - customer invoice, vendor bill, credit note, journal entry - is created in draft and must be posted to affect the ledger and receive a sequence number from its journal. Posted entries cannot be deleted; you reset to draft or reverse them.
Invoicing concepts: customer invoices vs vendor bills, credit notes, payment terms computing due dates, fiscal positions that remap taxes and accounts for a customer or country, and taxes with Affect Base and tax grids for reporting. Taxes can be percentage or fixed, and price-included or price-excluded. Multi-currency invoices generate exchange differences on payment. Payments are registered against invoices and reconciled; bank reconciliation matches statements to entries. Analytic accounts/distributions tag costs and revenues. Lock dates (journal lock, tax lock, fiscal year lock) prevent back-dating entries after closing.
Traps
- You cannot delete a posted entry; reset to draft (if no lock date) or reverse it.
- A fiscal position changes taxes only when applied on the partner or manually on the document - it is not automatic for all customers.
- Price-included taxes change the untaxed base, not just the total.
- A lock date blocks editing, including on entries created by other apps.
- Journal type determines the accounts offered; a bank payment cannot be booked in the sales journal.
Rule of thumb
Check base first, then tax. A 21% price-excluded tax on 100 gives 100 base + 21 tax = 121; a 21% price-included tax on a 121 total gives 100 base + 21 tax.