If you sell hosting to businesses in other EU countries, you already know the pain: one invoice needs 20% VAT, another is zero-rated with a reverse charge note, and a third is out of scope entirely. Getting this wrong means penalties, refunds, and hours of manual correction. This article shows you how to automate the whole process: validate VAT IDs, apply place-of-supply rules, and keep audit-ready evidence for every transaction.

What is the EU VAT place-of-supply rule for hosting?

For business-to-business (B2B) sales of electronically supplied services like hosting, the place of supply is where the customer is established, not where you are. If you sell to a business in Germany from your base in Ireland, the German business accounts for the VAT itself under the reverse charge, provided it gives you a valid VAT ID. Your invoice must show no VAT and a note like “Reverse charge: VAT to be accounted for by the recipient.”

For business-to-consumer (B2C) sales, the place of supply is also the customer’s location, so you charge VAT at the customer’s local rate. A small EU seller whose cross-border B2C sales stay under EUR 10,000 a year may charge its home rate instead. Above that, the One Stop Shop (OSS) lets you report and pay foreign VAT in one return, but you still need to apply the correct rate at checkout.

How do you validate a customer’s VAT ID automatically?

Validation is the first step. You must check that the VAT ID is real and belongs to the business you’re invoicing. The European Commission’s VIES (VAT Information Exchange System) API lets you do this in real time. Here’s a typical flow:

  • Customer enters their VAT ID during signup or checkout.
  • Your billing system calls the VIES API with the country code and number.
  • VIES returns a validity status and the registered business name and address.
  • If valid, you store the response (including a timestamp) as evidence.
  • If invalid, you either charge VAT or ask the customer to correct it.

Never rely on a simple format check — a VAT ID can look correct but be inactive. Also, VIES availability varies; your system should handle timeouts gracefully and retry later without blocking the sale. For audit purposes, log every validation attempt, including failures.

How do you apply reverse charge on hosting invoices?

Once a VAT ID is validated, you can apply reverse charge. The rule: if the customer is a business in another EU country and has a valid VAT ID, you invoice without VAT and add the reverse charge note. If the customer is in the same country as you, domestic VAT applies regardless of their VAT ID. If the customer is outside the EU, the sale is generally outside the scope of EU VAT.

Your billing system must determine the customer’s location reliably. Use the billing address, but also consider the IP address and country of the payment method as secondary evidence. For digital services, the customer’s location is where they are established, not where the server is.

Here’s a decision rule you can automate:

  • Customer in your country: charge domestic VAT.
  • Customer in another EU country, valid VAT ID: zero VAT, reverse charge note.
  • Customer in another EU country, no valid VAT ID: charge VAT at the customer’s local rate (B2C rules).
  • Customer outside the EU: no EU VAT.

Automation means your invoicing software applies these rules at the moment of invoice generation, not manually afterwards.

What evidence do you need to keep for audits?

Tax authorities want to see that you made a reasonable effort to validate the customer’s status. Keep:

  • The VIES validation response (including the consultation number and timestamp).
  • The customer’s billing address and IP address at the time of sale.
  • Copies of invoices showing the reverse charge note.
  • Records of any refunds or credit notes.

Store this evidence for the period required by your country — often 7 to 10 years. Your billing system should automatically attach the VIES response to the invoice record and make it searchable.

How to automate EU VAT in your billing system

Most hosting billing systems (WHMCS, Clientexec, Upmind, WISECP, BILLmanager, FOSSBilling) support EU VAT rules to varying degrees. You can also build your own logic using their APIs. Here’s a step-by-step approach:

  1. Enable VAT support in your billing software and set your home country.
  2. Integrate VIES validation — either through a built-in module or a custom API call.
  3. Define tax rules based on customer country and VAT ID status.
  4. Automate invoice generation to apply the correct VAT and add the reverse charge note when applicable.
  5. Log everything — validation results, invoice PDFs, and customer location data.

Teculiar works out the VAT of every order on the server: the buyer's country rate, reverse charge for EU businesses with a VAT ID, and the zero rate outside the EU. Details are in the documentation.

Common pitfalls and how to avoid them

Even with automation, mistakes happen. Watch out for:

  • Assuming a VAT ID is valid without checking VIES. Always validate in real time.
  • Using the wrong place-of-supply rule. Remember: B2B with valid VAT ID = reverse charge; B2C = local VAT.
  • Forgetting to store evidence. Without a VIES response, you can’t prove the reverse charge was justified.
  • Ignoring VIES downtime. Have a fallback: charge VAT and refund later if validation succeeds.

Also, keep an eye on VAT rate changes — they vary by country and can change. Your system should allow rate updates without code changes.

What to do next

  • Check if your billing system supports VIES validation and EU VAT rules. If not, consider upgrading or integrating a custom solution.
  • Review your current invoices for missing reverse charge notes or incorrect VAT.
  • Set up automatic evidence storage for all VAT validations and invoices.
  • Consult a tax advisor for your specific situation — this article is not legal advice.