TIMEOUT VIES error: what it means and what to do

Retried by AvatcadoAvailability error
By Remco from Avatcado

TIMEOUT means VIES did not receive a reply within the time it allows, so the check did not complete and says nothing about the VAT number. Retry with backoff and keep the result pending. Set your own HTTP timeout too, so a VIES call that never answers does not hold your request open.

The application did not receive a reply within the allocated time period, try again later.

VIES checkVatService WSDL (fault list)

What it means

VIES documents TIMEOUT as the application not receiving a reply within the allocated time period, and asks you to try again later. The fault arrives as a VIES response, which tells you VIES was reachable and the check itself did not finish.

What causes it

VIES's documentation does not name the party that was too slow. A timeout on your side can also come from your own HTTP client giving up while it waits for VIES, which is a different event with no VIES fault in it. Avatcado records both under the same code and keeps them apart by whether an HTTP status came back.

How to handle it

  • Treat the result as unknown, never as invalid.
  • Set a client-side timeout on every VIES call so an unanswered request fails instead of hanging. Avatcado uses 30 seconds.
  • Retry with backoff, stop after a bounded number of attempts, then queue the check.
  • Log whether the timeout came from VIES (a TIMEOUT fault in the response) or from your own client (no response at all), because the two point at different problems.

What Avatcado does when VIES returns TIMEOUT

Avatcado retries TIMEOUT inside the same request, with a short pause and random jitter between attempts. Avatcado gives every VIES call 30 seconds, records TIMEOUT in both cases, and retries both inside the request. When the last answer is a TIMEOUT fault from VIES and nothing else can answer, the request ends in a 503 with the code upstream_member_state_unavailable. When the last call ran into Avatcado's own 30 second limit and the request still finishes without an answer, the code is upstream_unavailable.

If VIES still has no answer, Avatcado asks the country's national tax register on the Pro and Business plans, for the 10 EU countries that have one (listed on the coverage page), and on every plan it falls back to the most recent stored result for that number. When neither can answer, the API returns a 503 with the code upstream_member_state_unavailable or upstream_unavailable, and the call does not count against your quota. A check that ends in an availability error is never stored as an answer. A request that carries requester_vat_number skips both fallbacks by default, because a consultation number has to come from a completed VIES check.

Those codes need the request to finish. When VIES hangs on every call, the retries at 30 seconds each add up to more than the API's own time limit for a request, so the request can be cut off before the retries end and then gets neither code.

How often Avatcado sees TIMEOUT

From the VIES calls Avatcado made for customer API keys in the last 90 days, with test keys and the demo checker left out. Each request counts once, however often Avatcado retried it: shares count requests, and rates count each request's first call to VIES. A request can meet more than one of these errors while it is retried, so the shares across codes can add up to more than 100%.

3.6% / of requests with a VIES availability error
51.7 / per 10,000 first calls to VIES
68.4% / answered after a retry
100% / of TIMEOUT requests with no HTTP response
November 13, 2026 / last seen
  • Answered after a retry: of the requests that hit TIMEOUT at least once, the share that still got a valid or invalid verdict from VIES later in the same request. A request that ended on another VIES error is not counted.
  • With no HTTP response: of the requests that hit TIMEOUT, the share in which at least one call ran into Avatcado's own 30 second limit before VIES answered. In the rest, every TIMEOUT came back from VIES as a fault.
  • Requests cut off by the API's own time limit before they finished are not recorded, so they are missing from these figures.

Where it happens

Countries with at least 5 requests that hit TIMEOUT, up to 8, ranked by their share of those requests. The last column is the country's own rate per 100 first calls to VIES.

CountryShare of TIMEOUT requestsPer 100 first calls
Germany32.7%0.6%
France21.6%0.4%
Portugal9.9%0.6%
Sweden9.9%0.6%
Denmark9.4%0.9%
Italy5.3%1.1%
Belgium4.1%0.4%

Week by week

TIMEOUT per 100 first calls to VIES in each of the last 13 weeks.

Frequently asked questions

Is a VIES TIMEOUT fault the same as my HTTP client timing out?

No. A TIMEOUT fault is a response VIES sends, so your connection to VIES worked and the check behind it did not finish in time. A client-side timeout means no response arrived at all. Avatcado records both as TIMEOUT and tells them apart by whether an HTTP status came back, and the figures on this page split them the same way.

Should I raise my timeout when VIES returns TIMEOUT?

Raising your own timeout does not help with a TIMEOUT fault, because VIES has already answered by the time you see it. It can help when your client gives up before VIES replies at all. Avatcado allows 30 seconds per VIES call and retries a TIMEOUT within the same request.

Keep reading

Sources

Validate VAT numbers with the retries and fallback built in.

National register fallback on Pro and Business. Free tier: 500 validations a month.