VAT OSS Autopilot — Complete guide
Install and configure VAT OSS Autopilot: real-time EU VAT, VIES validation, quarterly OSS return and configurable thresholds.
Overview
VAT OSS Autopilot automates intra-EU VAT management for your WooCommerce store: real-time destination-country rate calculation, VIES validation of B2B VAT numbers with reverse charge, quarterly OSS return generation (summary CSV, detailed CSV, DGFiP XML) and fully configurable revenue threshold monitoring.
Regulatory reminder: since July 2021, B2C sales to other Member States above 10,000 € per year must be taxed at the customer country rate and declared via the OSS One-Stop Shop, no later than the last day of the month following the end of the quarter.
Requirements
- WordPress 6.2 or higher
- WooCommerce 7.0 or higher (tested up to 9.4)
- PHP 7.4 minimum (compatible 8.0 to 8.3)
- PHP extensions:
SOAP(VIES validation),DOM(XML export),ZipArchive(ZIP bundle) - WooCommerce taxes must be enabled (
WooCommerce → Settings → General → Enable taxes)
Check the SOAP extension via WooCommerce → Status → System report or ask your host. Without SOAP the plugin works but VIES validation is disabled.
Installation
- Download
vat-oss-autopilot.zipfrom your DataFirefly account. - In WordPress admin, go to
Plugins → Add New → Upload Plugin. - Select the ZIP, click Install Now, then Activate.
- A new VAT OSS menu appears in the admin sidebar.
On activation, the plugin creates the wp_vat_oss_sales table (OSS sales tracking) and pre-fills three French example thresholds, freely editable or removable.
Initial configuration
1. Tax identification
Go to VAT OSS → Settings and fill in:
- Country of establishment — the country where you are OSS-registered. Sales to this country remain handled by your usual WooCommerce configuration (outside OSS scope).
- VAT number — your intra-EU number (e.g. FRXX999999999). It appears in the return XML header.
- Company name, email, phone, IBAN, BIC — information used in the XML Operator block.
2. VIES validation
- Enable VIES validation — queries the European Commission service whenever a VAT number is entered at checkout (8-second timeout).
- Apply B2B reverse charge — sets VAT to 0% for intra-EU business customers whose number has been validated.
- VIES cache duration — in seconds, 30 days by default (2592000). Each validated number is cached to avoid hitting VIES unnecessarily.
If VIES is temporarily unreachable, the order goes through with VAT applied (safety mode) and the customer is informed via a notice. The “unreachable” result is only cached one hour, then a new attempt is made.
3. Default activity type
Choose Goods or Services. This type is used to split revenue in thresholds and in the OSS return. You can override it per product: in each WooCommerce product, Tax tab, OSS type field.
EU VAT rates
The VAT OSS → VAT Rates page lists the 27 Member States with three columns: standard, reduced and super-reduced rate. Default values are up to date at plugin publication.
The rate applied at checkout depends on the product WooCommerce tax class: the standard class uses the standard rate, a class containing “reduced” uses the reduced rate, a class containing “super” uses the super-reduced rate.
When a Member State changes its rate, simply edit the value in this table — no plugin update required.
Checkout behaviour
- The customer fills in their billing country; the plugin automatically applies the country rate if the sale is intra-EU and OSS-eligible.
- An optional EU VAT number field appears in the billing fields.
- On input (600 ms debounce), an AJAX validation queries VIES and shows the result: green check with the company name, or red cross.
- If the number is valid and reverse charge is enabled, VAT drops to 0% with the label “VAT (reverse charge)” and totals recalculate.
- The number, validation status and company name are stored in the order metadata.
OSS sales tracking
Every order reaching Completed or Processing status is recorded in the tracking table, split by VAT rate and product type. Shipping costs attach to the dominant rate of the order. Refunds automatically generate negative lines.
Excluded from the OSS return: domestic sales (country of establishment) and B2B sales with a validated VIES number (reverse charge).
Dashboard
The VAT OSS → Dashboard page shows, for the current quarter: OSS net base, VAT due, comparison with the previous quarter, number of countries involved, detailed breakdown by country and rate, and the progress of each configured threshold.
Generating the OSS return
In VAT OSS → OSS Return, pick the year and quarter (the previous quarter is preselected), then click the desired format:
- Summary CSV — aggregated by country and rate, UTF-8 with BOM and semicolon separator. This is the file to use for manual portal entry.
- Detailed CSV — one line per order and rate, with order number, customer type and VAT number. Serves as accounting audit trail.
- FR-format XML — compliant with the DGFiP OSS-Union schema (namespace
urn:dgfip:oss:union:v1), with Header, Operator, per-country Supplies and Totals blocks. Ready to upload to impots.gouv.fr. - Everything as ZIP — all three files in one archive.
The OSS return must be filed no later than the last day of the month following the end of the quarter (e.g. April 30 for Q1). Payment is made in one operation, in euros.
Configurable thresholds
The VAT OSS → Thresholds page lets you define as many thresholds as needed. Each row includes:
- Label — free text (e.g. “Sale of goods”)
- Amount and currency — the yearly ceiling to monitor
- Type — Goods, Services, or All (global revenue)
- Alerts (%) — comma-separated tiers (e.g.
80,90,100)
On every order, the plugin recalculates the yearly revenue of the relevant type. When a tier is crossed, an email is sent to the site admin address and a persistent notice appears in admin. Each tier only triggers one alert per fiscal year.
Three example thresholds (French micro-business regime) are pre-filled at install: 85,000 € goods, 37,500 € services, 25,000 € VAT exemption. Adapt them to your situation or remove them.
Maintenance
- Purge VIES cache — button in
VAT OSS → Settings, forces revalidation of all numbers at the next checkout. - Deactivation — keeps all data (table, options, history).
- Uninstall — removes the
wp_vat_oss_salestable, all options, the VIES cache and order metadata (including the HPOSwc_orders_metatable).
Troubleshooting
VIES validation does not trigger
- Check that the PHP SOAP extension is installed on the server.
- Check that validation is enabled in
VAT OSS → Settings. - VIES undergoes regular maintenance on the European Commission side — try again later; the fallback with VAT applied protects your orders.
The applied rate is not the expected one
- Sales to your country of establishment use your native WooCommerce configuration, not the plugin registry.
- Check the product tax class: it determines whether the standard, reduced or super-reduced rate is used.
- Check the target country rate in
VAT OSS → VAT Rates.
An order does not appear in the return
- Only orders in Completed or Processing status are recorded.
- B2B sales with a validated VIES number are deliberately excluded (reverse charge, outside OSS).
- Domestic sales are outside the OSS scope.
FAQ
Can I use the plugin outside France?
Yes. The country of establishment is configurable, thresholds are fully customizable and the interface exists in 5 languages. Only the XML export follows the French DGFiP schema; for other national portals, use the summary CSV.
Does the plugin handle the IOSS regime (imports)?
No, this version covers the OSS-Union regime (intra-EU sales). The IOSS regime for imports under 150 € is not included.
Is the data GDPR-friendly?
The plugin only stores data required for the tax return: country, amounts, rates and VAT number (business data). No data is sent to third parties apart from the official European Commission VIES call.