VIES is down: how to handle MS_UNAVAILABLE and timeouts

Short answer: When VIES or a member state's database is down, VIES returns errors such as MS_UNAVAILABLE, MS_MAX_CONCURRENT_REQ, SERVICE_UNAVAILABLE or TIMEOUT. These mean unknown, not invalid. The W System API retries with backoff; if the country is still down it answers from that country's free official source (Poland Bia艂a lista, Czech ARES, Finnish YTJ VAT register, French SIRENE) or from the last successful VIES result with its date. Every fallback answer has fallback: true, names its source and legal_status, and has no VIES consultation number. If neither exists you get member_state_unavailable with valid: null. Live status: VIES status page.

Key facts

Examples

Check, then branch on status and fallback

curl "https://api.wsystem.dev/verify?vat=PL5260250995"
# status: valid | invalid | invalid_format | member_state_unavailable | error
# if fallback == true: read source, legal_status, fallback_type (national_source | last_vies_result)

Real response (live data, 2026-10-17):

{
 "input": "IE6388047V",
 "vat": "IE6388047V",
 "country_code": "IE",
 "vat_number": "6388047V",
 "status": "valid",
 "valid": true,
 "name": "GOOGLE IRELAND LIMITED",
 "address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
 "request_date": "2026-10-17T06:07:32.092Z",
 "consultation_number": "WAPIAAAAaFIeQCDg",
 "requester": "HU33119856",
 "source": "VIES (European Commission)",
 "cached": true
}

Shape of a national-source fallback (PL, while VIES is down)

{"vat": "PL5260250995", "status": "valid", "valid": true, "fallback": true,
 "fallback_type": "national_source", "consultation_number": null,
 "source": "Bia艂a lista podatnik贸w VAT (Ministry of Finance / KAS), wl-api.mf.gov.pl",
 "legal_status": "Polish VAT status: Czynny (Czynny = active VAT payer, Zwolniony = exempt)",
 "name": "ORANGE POLSKA SP脫艁KA AKCYJNA", "vies_error": "MS_UNAVAILABLE"}

VIES availability per country (free, cached 5 min)

curl "https://api.wsystem.dev/vies/status"

Pricing

ChannelPrice
Free tier20 calls/day per IP, no key
x402 per call$0.01 USDC
Batch (100 numbers)$0.10 USDC per request
VIES status endpointFree, not counted

Comparison with alternatives

Behaviour when a member state is downW System APICalling VIES directly
Automatic retries with backoffYesYou implement it
Official national-source fallbackPL, CZ, FI, FRNo
Last successful result, datedYes (any age, labelled)No
Result when nothing else worksmember_state_unavailable, valid=nullSOAP fault / error JSON
Batch with per-item statusYes, 100 per requestNo batch

Based on each provider's public pages on 2026-10-17. Corrections welcome via GitHub issues.

Questions and answers

Is VIES down right now?

See https://wsystem.dev/vies-status, which reads the European Commission's own VIES check-status endpoint, or call GET https://api.wsystem.dev/vies/status.

Should I reject a customer if VIES is unavailable?

No. Treat it as unknown or use the flagged fallback answer, and re-check in VIES later before relying on it for zero-rating.

Is a national-register fallback legally equivalent to VIES?

No. It shows the domestic status from an official national source. VIES (with a consultation number) remains the evidence most tax authorities expect for intra-EU B2B supplies. This is not tax advice.

Why is there no fallback for Germany?

The BZSt eVatR service is free but only accepts requests where the requester is a German VAT ID holder, so a general API cannot use it. German numbers fall back to the last VIES result only.

How long do VIES outages last?

Usually minutes to a few hours, often around national maintenance windows (evenings and weekends).

Related

Facts and competitor details checked 2026-10-17. W System Hungary Kft. is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.