Is VIES Down? › TIMEOUT
VIES timeouts
A VIES timeout means no answer arrived before your deadline. The request may still have been processed upstream, which is what makes timeouts trickier than explicit errors.
No member state reported TIMEOUT in our latest check, as of 2026-09-24 05:45 UTC. Your own request may still get a different answer. See the live board →
What it means
A timeout is not something VIES returns. It is the absence of any answer inside the time you were willing to wait, and it happens when a member state's database is slow rather than down, when VIES is queuing behind a backlog, or when the network path is having a bad day.
Timeouts are harder to handle well than explicit errors, for one reason: you do not know whether the request was processed. A lookup is a read, so retrying is perfectly safe โ but you cannot infer a single thing about the VAT number from the silence.
Two traps to watch for. First, VIES returns HTTP 200 even for its own error envelopes โ {"actionSucceed": false, "errorWrappers":[{"error":"..."}]} โ so code that only checks the status code will read a member-state failure as a success and then trip over a missing valid field. Second, default HTTP client timeouts are usually far too generous. A 60-second hang is worse for your users than a fast, honest "unknown".
Which member states return TIMEOUT most
| Member state | Occurrences (7d) | Share |
|---|---|---|
| Denmark DK | 134 | 77.91% |
| Czechia CZ | 13 | 7.56% |
| France FR | 7 | 4.07% |
| Germany DE | 5 | 2.91% |
| Finland FI | 4 | 2.33% |
| Lithuania LT | 2 | 1.16% |
| Austria AT | 1 | 0.58% |
| Spain ES | 1 | 0.58% |
| Latvia LV | 1 | 0.58% |
| Malta MT | 1 | 0.58% |
| Poland PL | 1 | 0.58% |
| Portugal PT | 1 | 0.58% |
| Romania RO | 1 | 0.58% |
172 occurrences of TIMEOUT observed across all member states in the last 7 days, from our own 5-minute checks. Monitoring began 2026-08-09.
What to do about it
- Set an explicit timeout of about 10 seconds. A healthy VIES lookup normally comes back in well under a second, and a slow member state in a few. Past ten seconds, waiting rarely pays off.
- Always parse the body โ never just the status code. Check for
actionSucceed === falseand readerrorWrappers[0].errorbefore you go anywhere nearvalid. - Retry idempotently with backoff. Validation is a read, so retrying cannot break anything.
- Fail to "unknown", never to "invalid". Silence is not a negative result.
- Do the work asynchronously wherever you can, so a slow member state never blocks a user-facing request.
Frequently asked questions
What timeout should I use for VIES?
Around 10 seconds is the sweet spot. Most successful lookups return in under a second, and slow member states in a few. Waiting longer mostly turns a fast unknown into a slow unknown.
Does a VIES timeout mean the VAT number is invalid?
No โ a timeout carries no information about the number whatsoever. Record it as unknown and retry.
Why does VIES return HTTP 200 when it fails?
Annoying, but consistent: the REST API reports application-level failures inside the response body, as {"actionSucceed": false, "errorWrappers": [{"error": "..."}]}, while still returning a 200 status. You have to parse the body to spot failures.
Is it safe to retry a VIES request after a timeout?
Yes, completely safe. A VAT validation is a read-only lookup, so a retry cannot cause a duplicate side effect. Use exponential backoff with jitter.
Hit a different error?
MS_UNAVAILABLEโ MS_UNAVAILABLE means VIES could not get an answer from the country holding the VAT number.MS_MAX_CONCURRENT_REQโ MS_MAX_CONCURRENT_REQ means a member state is already handling as many simultaneous VIES lookups as it will take.GLOBAL_MAX_CONCURRENT_REQโ GLOBAL_MAX_CONCURRENT_REQ means the VIES front end โ not one member state โ is handling as many simultaneous requests as it will take.
← Live VIES status for all 28 VIES endpoints
Get an alert when a VIES endpoint goes down
One email when a endpoint stops answering, one when it recovers, and at most one alert per member state every 6 hours โ VIES flaps, and we would rather be useful than constant. You will get a confirmation mail immediately, and every message has a one-click unsubscribe.
We store your address, the country code, a timestamp and a record of this signup. Nothing else, no newsletter, and we do not share it.
Building EU invoicing?
We also make Attestwire, an EN 16931 validation API. Post an invoice as JSON or UBL/CII XML and get back the rule it breaks and how to fix it. Free tier, 100 docs/month, no card needed.
api.attestwire.com/docs ยท check.attestwire.com โ our free French e-invoicing readiness checker.