EU VAT Validation for US SaaS Companies: What You Need to Know
If you run a SaaS company in the US and have customers in Europe, you need to deal with VAT. The rules are different from US sales tax, and getting them wrong can result in penalties. The good news: for B2B sales, the reverse charge mechanism means you don't need to charge VAT. The bad news: you need to validate your customer's VAT number to use it.
VAT vs US sales tax
US sales tax is charged at the point of sale by the seller, based on the seller's or buyer's state. EU VAT is charged at each stage of production and distribution. For cross-border B2B services, the buyer self-accounts via reverse charge.
US companies selling to EU businesses don't charge VAT, but they must verify the buyer is a real business. The only reliable way to do that: validate their VAT number against a government database.
B2B vs B2C: why it matters
- B2B (buyer has a valid VAT number): reverse charge applies, you invoice without VAT, buyer self-accounts
- B2C (buyer is a consumer or has no valid VAT number): you must charge VAT at the buyer's local rate, register for VAT (Non-Union OSS), and remit it
The only way to distinguish B2B from B2C reliably: validate the VAT number. Only businesses can have one. Some customers will claim to be businesses to avoid VAT. Validation prevents this fraud.
For a deeper explanation of the reverse charge mechanism and its legal requirements, see our dedicated guide.
How to validate EU VAT numbers from the US
VIES is the EU's official validation service. It's free and accessible from anywhere, including the US. However, integrating directly with VIES means dealing with a SOAP/XML API, per-country downtime, and no UK support.
Vatly wraps VIES (and HMRC for UK, plus Swiss, Norwegian, and Australian registries) in a single REST API:
import Vatly from "@vatly/node";
const vatly = new Vatly("vtly_live_your_api_key");
// Customer claims to be an EU business
const { data, error } = await vatly.vat.validate({
vatNumber: "DE123456789",
});
if (data?.valid) {
// Confirmed business: invoice without VAT (reverse charge)
// Store: company name, validation timestamp, consultation number
} else {
// Not a valid business: charge local VAT rate
// You'll need Non-Union OSS registration for this
}What about the UK, Switzerland, Norway, and Australia?
Post-Brexit, UK VAT numbers are not in VIES. You need HMRC validation separately. Swiss, Norwegian, and Australian businesses have their own tax ID systems.
If you sell to businesses in any of these countries, you may need to validate their tax IDs. Vatly handles all of them through the same endpoint. One API call, regardless of country.
Do US companies need an EU VAT number?
- For B2B sales only: No. Reverse charge means the buyer handles VAT.
- For B2C sales to EU consumers: Yes. You must register for VAT via the Non-Union OSS (One Stop Shop) and charge local VAT rates. There is no revenue threshold for digital services.
Having an EU VAT number also allows you to request consultation numbers when validating other EU businesses, which provides timestamped proof of validation for audit purposes.
Get started
Vatly's free tier includes 500 validations per month with no credit card required. No EU VAT registration needed to use the API.
Read the API documentation or check out the TypeScript integration guide to get started in under 5 minutes.
Frequently asked questions
Do US companies need to charge EU VAT?
It depends on the customer. For B2B sales where the buyer provides a valid VAT number, no. Reverse charge applies. For B2C sales to EU consumers, yes. You must register for VAT and charge the local rate.
Can I access VIES from the US?
Yes. VIES is publicly accessible from anywhere. Vatly also works from any location and wraps VIES in a modern REST API.
What if my EU customer doesn't have a VAT number?
Treat the sale as B2C. Charge VAT at the customer's local rate. You'll need a VAT registration (Non-Union OSS) to do this.
Do I need a separate integration for UK customers?
If you integrate directly, yes. HMRC uses a different API from VIES. If you use Vatly, no. The same endpoint handles both EU and UK validation automatically.