EU VAT validation API

Frequently Asked Questions

Answers to common questions about validating EU VAT numbers with vatnode — getting started, coverage, reliability, plans, and how we handle data.

Getting started

What is vatnode?▾

vatnode is an EU VAT number validation API. It checks a VAT ID in real time against the official EU VIES system and returns the validity result, company details, VAT rates and a timestamped audit reference as JSON.

Read the full answer →
How do I get my first API key?▾

Create a free account and you get a working API key in the dashboard straight away, no credit card. New accounts start with a test key; create a live key when you are ready for real checks.

Read the full answer →
What’s the difference between test and live keys?▾

Test keys accept only XX-prefixed VAT numbers and return fixed fixture responses with no VIES call and no quota use. Live keys validate real VAT IDs against VIES and count toward your monthly quota.

Read the full answer →
How do I authenticate requests?▾

Send your API key as a Bearer token in the Authorization header. Keys are created, named and revoked in the dashboard, and a live key belongs on your server, never in client-side code.

Read the full answer →
Do I need a credit card to try vatnode?▾

No. The Free plan includes monthly live validations with no card, enough to build and test a complete integration.

Read the full answer →

Validation & accuracy

Why do I need to validate EU VAT numbers for B2B sales?▾

Zero-rating an intra-EU B2B supply depends on the customer having a valid EU VAT number at the time of supply, and on you being able to evidence the check. Without that evidence the tax authority can assess the VAT against you.

Read the full answer →
How accurate is the validation?▾

vatnode queries VIES in real time, so accuracy is that of the EU system: a valid result means the number was registered and active at the moment of the check. Valid results are cached for 15 minutes, and the source field tells you which you got.

Read the full answer →
Does it work for sole traders and one-person businesses?▾

Yes. VIES validates a VAT-registered sole trader the same way as a company. Whether a name and address come back depends on the country's data policy, not on the legal form.

Read the full answer →
What is the VIES consultation number, and do I need it?▾

It is the requestIdentifier VIES issues for a specific check, the EU-side proof that the check was made. vatnode returns it once you set your own EU VAT number as the requester in dashboard Account details.

Read the full answer →
Does vatnode do more than just call VIES?▾

Yes. Besides the VIES verdict, vatnode adds national-registry data for several countries, keeps answering for those countries during VIES outages, and returns the VAT rates for the company's country in the same call.

Read the full answer →

Coverage

Which countries are supported?▾

Live validation covers the 27 EU member states plus Northern Ireland (XI), all through VIES. Greece uses EL, as in VIES.

Read the full answer →
Can I validate UK, Norwegian, or Swiss VAT numbers?▾

No. GB, NO and CH are outside VIES, so vatnode does not validate their VAT numbers. Northern Ireland businesses use the XI prefix and are validated through VIES.

Read the full answer →
Why do some valid numbers come back without a company name or address?▾

Some member states, Germany and Spain among them, confirm validity through VIES but never return trader details. That is the country's data policy, and vatnode fills gaps from national registries where their policy allows it.

Read the full answer →

Reliability & errors

What happens when VIES is temporarily unavailable?▾

vatnode first tries a national-registry fallback for supported countries, and otherwise returns HTTP 503 with VIES_UNAVAILABLE. That is not an invalid result, so retry later instead of rejecting the customer.

Read the full answer →
How do I tell an invalid VAT number apart from an error?▾

A well-formed number that is not registered returns HTTP 200 with valid: false. Errors carry a machine-readable code, for example INVALID_FORMAT or VIES_UNAVAILABLE, and a requestId.

Read the full answer →
Does vatnode have an uptime SLA?▾

vatnode does not publish a numeric uptime SLA on its self-serve plans. The status page shows live health and 30-day VIES uptime by country, and Enterprise customers can request a custom SLA.

Read the full answer →
Are there rate limits or a per-second cap?▾

There is no per-second or per-minute rate limit, only the monthly quota. Each response carries RateLimit-* headers so you can track your headroom.

Read the full answer →

Plans & billing

What plans are available?▾

Free, Starter, Pro and Enterprise. Free is 100 requests a month with no card; Starter is €19/month and Pro €49/month, each with more requests and VAT monitoring with webhooks. Enterprise limits are on request.

Read the full answer →
What counts as an API request?▾

Only calls to the validation endpoint count against your monthly quota. The rates endpoint, dashboard calls, and requests that end in INVALID_FORMAT, VIES_UNAVAILABLE or a quota 429 are not charged.

Read the full answer →
Do cached responses count against my quota?▾

Yes. Every validation call counts, whether the answer came from VIES or from vatnode's 15-minute cache. To save quota, cache successful results in your own application.

Read the full answer →
What happens when I hit the Free limit?▾

Further validation calls return HTTP 429 (RATE_LIMITED) until the quota resets next month. There is no overage on Free; upgrading takes effect immediately.

Read the full answer →
What happens if I go over the limit on Starter or Pro?▾

Paid plans keep processing past the included quota, and the extra requests are billed as pay-as-you-go overage with no cap. The dashboard shows live usage and you get an email at 80% of the quota.

Read the full answer →
Can I upgrade or downgrade my plan?▾

Yes, from the dashboard at any time. Upgrades take effect immediately and downgrades at the start of the next billing cycle.

Read the full answer →
How does billing and invoicing work?▾

Payments go through Mollie by card, and vatnode issues its own sequential invoices as PDFs in the dashboard. Prices exclude VAT; EU businesses with a valid VAT number are invoiced under the reverse charge.

Read the full answer →
Can I get a refund or cancel?▾

You can cancel any time from the dashboard and the subscription stays active until the paid period ends. Fees are generally non-refundable, with goodwill refunds for billing errors, documented outages and an early-trial window.

Read the full answer →

Data & compliance

Is a Data Processing Agreement (DPA) available?▾

Yes. The standard GDPR Article 28 DPA is incorporated automatically into any paid plan, and Enterprise customers can request a countersigned copy.

Read the full answer →
Where is my data hosted, and who operates vatnode?▾

vatnode is operated by TMI Iurii Rogulia in Finland, and all infrastructure runs on servers in Frankfurt, Germany. The subprocessor list is published.

Read the full answer →
Do you store the VAT numbers I validate?▾

Your own checks are kept as your audit history for as long as your account is active, and nobody else can see them. You can request export or deletion at any time.

Read the full answer →
Is vatnode suitable for tax audit purposes?▾

The VIES consultation number is the part that comes from VIES, and you get it once you set your own EU VAT as the requester. checkId and verifiedAt are vatnode's own references and are not evidence by themselves.

Read the full answer →

Integrations

Can AI agents use vatnode?▾

Yes. vatnode publishes an official MCP server, vatnode-mcp, that works with MCP-compatible clients such as Claude, Cursor and ChatGPT. Only live validation needs an API key.

Read the full answer →
Can I get notified when a customer’s VAT status changes?▾

Yes. On Starter and above you can add a VAT number as a monitoring subscription, and vatnode re-validates it daily and fires a webhook when something changes.

Read the full answer →
How do I reach support?▾

Email [email protected] from the address on your account, and include the requestId from the API response when the issue concerns a specific call.

Read the full answer →