Tax Groups and VAT Reporting in Odoo#
Accurate VAT filing requires organizing taxes into groups that map to the lines on your country's VAT return. Odoo's tax groups consolidate related taxes and generate the period report automatically.
Tax Groups vs. Tax Types#
- Tax Type: whether the tax is applied on Sale, Purchase, or both
- Tax Group: a label that groups taxes of the same nature for reporting
Example: your country has 20% Standard VAT and 5% Reduced VAT. These are separate taxes but both belong to the "Output VAT" group for the VAT return.
Creating Tax Groups#
Accounting → Configuration → Tax Groups → New:
- Standard Output VAT (20%): groups all 20% sales taxes
- Reduced Output VAT (5%): groups all 5% sales taxes
- Zero-Rated Output: groups zero-rate sales taxes
- Exempt Output: groups exempt transactions
- Input VAT (Goods): groups VAT on purchased goods
- Input VAT (Services): groups VAT on purchased services
- Non-Deductible Input: groups VAT that cannot be reclaimed
Assigning Taxes to Groups#
Accounting → Configuration → Taxes → [Tax]:
- Tax Group: select the appropriate group
Every tax must belong to exactly one group for clean reporting.
Tax Report Configuration#
Accounting → Configuration → Tax Report → [Country]:
- Each line on the VAT return maps to one or more tax groups
- Line 1 (Standard Rated Sales): sum of Standard Output VAT group transactions
- Line 2 (Reduced Rate Sales): sum of Reduced Output VAT group
- Line X (Total Output Tax): sum of all output tax groups
- Line Y (Total Input Tax): sum of all input tax groups
- Line Z (Net VAT Payable): Line X − Line Y
Generating the VAT Return#
Accounting → Reporting → Tax Report:
- Select period (quarter or month depending on your filing frequency)
- Odoo sums all tax postings by group for the period
- Review the report → verify against manual checks
- Export or file directly (if your country's e-filing connector is installed)
Tax Report Reconciliation#
Before filing, verify:
- Output VAT on the tax report = VAT collected per the GL account
- Input VAT on the tax report = VAT recoverable per the GL account
- Any discrepancy: search for transactions missing tax codes or posted to wrong accounts
Most discrepancies come from manual journal entries without tax - use the Audit function to find them.

