
Hong Kong is known for its simple, low-tax regime — no VAT, no GST, no sales tax. But that doesn't mean Hong Kong businesses can take a one-size-fits-all approach to tax handling.
The moment your business involves cross-border trade, things get complicated. Selling to mainland China clients means considering PRC VAT. Exporting to the EU requires dealing with VAT Reverse Charge. Importing from overseas may involve customs duties and import taxes. Even for local transactions, different revenue types need to be categorised into separate accounts for Profits Tax filing.
Odoo's fiscal positions solve exactly this problem. They automatically map default taxes and accounts to the correct alternatives based on customer location, tax status, or manual assignment. This guide walks through how to configure and use fiscal positions, with practical examples for Hong Kong businesses.
Many Hong Kong SME owners ask: "Hong Kong has no VAT — do I even need fiscal positions?" The answer: if you do any cross-border business, absolutely yes.
| Tax | Rate | Notes |
|---|---|---|
| Profits Tax | First HK$2M: 8.25%, remainder: 16.5% | Only on Hong Kong-sourced profits |
| Salaries Tax | Progressive, max 15% | Not relevant to fiscal positions |
| VAT/GST | N/A | Hong Kong imposes no consumption tax |
| Import Duty | Most goods duty-free | Only on alcohol, tobacco, hydrocarbon oils, methanol |
| Transaction Type | Tax Treatment | Account Classification |
|---|---|---|
| Local sale (B2B/B2C) | No tax (0%) | Local sales revenue |
| Export to mainland China | No tax (HK side); buyer handles PRC VAT | Export revenue — China |
| Export to EU B2B | No tax (Reverse Charge — buyer reports VAT) | Export revenue — EU |
| Export to US | No tax (HK side) | Export revenue — Other regions |
| Import from mainland China | Most goods duty-free; record import costs | Import costs |
| Import from EU | May involve local VAT (record if refundable) | Import costs — EU |
The key point: while Hong Kong charges no consumption tax, correctly classifying local versus export revenue is critical for Profits Tax filing — especially for offshore income exemption claims.
Fiscal positions are rule sets in Odoo's accounting module that automatically replace default taxes and accounts on products when specific conditions are met.
How they work:
Practical examples for Hong Kong businesses:
| Customer Type | Default Tax | Fiscal Position | Applied Tax | Account |
|---|---|---|---|---|
| Local customer | No tax | None (use default) | No tax | Local sales revenue |
| Mainland China B2B | No tax | China Export | No tax | Export revenue — China |
| EU business customer | No tax | EU B2B Export | No tax | Export revenue — EU |
| Other overseas customer | No tax | Overseas Export | No tax | Export revenue — Other |
Notice that in the Hong Kong context, fiscal positions are primarily used for account classification, not tax rate substitution. Hong Kong doesn't charge consumption tax, but you still need to separate revenue by region for:
Before configuring fiscal positions, ensure your chart of accounts has sufficient classifications.
Recommended revenue account structure:
| Account Code | Account Name | Purpose |
|---|---|---|
| 4000 | Local Sales Revenue | Hong Kong domestic transactions |
| 4100 | Export Revenue — Mainland China | Sales to mainland China |
| 4200 | Export Revenue — EU | Sales to European Union |
| 4300 | Export Revenue — Other Regions | Sales to all other overseas markets |
| 4400 | Service Revenue — Local | Local services |
| 4500 | Service Revenue — Overseas | Cross-border services |
Go to Accounting → Configuration → Fiscal Positions and create a position for each transaction type.
Example: Mainland China Export
Example: EU B2B Export
While most Hong Kong transactions involve no tax, you may need tax mappings for:
Once configured, Odoo offers three methods to apply fiscal positions to transactions.
The most efficient approach — the system determines the correct position based on customer data.
Setup steps:
Recommended automatic detection settings for Hong Kong businesses:
| Fiscal Position | Detection Criteria |
|---|---|
| Mainland China Export | Country = China |
| EU B2B Export | Country Group = EU + VAT Required |
| Overseas Export | Country Group = Non-HK, Non-China, Non-EU |
Detection priority matters: Odoo tries to match fiscal positions in the order they appear in the list. More specific conditions should come first. For example, "Mainland China Export" should appear before "Overseas Export" — otherwise mainland customers would be incorrectly matched to the generic overseas position.
Assign a default fiscal position to specific customers or vendors.
Steps:
Best suited for:
Override the fiscal position directly on individual invoices or bills.
Steps:
Useful for one-off special transactions — for example, a local customer requesting direct shipment to an overseas destination.
Background: A Hong Kong trading company sources products from mainland China and sells to Europe and Southeast Asia.
Fiscal position setup:
Results:
Background: A Hong Kong IT consulting firm serves both local and overseas clients.
Fiscal position setup:
Results:
Background: A Hong Kong e-commerce seller operates locally and sells to mainland China via cross-border platforms.
Fiscal position setup:
Results:
When creating invoices or bills, always add the customer or vendor before adding product lines. This ensures the correct fiscal position is applied from the start and all subsequent taxes and accounts are calculated correctly.
Use automatic detection wherever possible. Manual selection is error-prone, especially at high transaction volumes.
Tax regulations change. Review your fiscal position configurations at least annually to ensure:
Create sample invoices with test customers from different regions and verify:
Hong Kong's offshore income exemption claim has strict requirements. Fiscal position account classification is only the first step — actual tax treatment should be guided by a qualified tax advisor.
For Hong Kong businesses, the core value of Odoo fiscal positions is not tax rate substitution (since Hong Kong charges no consumption tax) but automated revenue and expense classification. Key takeaways:
Properly configured fiscal positions mean your books are organised by region and transaction type from day one — dramatically reducing year-end audit and tax filing workload.

Zoo AI is a certified Odoo partner in Hong Kong, delivering expert ERP implementation and AI automation for SMEs. Get in touch to learn more.