If you sell to consumers in other EU countries through your webshop, then above a threshold of €10,000 per year you have to charge the VAT rate of your customer's country — the German rate for the German customer, the French rate for the French one. That used to mean VAT registrations in every country. Since July 2021 there has been the One Stop Shop (OSS) — specifically the Union scheme, which the Dutch tax authority calls the Unieregeling: a single quarterly return with the Dutch tax authority covering all your EU sales. Odoo has built-in support for it — you just have to switch it on.
When does OSS apply to you
The scheme applies to distance sales to consumers in other EU countries (physical products you ship) and to digital services to consumers. The €10,000 threshold is one combined total for all those EU sales per calendar year — not per country. Below it you may keep charging Dutch VAT; above it you are obliged to apply the rate of the country of destination.
B2B supplies to businesses with a VAT number fall outside the scheme: those remain reverse-charged, with the familiar EC Sales List.
Switching on OSS in Odoo
Odoo delivers the whole set-up through a single setting:
- Go to Accounting → Configuration → Settings and switch on EU Intra-community Distance Selling under Taxes.
- Odoo creates a fiscal position for every EU country, with the corresponding VAT rates and the mapping from your Dutch output VAT to the foreign rate.
- Check that the fiscal positions are set to detect automatically based on country — Odoo then picks the right rate itself on every order, based on the customer's delivery address.
For a connected webshop this carries through to the checkout: the delivery address determines the fiscal position, and with it the rate the customer sees and pays.
Tip: Odoo updates the foreign rates with its localisation updates, but the responsibility stays with you. After a rate change in an EU country (these are announced in advance), check that your fiscal positions are still correct — you would rather correct a wrong rate before the return than after it.
The report for your return
You file the OSS return quarterly through Mijn Belastingdienst Zakelijk, the Dutch tax authority's business portal, broken down by country and by rate. That is exactly the breakdown you get out of Odoo: open Accounting → Reporting → Tax Report and choose the OSS view. Per EU country you see the taxable base and the VAT due, ready to copy into the return.
The regular Dutch VAT return still exists alongside it — OSS only replaces the foreign returns, not your domestic one.
Points to watch in practice
- Keeping an eye on the threshold — in the year you grow past the €10,000 mark, your rate changes partway through the year. Better to switch OSS on before you hit the threshold.
- Stock abroad — if you sell through a fulfilment service that holds stock in another EU country, a local VAT obligation arises there that OSS does not cover. Discuss that with your adviser.
- Mixed B2B/B2C — Odoo picks the fiscal position based on country and VAT number. Check that business customers fill in their VAT number, otherwise they wrongly get the consumer rate.
- Reconciliation — payments from the OSS period are reconciled exactly as you are used to; see our article on reconciliation models.
Need a hand?
The set-up takes an afternoon, but the edge cases — the threshold year, foreign stock, refunds — call for someone who knows both Odoo and the scheme. Our Odoo specialists will set it up together with you and your accountant, including a trial return from the tax report.