The VAT Number Validation Tool is a powerful, free service designed to verify the validity and format of VAT (Value Added Tax) numbers across the European Union and United Kingdom. Whether you're a developer integrating VAT validation into your application or a business user needing quick manual verification, our tool provides instant, accurate results.
Full support for all EU member states and UK (including Northern Ireland)
Instant format validation with sub-second response times
No rate limits, no usage fees, no credit card required
Get business name and address when available
Get started in seconds with our simple API. No authentication required!
curl "https://softwaresphere.ca/tools/VATNumberValidationTool/api.php?vat_number=DE123456789"
That's it! The API returns a JSON response with validation results, country information, and format details.
For manual validation, use our beautiful web interface at the Try page. No login or API key required.
Integrate VAT validation into your application using our REST API.
GET/POST https://softwaresphere.ca/tools/VATNumberValidationTool/api.php
| Parameter | Type | Required | Description |
|---|---|---|---|
vat_number |
string | Required | The VAT number to validate (include country prefix) |
vat |
string | Optional | Alias for vat_number parameter |
For validating multiple VAT numbers, you can make concurrent API requests. Since there are no rate limits, you can process large batches efficiently.
const vatNumbers = ['DE123456789', 'NL853746333B01', 'FR12345678901'];
const results = await Promise.all(
vatNumbers.map(vat =>
fetch(`https://softwaresphere.ca/tools/VATNumberValidationTool/api.php?vat_number=${vat}`)
.then(res => res.json())
)
);
results.forEach(result => {
console.log(`${result.vatNumber}: ${result.valid ? 'Valid' : 'Invalid'}`);
});
All API responses are returned in JSON format with the following structure:
{
"success": true,
"input": "DE123456789",
"vatNumber": "DE123456789",
"valid": true,
"validFormat": true,
"country": {
"name": "Germany",
"isoCode": {
"short": "DE",
"long": "DEU",
"numeric": "276"
}
},
"company": {
"name": "Format validated - use VIES for company details",
"address": "N/A"
},
"format": "DE + 9 digits",
"example": "DE123456789",
"message": "VAT number format is valid for Germany"
}
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the API call completed successfully |
valid | boolean | Whether the VAT number format is valid |
validFormat | boolean | Whether the format matches country requirements |
country.name | string | Full country name |
country.isoCode.short | string | ISO 3166-1 alpha-2 code |
country.isoCode.long | string | ISO 3166-1 alpha-3 code |
country.isoCode.numeric | string | ISO 3166-1 numeric code |
company.name | string | Company name (when available) |
company.address | string | Company address (when available) |
format | string | Expected format description |
example | string | Example VAT number for the country |
message | string | Human-readable status message |
Each EU country has a specific VAT number format. Here are the supported formats:
| Country | Code | Format | Example |
|---|---|---|---|
| 🇦🇹 Austria | AT | ATU + 8 digits | ATU12345678 |
| 🇧🇪 Belgium | BE | BE + 10 digits | BE0123456789 |
| 🇩🇪 Germany | DE | DE + 9 digits | DE123456789 |
| 🇫🇷 France | FR | FR + 11 characters | FR12345678901 |
| 🇬🇧 United Kingdom | GB | GB + 9 or 12 digits | GB123456789 |
| 🇮🇹 Italy | IT | IT + 11 digits | IT12345678901 |
| 🇳🇱 Netherlands | NL | NL + 12 characters | NL123456789B01 |
| 🇪🇸 Spain | ES | ES + 9 characters | ESX12345678 |
| 🇵🇱 Poland | PL | PL + 10 digits | PL1234567890 |
| 🇬🇧 Northern Ireland | XI | XI + 9 or 12 digits | XI123456789 |
For a complete list of all 28 supported countries, see the API documentation.
The API returns helpful error messages when validation fails:
{
"success": false,
"error": "Unknown country code",
"message": "The country prefix 'XX' is not recognized"
}
{
"success": true,
"valid": false,
"validFormat": false,
"message": "VAT number format is invalid for Germany. Expected: DE + 9 digits"
}
import requests
def validate_vat(vat_number):
response = requests.get(
'https://softwaresphere.ca/tools/VATNumberValidationTool/api.php',
params={'vat_number': vat_number}
)
return response.json()
result = validate_vat('DE123456789')
print(f"Valid: {result['valid']}")
print(f"Country: {result['country']['name']}")
<?php $vatNumber = 'NL853746333B01'; $url = "https://softwaresphere.ca/tools/VATNumberValidationTool/api.php?vat_number=" . urlencode($vatNumber); $response = file_get_contents($url); $result = json_decode($response, true); echo "Valid: " . ($result['valid'] ? 'Yes' : 'No') . "\n"; echo "Country: " . $result['country']['name'] . "\n"; ?>
const axios = require('axios');
async function validateVAT(vatNumber) {
const response = await axios.get(
'https://softwaresphere.ca/tools/VATNumberValidationTool/api.php',
{ params: { vat_number: vatNumber } }
);
return response.data;
}
validateVAT('FR12345678901').then(result => {
console.log(`Valid: ${result.valid}`);
console.log(`Country: ${result.country.name}`);
});
Yes! The VAT Number Validation Tool is 100% free with no rate limits, no usage fees, and no hidden charges. Use it as much as you need.
No! No API key is required for any usage - web interface or API. Just call the endpoint directly.
All 27 EU member states plus the United Kingdom (GB) and Northern Ireland (XI) are supported.
This tool validates the VAT number format. For official VIES (VAT Information Exchange System) validation against EU databases, we recommend using the EU's official VIES service in conjunction with our format validation.
Absolutely! The API is designed for production use with high availability and no rate limits.