OSS Tax Rules for Magento 2 Setup
This guide explains how to set up One Stop Shop (OSS) VAT handling with the Yuki Connection for Magento 2. OSS is the EU VAT scheme that lets you report cross-border B2C sales through a single registration instead of registering in every destination country. If your store sells to consumers in other EU countries and you've crossed the €10,000 annual threshold, you need OSS. This guide covers what Yuki needs, how to set it up in Magento, and how to verify it's working correctly.
What is OSS?
One Stop Shop (OSS) is an EU VAT scheme for distance selling to consumers in other EU countries.
- Before OSS: You had to register for VAT in each EU country where you exceeded local thresholds.
- With OSS: You report all EU cross-border VAT through one registration in your home country. For Dutch merchants, that's the Belastingdienst.
- Threshold: €10,000 in annual EU distance sales (combined across all countries). Once you exceed this, destination country VAT rates apply to your B2C orders.
How Yuki Handles OSS
Most accounting platforms require you to maintain a mapping of destination country to tax code. Yuki doesn't work that way.
Yuki resolves the correct OSS BTW code automatically from three pieces of data sent on each invoice line:
- VATType 40 - the OSS type code
- VATPercentage - the destination country's VAT rate (e.g. 19% for Germany)
- VATCountry - the destination country code (e.g. DE)
This means you don't need country-to-tax-code mapping in Magento. You just need to:
- Create matching BTW tax codes in Yuki for each destination country
- Configure EU VAT rates in Magento
- Select which EU countries to apply OSS for in the module settings
Prerequisites
Before configuring OSS:
- Register for OSS with the Belastingdienst
- Create BTW tax codes in Yuki for each EU destination country (see Step 1 below)
- Configure EU VAT rates in Magento (Stores → Tax Zones and Rates)
- Verify your EU country list in Magento (Stores → Configuration → General → Country Options)
Step 1: Create BTW Tax Codes in Yuki
For each EU country you sell to, create a BTW-tarief in the Yuki web application:
- Go to the Yuki web application
- Navigate to BTW-tarieven
- Add a new BTW code for each destination country
Example for Germany:
- Name: OSS Duitsland
- Type: 40 (OSS)
- Percentage: 19%
- Land: DE
Common EU VAT rates:
| Country | Standard Rate | Example Name |
|---|---|---|
| Germany (DE) | 19% | OSS Duitsland |
| France (FR) | 20% | OSS Frankrijk |
| Belgium (BE) | 21% | OSS België |
| Spain (ES) | 21% | OSS Spanje |
| Italy (IT) | 22% | OSS Italië |
| Austria (AT) | 20% | OSS Oostenrijk |
| Poland (PL) | 23% | OSS Polen |
Tip: Only create BTW codes for countries you actually sell to. You only need to set up what you'll use.
Step 2: Configure VAT Rates in Magento
- Go to Stores → Tax Zones and Rates
- Add each EU destination country with their local VAT rate
- Go to Stores → Tax Rules
- Create tax rules that apply the correct rates based on the destination country
Make sure the percentages in Magento match exactly what you entered in Yuki. Yuki matches on the exact VATPercentage value.
Step 3: Enable OSS in Magento
- Go to Stores → Configuration → Accounting → Yuki
- Navigate to Advanced Settings → One Stop Shop (OSS)
- Set Enable OSS to Yes
- In OSS Countries, select the EU countries you want to apply OSS for
- Click Save Config
Important: Only select countries for which you have created BTW codes in Yuki (Step 1). If Yuki can't find a matching BTW code, the invoice sync will fail with an error.
Step 4: Verify Configuration
- Place a test order from an EU country (not NL) as a consumer (B2C, no VAT number)
- Create the invoice for the order
- Sync to Yuki via manual push from the grid, or wait for the next cron run
- Go to Accounting → Synchronisation Logs → Invoice and check for success
- Verify in Yuki that the invoice was created with VATType 40 and the correct country code
How OSS Invoices Are Processed
When an invoice is synced, the module checks each line item:
- Is OSS enabled?
- Does the item have tax > 0%?
- Is the shipping country in the OSS countries list?
If OSS applies:
- VATType is set to 40 (OSS)
- VATPercentage is the item's tax percentage
- VATCountry is set to the destination country code
- Yuki resolves the matching BTW code automatically
If OSS does not apply, the module falls back to standard rules:
- B2B sales with 0% tax → Intra-community (ICP) rules (ExportBinnenEU, type 7)
- Same country (NL) → Normal domestic VAT
- Outside EU → Export rules
- Country not in OSS list → Normal tax rules
B2B vs B2C
OSS only applies to B2C (consumer) sales. The module determines this based on the tax percentage on the invoice line:
| Customer Type | VAT Treatment |
|---|---|
| Consumer (no VAT number, tax > 0%) | OSS - destination country VAT (type 40) |
| Business with VAT number (tax = 0%) | Reverse charge / ICP (ExportBinnenEU, type 7) |
Items with 0% tax are never treated as OSS, regardless of the destination country.
Troubleshooting
"Active sales taxcode with percentage X and type 40 cannot be found"
This means Yuki can't find a matching BTW code for the combination of percentage and country.
Solution:
- Go to BTW-tarieven in Yuki
- Create a new BTW code with:
- Type: 40
- Percentage: the percentage from the error message
- Land: the destination country from the error
- Re-sync the invoice
OSS not being applied
Check:
- Is OSS enabled under Advanced Settings → One Stop Shop (OSS)?
- Is the destination country selected in the OSS Countries multiselect?
- Does the order line item have tax > 0%?
OSS applied to the wrong country
Check the order's shipping country. The module uses the shipping country as the OSS destination for goods. Verify the order was placed with the correct shipping address.
External Resources
Need More Help?
Documentation:
- All Help Articles - Complete documentation overview
Support:
- Contact Support - Get help from our team