Module 4 · 4.2
Selling to other EU countries and the OSS scheme
Module 4: VAT, shipping and payments · Reading time: 11 minutes
Learning objective: After this lesson you can explain when you charge the VAT of the customer's country, how you count the € 10,000 threshold, how the Union scheme (One-Stop Shop, OSS) works and how you set up WooCommerce for it.
Key concepts: distance sales, consumer in another EU country, € 10,000 threshold, country of arrival, Union scheme (One-Stop Shop, OSS), quarterly return, rates per country, same final price, woocommerce_adjust_non_base_location_prices, proof of the country, EU SME scheme (EU-KOR)
This lesson explains the rules as they apply on 9 November 2026. It is not legal or tax advice. If you are unsure about your situation, ask a lawyer, your trade association or your accountant.
The problem: which VAT for a customer in Cologne?
Theehuis Example in Utrecht sells a teapot to a private customer in Cologne. Does it charge 21 percent Dutch VAT or 19 percent German VAT? The answer depends on one number: how much you sell in total to consumers in other EU countries. These sales, where you send goods to a private customer in another EU country, are called distance sales. This lesson follows the explanation of the Belastingdienst (Dutch Tax Administration); the EU rule behind it applies in all member states, with the same threshold and the same scheme in Belgium and Germany through their own tax authorities.
The € 10,000 threshold
The Belastingdienst explains it like this:
- You add up all distance sales to private customers in all other EU countries together, excluding VAT, per calendar year. If you also supply digital services to private customers in the EU, you include those too.
- As long as that total is € 10,000 or less, you usually charge Dutch VAT.
- As soon as you go over it, you charge the VAT of the EU country the goods are sent to.
- Only once you have stayed at or below € 10,000 for a full calendar year may you charge Dutch VAT again from the following 1 January.
- You can also choose not to use the threshold: you then charge the VAT of the country of arrival straight away. That choice applies for at least two years.
- If you have a fixed establishment in another EU country, the threshold does not apply.
Watch out for three pitfalls:
- It is one threshold for the whole EU, not per country. € 6,000 to Belgium and € 5,000 to Germany is € 11,000 together: above the threshold.
- Sales in the Netherlands do not count. They simply stay in your Dutch VAT return.
- Sales to businesses with a VAT number do not count: they are not distance sales but intra-Community supplies (lesson 4.1).
Worked example. Last year Theehuis Example sold € 7,000 to private customers outside the Netherlands. This year the counter stands at € 9,800 on 1 October. A Belgian customer orders for € 150 excluding VAT. Total € 9,950: Dutch VAT. A week later a German customer orders for € 120. Total € 10,070: from that moment on the VAT of the country of arrival, for this order German VAT. And next year the shop starts with foreign VAT, because it went over the threshold this year.
The Union scheme (OSS)
Above the threshold you would have to file VAT in every country where your customers are. To avoid that, there is the Union scheme, part of the One-Stop Shop system (OSS). According to the Belastingdienst:
- You register via Mijn Belastingdienst Zakelijk, in good time.
- You file one return per quarter covering all your distance sales in the EU and pay the foreign VAT in one go. The Belastingdienst forwards the return and the money to the other countries.
- If you take part, everything that falls under the scheme must go into it; you may not declare part via OSS and part abroad.
- Your sales in the Netherlands simply stay in your Dutch VAT return.
- It is a choice: you may also register separately in each country and file returns there.
- Within the Union scheme the Dutch invoicing rules apply, and for VAT purposes you do not have to issue an invoice to private customers (lesson 5.6).
Note: it is still German VAT that you declare via OSS in the Netherlands. So the rate is 19 percent, not 21.
A Belgian or German web shop does the same through its own tax authority: OSS is an EU scheme that every member state offers.
EU SME scheme (EU-KOR): small businesses with a total EU turnover of up to € 100,000 can, under certain conditions, get an exemption, also in other EU countries. That is outside the scope of this course; discuss it with your accountant.
VAT per country in WooCommerce
WooCommerce does not automatically know which rate applies in which country. Above the threshold you need a row per country in every tax class. For Theehuis Example, which ships to the Netherlands, Belgium and Germany:
| Class | Country | Rate | Name |
|---|---|---|---|
| Standard | NL | 21 | BTW |
| Standard | BE | 21 | BTW |
| Standard | DE | 19 | MwSt. |
| Reduced rate | NL | 9 | BTW |
| Reduced rate | BE | 6 | BTW |
| Reduced rate | DE | 7 | MwSt. |
Whether loose tea falls under that reduced rate in Belgium and Germany is something you check in the European Commission's TEDB or with your accountant. You can enter rates by hand, or load them into the rate table with a CSV file. There are also extensions and services that keep rates up to date automatically; check that they work for EU countries. Use calculate tax based on the customer shipping address, because the VAT follows the country where the goods arrive.
If you are below the threshold and have not chosen to opt out of it, you only need the NL rows. Do not leave any foreign rates in place, otherwise your shop will charge foreign VAT too early. Keep track of the counter (your bookkeeping or a report per country) and switch the rates on the moment you pass the threshold.
One price for everyone or a price per country
Theehuis Example enters prices including 21 percent: teapot € 29.95. What does a German customer see above the threshold? By default WooCommerce works back to the price without Dutch VAT (€ 24.75) and adds German VAT to that: € 29.45. The German customer pays less, and you keep the same amount per teapot.
If you want the same final price everywhere (€ 29.95, with less VAT and therefore more margin in Germany, or less margin in a country with a higher rate), there is the filter woocommerce_adjust_non_base_location_prices for that. If a developer or a small plugin sets that filter to "false", WooCommerce keeps the price including VAT the same and calculates the VAT out of it using the country's rate. Both approaches are allowed; choose deliberately and tell your accountant, because your margin per country changes.
Proof of the country
You must be able to show where the goods went: the shipping address and the shipping details (track and trace, carrier). WooCommerce stores the address with the order; keep the proof of shipping with your records. Different proof rules apply to digital services for private customers; that is outside the scope of this lesson.
Summary
- You add up distance sales to private customers in other EU countries, excluding VAT, per calendar year: one threshold of € 10,000 for the whole EU.
- Above the threshold you charge the VAT of the country of arrival, from the sale that takes you over it, and the following year as well.
- Through the Union scheme (OSS) you declare that foreign VAT in one quarterly return in your own country; for a shop in the Netherlands that is via Mijn Belastingdienst Zakelijk with the Belastingdienst.
- In WooCommerce: rates per country per tax class, calculated on the shipping address; choose deliberately between the same final price and the same net price.
- Keep proof of the country; discuss the EU SME scheme (EU-KOR) and doubtful cases with your accountant.
Quiz
Exercise
Exercise A4.2: Which VAT do you charge? (case). Read the case and fill in the three fields. The program compares your answers with a fixed key; nothing is looked up.
Theehuis Example in Utrecht sells teapots (standard VAT rate) to private customers. From 1 January to 30 September 2026 inclusive it sold € 6,200 to private customers in Belgium and € 3,500 to private customers in Germany (amounts excluding VAT). It does not sell digital services. Last year it stayed below € 10,000. On 3 October a private customer in Cologne orders a teapot of € 400 excluding VAT. It has no fixed establishment outside the Netherlands and has not chosen to opt out of the threshold.
- Country: which country's VAT do you charge for this order? (Netherlands / Germany / Belgium)
- Rate: which percentage?
- Return: how do you declare this VAT? (Dutch VAT return / OSS (Union scheme) / only a German return / no return)
Green if all three are correct, orange for two, red for fewer. For a wrong field you get a hint.
Further reading
- Distance sales, such as e-commerce, within the EU (Belastingdienst, Dutch): https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/zakelijk/btw/zakendoen_met_het_buitenland/afstandsverkopen-zoals-e-commerce-en-diensten-voor-particulieren-in-andere-eu-landen/afstandsverkopen-zoals-e-commerce-binnen-de-eu/
- Turnover that counts for the EU SME scheme (EU-KOR) (Belastingdienst, Dutch): https://www.belastingdienst.nl/wps/wcm/connect/nl/btw/content/omzet-die-meetelt-voor-de-eu-kor
- One-Stop Shop (OSS) of the European Commission: https://vat-one-stop-shop.ec.europa.eu/index_en
- VAT rates of all EU countries, TEDB (European Commission): https://ec.europa.eu/taxation_customs/tedb/
- Setting up taxes in WooCommerce (woocommerce.com): https://woocommerce.com/document/setting-up-taxes-in-woocommerce/
