VIESHMRCBFSBrønnøysundABRin one API

VAT number validation API for developers

One API for validating VAT and GST numbers across 32 countries. VIES goes down, your app stays up. Real-time lookups, automatic retries, typed SDKs, and built-in caching.

Free 500 validations/month · No credit card required

curl https://api.avatcado.com/v1/validate?vat_number=NL123456789B01 \
  -H "Authorization: Bearer avat_live_..."

Enter a VAT number to see the live API response

Also available as a standalone free VAT checker

Everything you need

Validate, look up rates, and process in bulk.

VAT Validation

Validate any EU, UK, Swiss, Norwegian, or Australian VAT/GST number against VIES, HMRC, BFS, Bronnoysund, and ABR. Every response includes validity status and company details where the registry discloses them, plus consultation numbers when you supply a requester VAT number.

VAT Rates

Current standard, reduced, and zero rates for all 32 supported countries. Free and unlimited, no quota impact.

Batch Validation

Validate up to 50 VAT numbers in a single request. Deduplicated counting, per-item error handling. Pro and Business plans.

Developer-first experience

Built by developers, for developers.

Structured Errors

Every error returns a machine-readable code, a human-readable message, and a link to the relevant docs page.

Test Mode

Ship with confidence. Test keys return deterministic responses with no rate limits and no quota usage.

Complete Docs

OpenAPI spec, per-error-code documentation, and typed SDKs for Node.js (@avatcado/node) and Python (avatcado) with copy-paste examples.

Reliable at scale

Your integration stays up, even when upstream services don't.

Caching & Automatic Retries

Repeat lookups resolve in milliseconds. When VIES, HMRC, BFS, or ABR is flaky, Avatcado retries automatically with backoff, so no retry logic is needed in your code.

Predictable Rate Limits

Clear rate limit headers on every response. Burst-friendly defaults with transparent 429 behavior.

EU Infrastructure

EU-hosted on Vercel, close to the upstream registries. Automatic TLS, DDoS protection, and global CDN delivery for static assets.

Simple, transparent pricing

Start free with a production-ready VAT validation API. Validate VAT and GST numbers across 32 countries via VIES, HMRC, and more. Upgrade when you need higher limits, batch processing, or webhooks.

Free

Start here
€0forever

Includes

  • 500 validations/month
  • 20 req/min burst rate
  • 2 API keys
  • EU, UK, CH, LI, NO + AU VAT/GST validation
  • Consultation numbers
  • Test mode
  • VAT rates (unlimited)
  • Cached responses on outages
  • Email support

Pro

When you scale
€39/month

or €29/mo billed annually (€348/yr)

Everything in Free, plus

  • 10,000 validations/month
  • 60 req/min burst rate
  • 10 API keys
  • Batch validation
  • Webhook support
  • Async validation (up to 200/batch)
  • Priority email support

Business

High volume + Slack support
€129/month

or €99/mo billed annually (€1,188/yr)

Everything in Pro, plus

  • 50,000 validations/month
  • 120 req/min burst rate
  • 100 API keys
  • Async validation (up to 1,000/batch)
  • Priority email support + Slack support

Prices exclude VAT. VAT is added at checkout based on your billing location. See terms.

Supported Regions

One API, one endpoint. Avatcado routes each request to the correct government source automatically.

European Union

27 member states. Real-time VIES (VAT Information Exchange System) lookups for EU VAT validation. Validate any European VAT number and get company name, address, and consultation numbers. Handles VIES downtime with 25-day response caching.

United Kingdom

HMRC VAT validation. Verify GB VAT numbers against HMRC's official database for reliable UK VAT number lookup. Supports consultation numbers when a valid UK requester VAT number is provided. Full GB VAT verification in one call.

Switzerland & Liechtenstein

BFS UID Register validation. Validate Swiss VAT numbers (CHE format) and check MWST/TVA/IVA registration status. Covers both Swiss and Liechtenstein businesses through the official UID Register.

Norway

Bronnoysund Register Centre. Validate Norwegian VAT numbers (MVA format) and confirm VAT registration status for Norwegian businesses. Direct lookups against the official Bronnoysund Register.

Australia

Australian Business Register (ABR). ABN validation and GST registration lookup. Send an 11-digit ABN to the same /v1/validate endpoint and get business name, status, and GST registration. Full ABN lookup API in one request.

Why not just use VIES directly?

VIES works, but building a production integration around it is a different story.

VIES is a SOAP-first service

XML request/response, inconsistent schemas across member states, no typed responses. The Commission also runs a REST endpoint, but it shares the same upstream quirks. Avatcado gives you a modern REST API with JSON, structured errors, and typed SDKs for TypeScript and Python.

VIES only covers EU

Need UK VAT validation? Swiss VAT validation? Australian GST validation? You would need to integrate HMRC, BFS UID Register, Bronnoysund Register, and ABR separately. Avatcado wraps all 5 government sources in one endpoint for tax ID validation across 32 countries.

VIES has no caching or retry logic

Member state services go down regularly. When a country's tax office is offline, VIES returns an error. Avatcado caches responses for 25 days and retries automatically with backoff, so VIES downtime does not break your application.

