VAT Validation for European SaaS Companies
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 VIESvat_number- normalized format (e.g.FR40303265045)country_code- two-letter country codecompany_name- registered business namecompany_address- official registered address
5 use cases
- Checkout flow - validate the VAT number in real time before applying the reverse charge mechanism on B2B invoices.
- Invoice automation - auto-fill company name and address from the API response to reduce manual data entry.
- Supplier onboarding - verify that a new vendor's VAT number is active before signing a contract.
- Tax compliance audit - batch-validate your existing customer database to flag expired or invalid VAT numbers.
- Multi-country pricing - use the
country_codeto determine the correct VAT rate for B2C customers across EU member states.