Validate VAT numbers against HMRC and VIES registries in a single API call. Check local format rules, confirm registry status, and return company name, address, and country metadata in structured JSON.
EU + GB
Coverage
HMRC
UK registry
VIES
EU registry
Live Validation Demo
Awaiting response
{
"status": 200,
"message": "Success"
}CAPABILITIES
Built for tax validation in onboarding, invoicing, checkout, supplier verification, and cross-border B2B workflows.
Validate VAT numbers for the UK and EU member states through one consistent endpoint. No need to maintain separate validation flows for each region.
Checks UK VAT numbers against HMRC and EU VAT numbers against VIES, returning whether the number is registered as valid and whether the upstream registry was successfully checked.
Applies country-specific VAT format rules before the registry lookup. Invalid local format is identified early, helping you catch bad input before it reaches your core systems.
When available, the API returns the registered company name and address so you can prefill records, verify supplier data, and reduce manual review effort.
Returns registryStatus, format validation details, checkedAt timestamp, source information, and normalised input fields so your application can respond intelligently to each case.
A single GET request returns a predictable JSON response that fits easily into sign-up forms, ERP integrations, invoicing systems, and compliance workflows.
USE CASES
From B2B checkout to finance controls and marketplace onboarding, the API is designed for production workflows where VAT data quality matters.
For cross-border B2B commerce, an invalid VAT number creates downstream tax, invoicing, and refund issues. Validate the number at checkout and return registry-backed proof immediately.
Reduce tax errors at the moment of purchase
Avoid manual back-office correction of invalid buyer records
Pre-fill registered business details when available
Support reverse-charge and zero-rated B2B flows with stronger validation
A regex can only tell you whether the input looks plausible. This API checks local format rules and then validates against HMRC or VIES when available.
HOW TO START
Sign up with your email and get access to the developer portal, API keys, usage tracking, and documentation. No complex onboarding flow required.
Get StartedSend a GET request with x-api-key and vat_number. The API checks country-specific format rules first, then validates against HMRC or VIES when the upstream registry is available.
Route valid VAT numbers through your sign-up, checkout, invoicing, CRM, or compliance workflow. Use registryStatus, company details, and format signals to decide what happens next.
View PricingINTEGRATION
A single GET request returns format checks, registry status, company details, and normalised VAT input. No SDK required.
curl -X GET \
"https://vat.apitier.com/v1/validate?x-api-key=YOUR_API_KEY&vat_number=IE6388047V"
# Response
{
"status": 200,
"message": "Success",
"result": {
"vatNumber": "IE6388047V",
"isValid": true,
"message": "VAT number is valid.",
"registryChecked": true,
"registryStatus": "valid",
"checkedAt": "2026-04-22T10:00:00.000Z",
"source": "vies",
"format": {
"isValid": true,
"checked": true,
"message": "VAT number format is valid for IE."
},
"company": {
"name": "GOOGLE IRELAND LIMITED",
"address": "GORDON HOUSE, BARROW STREET, DUBLIN 4"
},
"country": {
"code": "IE",
"name": "Ireland"
},
"input": {
"raw": "IE6388047V",
"normalized": "IE6388047V",
"vatNumber": "6388047V"
},
"reason": null
}
}FAQ
Which countries are supported by the VAT Number Validation API?
The API supports UK VAT numbers and VAT numbers from EU member states. It normalises the supplied VAT number, identifies the country code, validates local format rules, and then checks the relevant upstream registry when available.
What is the difference between format validation and registry validation?
Format validation checks whether the VAT number structure is valid for the supplied country. Registry validation checks whether that VAT number is actually registered as valid in the upstream source, such as HMRC for GB or VIES for EU countries. A VAT number can pass format validation and still fail registry validation.
What does registryStatus mean in the response?
registryStatus tells you what happened when the API tried to check the upstream registry. Common values are valid, invalid, not_checked, error, and unavailable. This lets your application distinguish between a confirmed invalid number and a temporary upstream issue.
Does the API return company name and address?
Yes, when the upstream registry returns that information. The response includes company.name and company.address fields so you can compare user-supplied data against the registered business record or prefill your internal systems.
Can I use the API in a real-time sign-up or checkout flow?
Yes. The API is designed for real-time use in B2B onboarding, checkout, invoicing, supplier setup, and CRM lead qualification. The response is lightweight and structured for direct application logic.
What happens when the upstream VAT service is temporarily unavailable?
If the upstream registry times out or is unavailable, the API returns a structured response explaining the issue. In some cases the HTTP status will reflect a temporary service problem, and the result object will include registryStatus of unavailable plus a reason field.
Does the API normalise the VAT number I send?
Yes. The response contains an input object with raw, normalized, and vatNumber fields. This is useful when users type spaces, lowercase prefixes, or other formatting variations that your application still wants to store consistently.
How do I know whether the country prefix is wrong?
If the country code is not supported or the VAT number cannot be parsed correctly, the API returns a structured error that includes a supportedCountries list. This makes it easier to guide the user toward valid country prefixes.
Can I use the API for batch cleanup of existing records?
Yes. Although each request validates one VAT number, the endpoint is straightforward to use in batch jobs, data migration scripts, ETL processes, and admin tools that revalidate stored VAT data at scale.
Is the endpoint simple to integrate without an SDK?
Yes. The API uses a simple GET request with x-api-key and vat_number query parameters, and it returns a predictable JSON response. That makes it easy to integrate from frontend applications, backend services, low-code tools, and scripts in any language.