No test mode, no rate limiting, no SDKs

VIES has no keyed sandbox, no magic test numbers, no predictable rate limits, and no official SDKs. Avatcado provides test mode with magic numbers, clear rate limit headers, and a typed TypeScript SDK. Build and test your VIES VAT number validation without hitting production services.

Frequently asked questions

Avatcado includes a built-in 25-day response cache. If VIES is temporarily unavailable for a specific country, cached results are returned with meta.cached: true so your application stays functional. If no cached data exists, you'll receive a clear 503 error with a machine-readable error code. Never a silent failure. See our live VIES uptime data for current reliability metrics.
In our monitoring, fresh VIES lookups typically take 1-3 seconds depending on the member state; cached responses return from cache in milliseconds. UK (HMRC) lookups are consistently fast. Every response includes timing metadata so you can monitor performance in your own systems.
All 27 EU member states (via VIES), the United Kingdom (via HMRC), Switzerland and Liechtenstein (via the BFS UID Register), Norway (via the Bronnoysund Register), and Australia (via ABR). 32 countries total. One endpoint, one response format.
Yes. The /v1/rates endpoint returns current standard, reduced, and zero rates for all 32 supported countries. It's free and unlimited on all tiers, including Free. Rates don't count against your monthly validation quota.
Yes, 500 validations per month, no credit card required. The free tier uses the same API, same response format, and same caching as paid plans. Upgrade when you need higher volume.
Use a test-mode API key (prefixed avat_test_) and magic VAT numbers to simulate valid, invalid, and error responses. Test mode never hits VIES, HMRC, BFS, Bronnoysund, or ABR, so your integration tests are fast and deterministic. See the docs for the full list of magic numbers.
VIES is a SOAP-first service (the Commission also runs an official REST API) with inconsistent availability across member states, no UK support, and no caching. Avatcado wraps VIES, HMRC, the Swiss UID Register, the Norwegian Bronnoysund Register, and the Australian ABR in a modern REST API with JSON responses, built-in caching, rate limiting, error handling, typed SDKs for TypeScript and Python, and test mode. You don't have to build and maintain that infrastructure yourself.
No. One API key, one endpoint. Avatcado detects the country from the VAT/GST number prefix and routes to VIES, HMRC, BFS, Bronnoysund, or ABR automatically.
Yes. Since January 1, 2020, a valid VAT number is a material requirement for applying the 0% VAT rate on intra-Community supplies within the EU. If you sell B2B cross-border and apply the reverse charge mechanism, you must verify your customer's VAT number. If the number is invalid and you zero-rated the transaction, you are liable for the VAT. Reverse charge VAT validation should be part of every B2B checkout flow. VAT numbers can be deactivated or revoked at any time, so regular revalidation is recommended. Avatcado returns consultation numbers on every EU validation where you supply your own VAT number as requester, giving you timestamped proof of verification that tax authorities accept as evidence of due diligence.
A consultation number is a unique reference returned by VIES when you validate an EU VAT number. It proves that you checked the number on a specific date and received a specific result. If a tax authority questions a zero-rated intra-Community supply, the consultation number is your evidence that you verified the buyer's VAT status. Avatcado returns consultation numbers automatically on every EU validation where you supply your own VAT number as requester. Store them alongside each transaction for audit readiness.
VATlayer only supports EU VAT validation. VATsense covers more regions but does not offer a test mode. Avatcado validates across EU, UK, Switzerland, Norway, and Australia with a single API. Every plan includes a typed TypeScript SDK, deterministic test mode, structured error codes, and built-in caching. See the full API comparison, or the dedicated vatlayer and VATsense comparison pages, for details.
Yes. Avatcado is a standalone API, independent of your payment provider. Stripe only validates EU, UK, and Australian tax IDs and only within their billing flow. Mollie and Adyen do not offer a customer VAT validation API. Avatcado works with any payment setup and can be used at signup, in CRM flows, for compliance checks, or anywhere you need to verify a VAT/GST number. See the integration guides for Stripe, Mollie, and Adyen.
An ABN (Australian Business Number) is an 11-digit identifier for Australian businesses. Avatcado validates ABNs against the Australian Business Register (ABR) and returns the business name, status, and whether the business is registered for GST. Send the 11-digit ABN to the same /v1/validate endpoint you use for EU VAT numbers. ABN validation and GST validation work the same way as any other country.
Yes. The async validation endpoint accepts a VAT number or a batch of up to 200 (Pro) or 1,000 (Business) numbers, returns immediately, and delivers the result to your webhook URL when validation completes. This is useful for large batch processing, checkout flows where you want to avoid latency, and resilience against VIES downtime. If a country's service is temporarily unavailable, Avatcado queues the request and retries automatically. Webhooks and async validation are available on Pro and Business plans.
Yes. The /v1/validate/batch endpoint accepts up to 50 VAT/GST numbers in a single request. Each item is validated independently with per-item error handling. Batch validation is available on Pro and Business plans. Each unique number in a batch counts as one validation against your monthly quota (duplicates are deduplicated).