
Businesses that sell to customers in different countries or deal with both individual consumers and registered businesses face a common challenge: applying the correct tax rates.
A 21% VAT might apply to local sales, but what about exports to EU member states? What about sales to VAT-registered businesses versus consumers? Manually tracking and applying these different rates leads to errors and compliance risks.
Odoo's fiscal positions solve this problem. They automatically map default tax rates and accounts to the correct ones based on customer location, VAT status, or manual assignment. In this guide, you'll learn how to configure and use fiscal positions to handle complex tax scenarios with confidence.
Fiscal positions are sets of rules that automatically replace default taxes and accounts with alternatives based on specific conditions.
How they work:
Common use cases:
| Scenario | Default Tax | Fiscal Position | Applied Tax |
|---|---|---|---|
| Local B2C sale | 21% VAT | None | 21% VAT |
| EU B2B export | 21% VAT | Intra-Community | 0% EU |
| Non-EU export | 21% VAT | Extra-EU | 0% Export |
| Tax-exempt customer | 21% VAT | Tax Exempt | 0% |
Fiscal positions consist of two mapping types: tax mapping and account mapping.
Tax mapping defines which taxes replace the defaults when the fiscal position applies.
To view tax mappings:
For example, a 0% EU export tax might:
Account mapping works the same way but for general ledger accounts.
To configure account mappings:
This ensures revenue and expense accounts are correctly categorized for different transaction types.
The Legal Notes field at the bottom of a fiscal position form allows you to add text that automatically appears on invoices using that position. Use this for required legal disclaimers or tax exemption statements.
Odoo offers three methods for applying fiscal positions, from automatic to fully manual.
The Detect Automatically feature assigns fiscal positions based on configurable rules.
Configuration options:
| Setting | What It Does |
|---|---|
| VAT Required | Only applies if the partner has a valid VAT number |
| Country Group | Applies to partners in specified country groups (e.g., EU) |
| Country | Applies to partners in a specific country |
| Zip Range | Applies to partners within a postal code range |
To configure automatic detection:
You can assign a default fiscal position to specific customers or vendors.
Steps:
All future transactions with this partner will use the assigned fiscal position unless overridden.
For specific transactions that need different handling, you can override the fiscal position directly on the invoice or bill.
Steps:
This change only affects the current document—it does not alter the partner's default settings.
When creating invoices or bills, add the customer or vendor before adding product lines. This ensures the correct fiscal position is applied from the start, and product taxes are calculated correctly.
Correct order:
When viewing a fiscal position, click the Taxes smart button to see all tax rates associated with it. This provides a quick overview without checking each tax individually.
Odoo's fiscal localization packages include pre-configured fiscal positions for common scenarios. For example, the Belgian localization includes:
Review these before creating custom positions—the one you need may already exist.
Create test invoices with partners from different locations and VAT statuses. Verify that:
Fiscal positions automate tax compliance by mapping default taxes and accounts to alternatives based on partner characteristics. Key points:
Configure your fiscal positions once, and Odoo handles the complexity for every invoice and bill going forward.

Let's discuss how ERP and AI automation can help your business grow.