Skip to content
POST AI agent ready /v1/validate/vat

VAT Number Validation API - Free EU VAT Check

Submit a VAT number and receive back whether it matches the expected format for its country. Supports all EU member states. Useful for B2B invoicing, tax-exempt checkout flows, and compliance checks. The VAT number is processed server-side and never stored.

Parameters

stringrequired

The VAT identification number to validate, including the country prefix.

Code examples

curl -X POST https://api.botoi.com/v1/validate/vat \
  -H "Content-Type: application/json" \
  -d '{"vat_number":"DE123456789"}'

When to use this API

Verify customer VAT IDs during B2B checkout

Before applying a zero-rate VAT exemption at checkout, validate the buyer's VAT ID. This protects you from issuing incorrect invoices and from potential penalties during tax audits.

Auto-populate country and tax rules from a VAT number

Extract the country code from the VAT ID to automatically apply the correct VAT rate, invoice language, and reporting requirements for each EU member state.

Batch-validate VAT numbers in your CRM

Run your customer database through the endpoint periodically. Flag accounts with invalid or expired VAT IDs so your finance team can request updated documents before the next invoice cycle.

Frequently asked questions

Which countries are supported?
All 27 EU member states. Each country has its own VAT number format (e.g., DE + 9 digits for Germany, FR + 11 characters for France). The API validates against the correct pattern for the detected country.
Does this API check the VAT number against the VIES database?
This endpoint validates the format and structure of the VAT number. For real-time VIES (EU Commission) lookup to confirm registration status, pair it with the official VIES SOAP service.
Is the VAT number stored after validation?
No. The number is processed in memory and discarded after the response. No data is written to disk or any external system.
Can I validate UK VAT numbers?
UK VAT numbers (GB prefix) follow a known format and can be structurally validated. Since the UK left the EU, they are no longer part of VIES, but the format check still works.
What happens if I send a number without the country prefix?
The API requires the two-letter country prefix (e.g., "DE", "FR", "NL"). Without it, the response returns valid: false with a reason explaining that the country code is missing.

Get your API key

Free tier includes 5 requests per minute with no credit card required. Upgrade for higher limits.