Back to blog
Product

VAT Validation for European SaaS Companies

Josselin Liebe
Josselin Liebe

If you sell software to businesses in the EU, you need to validate their VAT numbers. Getting this wrong means either charging VAT when you shouldn't (losing competitiveness) or not charging it when you should (tax liability). The Veille VAT Validation API (GET /v1/vat) connects directly to the VIES database and returns the result in milliseconds.

What the API returns

For any EU VAT number, you get: valid (boolean), the normalized vat_number, country_code, company_name, and company_address. The API handles format normalization automatically - with or without country prefix, with or without spaces.

Quick integration

Python

import requests

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.veille.io/v1"

response = requests.get(
    f"{BASE_URL}/vat",
    params={"query": "FR40303265045"},
    headers={"x-api-key": API_KEY},
)
data = response.json()

if data["valid"]:
    print(f"{data['company_name']} - reverse charge applies")
else:
    print("Invalid VAT number - charge local VAT rate")

TypeScript

const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://api.veille.io/v1";
const headers = { "x-api-key": API_KEY };

const response = await fetch(
  `${BASE_URL}/vat?query=FR40303265045`,
  { headers }
);
const data = await response.json();

if (data.valid) {
  console.log(`${data.company_name} - reverse charge applies`);
} else {
  console.log("Invalid VAT number - charge local VAT rate");
}

Key response fields

  • valid - whether the VAT number is currently active in VIES
  • vat_number - normalized format (e.g. FR40303265045)
  • country_code - two-letter country code
  • company_name - registered business name
  • company_address - official registered address

5 use cases

  1. Checkout flow - validate the VAT number in real time before applying the reverse charge mechanism on B2B invoices.
  2. Invoice automation - auto-fill company name and address from the API response to reduce manual data entry.
  3. Supplier onboarding - verify that a new vendor's VAT number is active before signing a contract.
  4. Tax compliance audit - batch-validate your existing customer database to flag expired or invalid VAT numbers.
  5. Multi-country pricing - use the country_code to determine the correct VAT rate for B2C customers across EU member states.