About this plugin
Every order gets a VAT decision and a record of why: the customer’s VAT number, the registry’s answer, the location evidence and the rule that applied. If a tax office asks how an order was taxed, the answer is on the order.
When VIES is down, checkout keeps working. By default VAT is charged, the order is flagged and the number is checked again later, so an outage is never recorded as an invalid number. When a customer’s billing country and IP country disagree, the customer confirms their country instead of the plugin picking one.
The plugin applies each decision through EDD’s own tax calculation. It’s free, has no Pro version and shows no branding in your store. Stores moving from Barn2’s EDD EU VAT can bring their settings and order history across in one import.
Settings live under Downloads > Settings > Taxes > EU VAT. The rates screen is under Downloads > EU VAT and the reports under Downloads > EU VAT reports.
1 or later with taxes turned on.
What it does
- Adds a VAT number field to the block checkout and the shortcode checkout. Numbers are checked for format first, then against the official registry, and the cart’s tax updates as soon as the answer comes back. Logged-in customers get their last number filled in.
- Registries: VIES for EU numbers, HMRC for GB numbers (needs your own free HMRC developer credentials, see the FAQ), the Swiss UID register for CHE numbers and the Brønnøysund register for Norwegian numbers.
- Applies reverse charge to B2B sales with a valid number. When your prices include tax, the included VAT is taken off the price, so a business buyer pays the net amount. The legal wording and the customer’s number go on the receipt, in the email tags {vat_number}, {vat_notice} and {vat_company}, and on EDD Invoices and EDD PDF Invoices when either add-on is active. A valid number from your own country never exempts unless you switch that on.
- Charges B2C customers your country’s VAT below the EUR 10,000 OSS threshold and the destination country’s VAT above it, switching automatically. You can also tell the plugin you’re OSS-registered to always charge destination VAT.
- Uses the billing country as location evidence, plus the visitor’s IP country when your site is behind Cloudflare or Amazon CloudFront. When the evidence conflicts, the customer can be asked to confirm their country.
- Imports standard and reduced rates from the EU’s TEDB into EDD’s tax rates. It shows a diff first and never changes a rate until you apply it. Rates you replace are kept as inactive rows, the way EDD keeps them. A weekly check tells you when the EU rates change.
- A VAT category on each download (standard, reduced or super-reduced), so e-books and similar products get their reduced rate in the same cart as standard-rate products.
- Records the decision on every order: the number, the registry answer, the VIES consultation number when you’ve entered your own VAT number, the location evidence and the rule that applied. It also corrects the tax rate EDD links to the order, so refunds and renewals use the right one. An EU VAT section on the order screen shows the decision, with a log and a button to re-check the number.
- Records orders that skip EDD’s checkout checks too, such as wallet payments and manual orders added in the admin, and flags the ones it couldn’t decide cleanly.
- Re-checks numbers that couldn’t be validated at checkout and can email you when one validates after the order was placed.
- Lets a shop manager correct the VAT number, the country of evidence and the treatment on an order, with a required reason. The change is added to the decision log with who, when, old and new values, and the OSS and EC Sales List reports follow. It never changes the amounts charged or refunds anything.
- Optional: refunds the VAT automatically, through EDD’s own refund, when a number that couldn’t be checked at checkout validates later. Off by default.
- Quarterly OSS return and EC Sales List reports with CSV export, in EUR. Orders in other currencies are converted at the ECB reference rate. Refunds and revoked orders are recorded against the period they belong to.
- Reports for a quarter, a month or any date range, in the screen, the CSV and the REST endpoints, for countries that want the EC Sales List monthly.
- Emails the store admin when EU sales to consumers reach a share of the EUR 10,000 OSS threshold (80% by default) and again when they pass it, once a year per level. You can turn it off or change the share.
- A separate UK store VAT number: UK customers see it on receipts and invoices and HMRC checks use it, while everyone else gets the EU number and VIES checks keep using that one. With one number set, nothing changes.
- Optional business-only mode: require a valid VAT number at checkout from everyone, from customers billing in the EU or from the countries you choose. The field shows as required for those countries, a number the registry couldn’t check is refused, and Buy Now and wallet orders that can’t be refused are flagged on the order.
- VAT-exempt user roles: customers with a role you choose pay no VAT, recorded on the order under its own rule. A confirmed VAT number takes precedence, and a role isn’t a legal basis on its own, so you stay responsible for each exemption. Renewals follow the same rule.
- A VAT column on EDD’s Orders list with the number, its status and the treatment, and a filter for orders pending validation or flagged.
- REST endpoints for both reports, restricted to users who can view shop reports.
- Works with EDD Recurring: renewals are recorded at the amount the gateway charged, with the VAT that decision calls for inside it. See the FAQ.
- A setup check lists what’s missing: taxes turned on, your shop country and VAT number, tax rates for destination countries, the IP country source and HMRC credentials.
- Registers WordPress personal data exporters and erasers, and a retention setting for the stored data.
Moving from Barn2’s EDD EU VAT
Downloads > Import from Barn2, which appears while Barn2’s plugin is active or its settings are still in the database, copies Barn2’s settings across and imports your order history into the OSS and EC Sales List reports, so the threshold and past quarters are right from the first day. Run the dry run first: it counts what would be imported per quarter and scheme and writes nothing. The same import runs from WP-CLI with wp vat-right-for-edd import-barn2.
Settings are copied on the server and never shown on screen or in logs. Barn2’s VATSense key isn’t copied, because this plugin checks GB numbers with HMRC instead.
While Barn2’s plugin is active, this plugin only offers the import and doesn’t touch checkout or orders. Deactivate Barn2’s plugin once the import is done.
External services
The plugin contacts the services below. It never sends them an order’s contents, amounts or the customer’s name.
VIES (European Commission). Checks EU VAT numbers. Sent when a customer enters a number: the VAT number and, if you’ve set one, your store VAT number as requester.
Used on the checkout, the admin order screen and in scheduled re-checks. VIES, legal notice, privacy policy.
HMRC VAT API (UK). Checks GB VAT numbers, only when you’ve entered HMRC credentials. Sent: the VAT number, your HMRC client ID and secret to obtain a token, and your GB VAT number if you’ve set one.
Terms of use, privacy notice.
Swiss UID register (Swiss Federal Statistical Office). Checks CHE numbers. Sent: the number.
UID register, terms.
Brønnøysund Register Centre (Norway). Checks Norwegian organisation numbers. Sent: the number.
Terms of use, privacy statement.
EU Taxes in Europe Database, TEDB (European Commission). Source of the standard and reduced VAT rates. Sent when you fetch rates or the weekly check runs: a rate query with no customer data.
TEDB, legal notice, privacy policy.
European Central Bank. Source of the euro reference rates used to convert orders in other currencies for the reports, and for the Barn2 history import. Sent: a currency code and a date range.
Disclaimer, privacy.
The plugin doesn’t use an IP geolocation service. The IP country comes from your CDN’s request header, see the FAQ.
Disclaimer
VAT Right for Easy Digital Downloads is a tool, not tax advice. You, the store owner, are responsible for your VAT treatment and your filings. VAT rates and registry results come from third parties and can be wrong or out of date, so check them with an accountant.
The plugin is provided without warranty and without liability, under the GPL.