EU-27 + UK coverage

Dependable VAT validation for EU & UK

One API for VAT number validation across the EU-27 and UK. We cache every result so repeat lookups stay fast — and stay answerable even when VIES is down.

Get notified the day we go live. No card, no spam.

terminal
# Validate a German VAT number
curl -X POST https://api.vatcore.dev/v1/validate \
  -H "Authorization: Bearer vat_live_..." \
  -H "Content-Type: application/json" \
  -d '{"country":"DE","number":"123456789"}'
200 OK
{
  "valid": true,
  "country": "DE",
  "number": "123456789",
  "name": "Example GmbH",
  "address": "Musterstr. 1, 10115 Berlin",
  "source": "vies",
  "verified_at": "2026-05-28T10:00:00Z",
  "stale": false
}
EU-27 + UK
One normalized response
Cached results when VIES is down
Hashed logs, EU-hosted

Built like infrastructure

Six things we got right so you don't have to.

One integration, every market

EU-27 plus UK in a single normalized endpoint. Same request shape, same response shape, every country.

Cache survives outages

When the tax authority is unreachable, we serve a flagged stale result for VAT numbers we've validated before. First-time lookups still depend on the source being up.

Read-through cache

Repeat lookups hit our cache, not the tax authority. A background refresher keeps hot entries warm.

Batch validation

Up to 50 numbers per request, each scored independently. One bad input never kills the batch.

Transparent errors

Clear HTTP codes (400, 402, 429, 502) you can route on. Quota problems are 402, burst-limit hits are 429 — no overloading.

EU-hosted, hashed logs

Your data stays in the EU. VAT numbers are hashed in our logs, never stored in plaintext.

Three steps to your first validation

01

Sign up & get an API key

Email verification, no card. Receive a prefixed key (vat_live_…) and 100 requests per month.

02

Call /v1/validate

One POST per VAT number. Country code and number — that's all we need. Or batch up to 50 at once.

03

Receive normalized JSON

Same response shape regardless of country. Includes name, address, source, verified_at, and a stale flag.

Honest pricing. No surprise bills.

When you hit your monthly quota, we return HTTP 402. No overage charges, ever.

Free

$0 / month

100 requests / month. Email verify, no card.

Join the waitlist

Starter

Popular
$15 / month

1,000 requests / month. For small SaaS and early traction.

Join the waitlist

Growth

$49 / month

10,000 requests / month. For real e-commerce volume.

Join the waitlist

Business

$129 / month

50,000 requests / month. For platforms and marketplaces.

Join the waitlist

Frequently asked questions

Where does the data come from?

VIES (the European Commission's VAT Information Exchange System) for the EU-27, and HMRC for the UK. We do not invent data — we wrap the official sources behind a uniform, reliable interface.

What happens when VIES is down?

For VAT numbers we've validated before, we serve the cached result with a stale: true flag and a last_verified_at timestamp — your checkout keeps working. For first-time lookups during an outage, we return HTTP 502 so you can decide how to handle it.

Is it GDPR-compliant?

Your data stays in the EU. VAT numbers are hashed in our logs, never stored in plaintext. We provide a documented right-of-erasure process for VAT numbers belonging to sole traders.

Can I cancel anytime?

Yes. Self-serve, cancel from your dashboard, no phone call required. Your quota stays available through the end of the current billing period.

Do you support sole-trader VAT numbers?

Yes. VIES and HMRC return registration data the same way regardless of business structure. Note that sole-trader VAT numbers are personal data under GDPR, which is why we hash them in logs.

Be first when we go live

We're building this in public. Drop your email and we'll let you know the day the API is open for signups.