Appearance
Understand Tax & Duty Requirements for a B2C Marketplace (Merchant of Record)
Selling internationally is one of the biggest growth levers for a marketplace. It is also one of the most misunderstood areas of compliance. Before opening your platform to cross-border transactions, you need to understand three things: what types of taxes and duties apply, who is responsible for collecting and reporting them, and how to configure your technical stack to handle them correctly.
1. The Different Types to Consider
1a. Consumption Tax (VAT, GST, Sales Tax)
A consumption tax is imposed by the destination country's government on the purchase of goods and services. It is paid by the end consumer and collected by the seller. The concept is the same everywhere, the name changes by geography:
- VAT (Value Added Tax): Europe and UK, rates typically 15–25% depending on the country
- GST (Goods and Services Tax): Australia, Canada, New Zealand, flat rate (10% in Australia)
- Sales tax: USA, set at state level, typically 5–10%
Registration thresholds vary significantly depending on whether you are a domestic or foreign seller:
| Region | Tax type | Rate | Threshold for domestic sellers | Threshold for foreign sellers | Registration mechanism |
|---|---|---|---|---|---|
| EU | VAT | 15–25% by country | €10,000 cross-border B2C, then OSS | No threshold, register from first sale | OSS (orders >€150 or intra-EU stock), IOSS (orders ≤€150 shipped from outside EU) |
| UK | VAT | 20% | £90,000/year | No threshold, register from first sale | UK VAT registration via HMRC |
| USA | Sales tax | 5–10% by state | $100,000/state (economic nexus) | Same as domestic | Per-state registration |
| Australia | GST | 10% | AUD 75,000/year | Same as domestic | ABN + GST registration |
Two points worth noting. First, the UK has no threshold for foreign sellers: a single sale to a UK customer technically triggers the VAT registration obligation. Second, in the EU, the €10,000 threshold only applies to EU-based sellers. Non-EU marketplaces must register from the first sale.
For non-EU sellers shipping goods into the EU, there are two distinct registration mechanisms depending on order value:
- OSS (One Stop Shop): covers orders above €150, or intra-EU sales where stock is already held inside the EU. One registration in a single EU member state covers all 27 countries. Returns filed quarterly.
- IOSS (Import One Stop Shop): covers orders below €150 shipped from outside the EU. VAT is collected at checkout and declared via a single monthly return. Without IOSS, import VAT is collected at the border, creating surprise fees for customers and delivery delays. If you sell both below and above €150, you need both registrations. The threshold applies per consignment, not per product: two €80 items in one order equals a €160 consignment, which falls outside IOSS scope.
1b. Customs Duty
Customs duty is a tariff imposed by the importing country's government on goods crossing a border. It is separate from consumption tax and serves to regulate trade and protect domestic industries. The rate varies by product category (defined by the product's HS code), country of origin of the goods, and any trade agreements in place between the two countries involved.
When it comes to who pays customs duty, there are 11 official Incoterms defined by the International Chamber of Commerce, but only two are relevant in ecommerce:
- DDU (Delivered Duty Unpaid): duties are paid by the customer upon delivery. No upfront cost for the seller, but creates surprise fees at the door. Research shows ~75% of customers reconsider buying again after facing unexpected charges at delivery.
- DDP (Delivered Duty Paid): duties are collected at checkout by the seller and remitted to customs via the carrier. The customer pays one total price with no surprises.
We strongly recommend DDP for all international markets. It improves conversion, reduces parcel refusals, and builds the kind of customer trust that drives repeat purchases.
2. The Different Transactions to Consider
In a marketplace operating as a Merchant of Record, two distinct financial flows generate tax obligations.
Customer → Marketplace Transactions
The marketplace is the legal seller. It is therefore responsible for:
- Collecting the right consumption tax at checkout, based on the customer's location
- Collecting customs duty at checkout (in DDP), based on the product's HS code and country of origin
Vendor → Marketplace Transactions
When the marketplace settles with vendors, this is a B2B transaction. Here is how we recommend handling it:
- Legally, invoices should be generated by the vendor, but since most vendors lack the infrastructure to do this reliably, we recommend a self-billing agreement signed at onboarding giving the marketplace the right to invoice on their behalf.
- Invoices issued can carry different VAT treatments depending on where the vendor and marketplace are located. The main cases are detailed in section 3b below.
- One monthly invoice per vendor covering all sales from that period is significantly easier to manage than one invoice per order.
3. Simple Scenarios
3a. Customer Transactions
The following four corridors show what the customer pays in each case.
EU vendor → EU customer (different country)
French vendor, marketplace price €80. German customer. Clothing item.
| Marketplace price | €80.00 |
| VAT | German VAT 19% = €15.20 |
| Customs duty | None (intra-EU, no border) |
| Total paid by customer | €95.20 |
| Customer invoice | €95.20 (€80.00 + €15.20 VAT) |
UK vendor → UK customer
UK vendor, marketplace price £60. UK customer. Clothing item.
| Marketplace price | £60.00 |
| VAT | UK VAT 20% = £12.00 |
| Customs duty | None (domestic sale) |
| Total paid by customer | £72.00 |
| Customer invoice | £72.00 (£60.00 + £12.00 VAT) |
UK vendor → EU customer (order above €150)
UK vendor, marketplace price £200. French customer. Clothing item (above €150 threshold, OSS applies).
| Marketplace price | £200.00 |
| VAT | French VAT 20% = £40.00 |
| Customs duty | Clothing ~12% = £24.00 |
| Total paid by customer | £264.00 (DDP) |
| Customer invoice | £264.00 (£200.00 + £40.00 VAT + £24.00 duty) |
| VAT mechanism | OSS: reported quarterly |
UK vendor → EU customer (order below €150)
UK vendor, marketplace price £100. German customer. Clothing item (below €150 threshold, IOSS applies).
| Marketplace price | £100.00 |
| VAT | German VAT 19% = £19.00 |
| Customs duty | None (below €150 threshold) |
| Total paid by customer | £119.00 (DDP) |
| Customer invoice | £119.00 (£100.00 + £19.00 VAT) |
| VAT mechanism | IOSS: collected at checkout, reported monthly |
EU vendor → UK customer
French vendor, marketplace price €160. UK customer. Clothing item (above £135 threshold).
| Marketplace price | €160.00 |
| VAT | UK VAT 20% = €32.00 |
| Customs duty | Clothing ~12% = €19.20 |
| Total paid by customer | €211.20 (DDP) |
| Customer invoice | €211.20 (€160.00 + €32.00 VAT + €19.20 duty) |
3b. Vendor Transactions
Regardless of which customer corridor applies, the VAT treatment on the vendor invoice depends only on the vendor's registration status relative to the marketplace.
| Vendor situation | VAT treatment | Vendor invoice |
|---|---|---|
| Registered in same country as marketplace | Standard VAT applies | Vendor price + local VAT rate |
| Registered in a different country | Reverse charge applies | Vendor price, no VAT, reverse charge noted |
| Not VAT-registered (below threshold) | No VAT | Vendor price, no VAT |
4. Technical Setup
4a. VAT Setup on Shopify
Shopify handles consumption tax natively via Shopify Markets and Shopify Tax:
- Go to
Settings > Taxes and duties, register each market, and enter your relevant tax number (VAT number, OSS number, ABN, etc.) - Shopify automatically calculates the correct rate at checkout based on the customer's destination country
4b. Customs Duty Setup
Two prerequisites must be in place before any duty can be calculated:
- HS code: assign a 6-digit HS code to every product in Shopify via
Products > [Product] > Customs information > HS code. This is mandatory on all international shipments. - Country of origin: also required in the same product section. Customs authorities use it to determine the applicable duty rate and any trade agreement eligibility.
DDP cannot be configured directly in Shopify for a marketplace model. Shopify's native DDP is designed for single-seller stores and does not accommodate multi-vendor order splitting. To enable DDP properly, use one of the following integrations:
- Easyship: calculates exact duties per shipment and destination country, supports DDP across 250+ carriers and 220+ destinations, integrates directly with Shopify
- Shippo: generates DDP labels and handles customs documentation for international shipments
5. Market-Specific Setup
5a. Setting Up Your EU Marketplace
Registration required:
- OSS (One Stop Shop) registration in your home EU country. One registration covers all 27 EU member states.
Shopify configuration:
Settings > Taxes and duties > EU market: enter your OSS number. Shopify applies the correct destination country VAT rate automatically at checkout.- No customs duty configuration needed for intra-EU sales.
Third-party configuration: No
Invoices to generate:
- Customer invoice: generated automatically by Shopify, including destination country VAT.
- Vendor invoice: generated by Garnet monthly.
Reporting:
- VAT collected from customers per country: exported from Shopify, reported quarterly via a single OSS return
- VAT paid to same-country vendors: tracked in Garnet, included in your VAT return
- Reverse charge transactions for different-country vendors: zero net VAT effect, tracked in Garnet, declared in OSS return
- No customs duty reporting obligation for intra-EU sales
5b. Setting Up Your UK-EU Marketplace
Registration required:
- UK VAT number from HMRC
- EU IOSS number (for orders ≤€150 shipped from the UK into the EU)
- EU OSS number (for orders >€150 shipped from the UK into the EU)
Shopify configuration:
- UK market: enter your UK VAT number under
Settings > Markets > UK. Shopify applies 20% automatically at checkout. - EU market: enter your OSS number for orders >€150 and your IOSS number for orders ≤€150. Shopify applies destination country VAT rates automatically.
- All products: add HS code and country of origin under
Products > [Product] > Customs information. Required for all cross-border UK-EU shipments.
Third-party configuration:
- Connect Easyship or Shippo to Shopify to enable DDP on all UK-EU shipments.
- Duty is calculated automatically at checkout per shipment based on the product's HS code and country of origin.
- Easyship handles the IOSS/OSS split automatically based on order value: orders ≤€150 use your IOSS number and attract no customs duty; orders >€150 use OSS and calculate duty at checkout.
Invoices to generate:
- Customer invoice: generated automatically by Shopify, including UK or EU VAT and customs duty collected via Easyship or Shippo.
- Vendor invoice: generated by Garnet monthly.
Reporting:
- UK VAT collected from customers: reported quarterly to HMRC via Making Tax Digital (MTD)
- EU VAT on orders ≤€150 (IOSS): reported monthly via your IOSS return
- EU VAT on orders >€150 (OSS): reported quarterly via your OSS return
- VAT on same-country vendor payouts: included in the respective UK or EU VAT return
- Reverse charge on cross-border vendor payouts: zero net VAT effect, tracked in Garnet, declared in returns
- Customs duty: collected and remitted per shipment via Easyship or Shippo. No separate reporting obligation for the marketplace.

