A Reliable VIES Alternative: What to Look For (and What to Avoid)
#vat#api#saas#architecture
Search for "VIES alternative" and you'll find a lot of services promising to replace the EU's VAT Information Exchange System. Before you pick one, it helps to be clear about what an "alternative" can and can't be.
There is no alternative source of truth
VAT registration data lives in 27 national tax administrations. VIES is the official, free gateway to all of them. Any service that tells you whether an EU VAT number is valid is, at some point, asking VIES (or the national system directly, which is the same data).
So a "VIES alternative" that claims its own independent database is either:
- serving a copy of old VIES answers with no indication of age, or
- guessing from the number's format and checksum alone.
Both are dangerous for tax decisions. A number can be perfectly well-formed and still deregistered last month.
What you actually want isn't an alternative to VIES. It's VIES without the pain.
The pain points worth solving
If you've integrated VIES directly, you've probably hit some of these:
- Member state outages. Individual countries go offline regularly for maintenance, often evenings and weekends. VIES returns
MS_UNAVAILABLE. - Central outages and throttling.
SERVICE_UNAVAILABLE,GLOBAL_MAX_CONCURRENT_REQ, timeouts. - No UK coverage. Since Brexit, GB numbers need HMRC's separate API with OAuth.
- Inconsistent data. Some countries return name and address, some return
---, some return multi-line addresses. - Format quirks.
ELvsGR, Belgian numbers with and without the leading0, DutchB01suffixes. - Legacy SOAP. Many examples online still use the old SOAP interface.
A checklist for a reliable VIES alternative
When evaluating a VAT validation API, ask:
Does it still use the official source?
Look for a source field (vies, hmrc) in responses. If the provider can't tell you where an answer came from, walk away.
Does it tell you when an answer is cached, and how old it is?
Caching is great for speed and reliability, but you need cached, stale and a checked_at timestamp to make your own compliance decisions.
What happens during an outage?
The right behaviour: serve the last known good result clearly flagged as stale, or return an explicit "unavailable" error. The wrong behaviour: returning valid: false, or hanging for 30 seconds.
Are errors machine-readable?
You want distinct codes like invalid_format, member_state_unavailable, service_unavailable, rate_limited, not a generic 500.
Does it cover the UK? XI (Northern Ireland) via VIES, and GB via HMRC, ideally with the same response shape. Ask whether GB is actually live.
Do you pay for failures? Many APIs bill every request, including ones that failed because the upstream was down. You should only pay for successful validations, and cached repeats should be free.
Is the pricing predictable? Monthly quotas with a visible "remaining" counter beat surprise overage bills.
How we built ours
We built the VAT & IBAN Validation API around that checklist:
- Official sources only: VIES REST API for EU + XI. GB via HMRC is coming soon (built, not yet enabled). Every response carries
source. - Local format check first: typos are rejected instantly and for free.
- 24h cache + 30-day last-known-good copy: outages return the last confirmed answer with
stale: trueand the originalchecked_at; if there's nothing cached, you get an explicit 503 withRetry-After. - Live status endpoint:
GET /statusshows which member states VIES can reach right now. - Pay only for successful validations: cache hits, stale fallbacks and errors never count. Check
GET /usageany time. - Bonus: IBAN validation (checksum, structure, bank/BIC lookup) in the same call.
- Runs on Cloudflare's edge network, so latency for cached results is low wherever your servers are.
curl -X POST https://vatpulse1.p.rapidapi.com/validate \
-H "X-RapidAPI-Key: $RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: vatpulse1.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{"vat": "NL004495445B01"}'
When you should just call VIES directly
To be fair: if you check a handful of numbers a month by hand, use the official VIES web form. If you have the engineering time to build caching, retries, outage handling, HMRC OAuth and per-country formats yourself, the VIES REST API is free.
A wrapper earns its keep when VAT checks sit in a critical path like checkout, onboarding or invoicing, and you'd rather not be paged because Germany's tax system is down on a Saturday night.
Pricing
- Free: 100 validations/month
- Basic: $19/month for 2,000
- Pro: $49/month for 10,000
Get a free API key on RapidAPI · Docs · OpenAPI
Try it free
100 validations/month. Get a free key on RapidAPI · Docs