ChannelEngine: how is VAT applied to EU ecommerce orders?
About this article
This article explains how VAT is typically applied to ecommerce orders based on where your buyer is located and whether they are a consumer or a business, and how to configure VAT calculation on ChannelEngine.
Table of contents
The OSS scheme and upcoming EU changes
How this works on ChannelEngine
- Set up VAT calculation
- See the VAT ChannelEngine calculated
- Custom VAT rate exceptions
- What ChannelEngine does not calculate for you
Overview
The VAT rate and treatment you apply comes down to two questions: where is your buyer, and are they a consumer or a business? The table below gives a quick reference before each scenario is explained in detail.
| Sale | Type | VAT | Notes |
| National | B2C | Local rate | — |
| National | B2B | No VAT / local rate | Reverse charge |
| EU cross-border | B2C | Local or foreign rate | Based on threshold |
| EU cross-border | B2B | 0% VAT | Intra-community supply |
| International | B2C | 0% VAT | — |
| International | B2B | 0% VAT | — |
One rule applies throughout: VAT on shipping costs always follows the same rate as the goods in the order. If an order mixes goods at different VAT rates, the shipping VAT is split proportionally across those rates.
National sales
B2C (business to consumer)
When goods are shipped within one country - from a warehouse to a buyer in that same country - you charge that country's local VAT rate. The buyer does not declare anything themselves. For example, goods dispatched from a Dutch warehouse to a Dutch consumer are charged the Dutch standard rate of 21%.
B2B (business to business)
When goods are shipped within one country to another business, you typically charge no VAT, and the buyer declares it instead. This is known as the VAT reverse charge (Dutch: BTW verlegd). For example, goods dispatched from a Dutch warehouse to a Dutch business are not charged VAT.
Both seller and buyer need a valid VAT number for this. The invoice should not show 0% VAT, it should state that VAT is reverse-charged instead. This distinction matters because 0% VAT and reverse-charged VAT are declared differently on a VAT return: reverse charge tells the tax authority that the buyer, not you, is responsible for declaring and paying VAT on the purchase.
EU cross-border sales
B2C (business to consumer)
When goods are dispatched to a consumer in a different EU country than where they are shipped from, you have two options for which VAT rate to charge:
- The dispatch country's rate - for example, goods dispatched from the Netherlands to a German consumer could be charged the Dutch rate of 21%.
- The buyer's country rate - for example, that same sale would use the German rate of 19%. This requires a VAT number for the buyer's country.
B2B (business to business)
When goods are dispatched to a business in a different EU country, the sale is usually VAT-free for you, and the buyer calculates and declares their own local VAT. This is called an intra-community supply. For example, goods dispatched from the Netherlands to a German business are charged 0% VAT. Both parties need a valid VAT number for this treatment to apply.
International sales
For sales to buyers outside the EU, whether consumer or business, you generally charge 0% VAT, since the sale falls outside EU VAT scope.
The reverse direction works differently: if you sell goods from outside the EU to an EU consumer, import VAT becomes due when the goods enter the EU. For consignments worth up to €150, this is usually handled through the Import One Stop Shop (IOSS), either by you or by the marketplace you sell through, if that marketplace is registered as the deemed supplier for the transaction.
The OSS scheme and upcoming EU changes
Since 1 July 2021, EU ecommerce sellers can use the One Stop Shop (OSS) to declare VAT on cross-border B2C sales to all EU countries in a single return, instead of registering for VAT in every country they sell to.
For certain sales, including low-value imports and goods held in EU fulfillment centers by non-EU sellers, the marketplace itself is the deemed supplier: it charges and remits VAT to the customer directly, and you do not charge VAT on that same order. Your invoice or order record should reflect that VAT was handled by the marketplace rather than by you, so check each marketplace's seller terms to confirm which of your order types this applies to.
If you are approaching the €10,000 EU-wide distance-selling threshold, registering for OSS ahead of time avoids a scramble once you cross it.
The EU is currently rolling out a broader reform package called VAT in the Digital Age (ViDA), which will affect ecommerce sellers gradually between 2027 and 2030. Key milestones to be aware of:
- 2027: minor clarifications to OSS and IOSS rules, including extending OSS to certain B2C energy supplies.
- 2028: expansion of "deemed supplier" rules - marketplaces take on more VAT responsibility for goods sold through their platform - plus a Single VAT Registration scheme that further reduces the need to register for VAT in multiple EU countries.
- 2030: mandatory digital reporting and e-invoicing requirements for cross-border B2B transactions.
None of this requires action from you right now, but it is worth monitoring if you sell cross-border within the EU, since your invoicing and registration requirements may simplify over the next few years.
How this works on ChannelEngine
The sections above cover general VAT theory. Below is what it looks like inside ChannelEngine.
Set up VAT calculation
ChannelEngine can calculate VAT on incoming orders automatically, based on your VAT number(s) and a fixed list of country VAT rates it maintains. To turn this on:
- Go to Settings > VAT rate settings.
- Click Edit (pencil icon) next to the country you want to enable.
- Enter your VAT number in the VAT number field. ChannelEngine validates it against VIES (the EU's VAT number database).
- Toggle Enable VAT rule on.
- Click Save.
ChannelEngine only calculates VAT on new orders received after you enable the rule. Existing orders for that country are not recalculated.
For more details on setting up your VAT settings on ChannelEngine, check out ChannelEngine: VAT settings.
See the VAT ChannelEngine calculated
On the Order details page, click Show/Hide VAT and commission to toggle prices including VAT on and off.
Each order also has a VAT_CALCULATION_METHOD_KEY field showing how VAT was determined:
| Value | What it means |
FROM_PRICE_INCL |
Calculated using the marketplace's VAT-inclusive unit price, combined with the VAT rates you have configured in VAT rate settings. |
FROM_PRICE_EXCL |
Calculated using the marketplace's VAT-exclusive unit price, combined with the VAT rates you have configured in VAT rate settings. |
FROM_VAT_RATE |
Calculated using the VAT rate or VAT-inclusive price the marketplace itself provides, together with the VAT amount the marketplace supplies (e.g., Amazon's VAT Calculation Service). |
NO_CALCULATION |
ChannelEngine does not calculate anything and uses the exact VAT amount the marketplace provides. This applies in North America, where marketplaces are legally responsible for calculating, collecting, and remitting tax themselves. |
NO_CALCULATION behaves slightly differently: it derives the VAT rate from the VAT-inclusive price and total VAT amount instead. If this applies to you, verify the calculated VAT rate matches your expectations rather than assuming the default behavior above.
Custom VAT rate exceptions
Some products do not follow your country's standard rate. For example, a reduced-rate category in one of your markets. For these, set up a custom rate:
- Go to Settings, VAT rate settings, Custom VAT.
- Click Add and give the rate a name.
- Enter the rate as a number, without the % sign (e.g., 10).
- Select the country or countries it applies to.
- Select the products it applies to, using filters or manual search.
- Click Save.
You cannot apply two different custom rates to the same product in the same country.
What ChannelEngine does not calculate for you
ChannelEngine only sees the data your connected channels send it, so there are a few things that it cannot do on your behalf:
- It does not track whether you have crossed the €10,000 EU-wide distance-selling threshold across all your channels combined. You need to monitor your total sales yourself.
- It cannot account for VAT obligations elsewhere in your supply chain, such as complex cross-border scenarios involving third-party or marketplace fulfillment.
- Its automatic calculation is based on the order's delivery country matched against your configured VAT numbers, and it does not separately check which stock location an order line was dispatched from. If you fulfill orders from more than one country, verify the VAT treatment yourself for orders shipped from a warehouse that is not in your main country.
If you need precise compliance, use your accounting software or tax advisor to verify VAT on orders with complex fulfillment scenarios. For details on how ChannelEngine generates VAT invoices automatically, see ChannelEngine: automated VAT invoices (new orders) in the Help Center.
Summary
The rate and treatment you apply come down to two questions: where is your buyer, and are they a consumer or a business? Once you know the answer, match it against the overview table above. A few things to keep in mind going forward:
- Keep valid VAT numbers on file for any B2B reverse-charge or intra-community sales.
- Track your EU-wide distance-selling total against the €10,000 threshold yourself. ChannelEngine does not monitor this across your channels.
- Register for OSS if you sell B2C across multiple EU countries to keep your VAT reporting in one place.
- Add your VAT numbers at Settings, VAT rate settings so that ChannelEngine can calculate VAT on your incoming orders automatically.
- Talk to your accountant or tax advisor before changing how you charge or report VAT. This article is a starting point, not a substitute for tailored advice.
Comments
0 comments
Article is closed for comments.