No registration or API key is required for the official VIES REST API; send a POST request to https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number with a JSON body containing countryCode (2-letter ISO) and vatNumber (digits only, no country prefix).
Parse the JSON response: the valid boolean field indicates whether the VAT number is currently registered; the name and address fields are returned when the member state makes them available, but many states do not supply these.
For testing purposes, use the test service endpoint at https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-test-service which returns predictable responses for known test VAT numbers without hitting live member-state systems.
Handle non-200 responses gracefully: VIES returns specific error codes when a member state's system is temporarily unavailable (MS_UNAVAILABLE) — log these as inconclusive rather than invalid and retry after a delay.
For SOAP-based integration, the WSDL is available at https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl; the checkVat operation accepts countryCode and vatNumber and returns a valid boolean plus optional name and address.
Retain the full API response including the requestDate for audit purposes; a valid response at a recorded timestamp provides evidence of due diligence for zero-rate VAT treatment in cross-border transactions.
Known gotchas
The VIES service is federated — it queries each member state's own VAT database in real time; member-state systems go offline for maintenance and return MS_UNAVAILABLE errors that must be treated as inconclusive, not as invalid VAT numbers.
Some member states do not return trader name and address data even for valid VAT numbers; absence of name/address in the response does not indicate an invalid number.
The VIES system may experience maintenance windows; a scheduled outage is confirmed for 15 June 2026 — build retry logic with appropriate back-off rather than treating a maintenance-window failure as a definitive invalidation.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp