vatnode vs VATcomply — what you outgrow when free isn't enough

The free tier is VATcomply's entire pitch — a public, no-account VIES wrapper that returns valid/invalid plus a basic rate. For a side project or a one-off checkout flow it is a perfectly reasonable choice, and this page does not argue otherwise. The question this comparison answers is the next one: at what point does the free tier stop being enough, and what does the step up to a paid product actually unlock. According to VATcomply's public documentation as of 2026-05, there is no published uptime SLA, no monitoring layer, no webhook delivery and no VIES consultation number on the response. vatnode is what you replace it with when any of those four limits starts blocking production.

Last updated: May 2026

Why this comparison matters

This is a deliberate "free vs paid" comparison, framed around the four things a free tier cannot give you: an SLA, monitoring, webhooks and an audit reference. If your use case does not need any of those, stop here and use VATcomply.

When the free tier is the right answer

VATcomply is well suited to a low-volume, manual-checkout scenario where the cost of a missed validation is a refunded order rather than an audit finding. There is no registration, no key management, no billing relationship — just a public endpoint. That simplicity is the product.

vatnode does not try to win that scenario. Where vatnode wins is the next scenario: a production billing system where the validation result feeds an invoice, where you need to be notified if a customer's VAT registration is revoked between two invoices, and where you need a stored audit reference per check.

What one validation call returns

GET /v1/vat/FI26364843
{
  "valid": true,
  "vatId": "FI26364843",
  "countryCode": "FI",
  "countryName": "Finland",
  "companyName": "SUPERCELL OY",
  "companyAddress": "JÄTKÄSAARENLAITURI 2, 00180 HELSINKI",
  "companyRegistrationDate": "2010-05-06",
  "companyForm": "Oy",
  "industryDescription": "Publishing of computer games",
  "registryCode": "2336509",
  "registryCodeName": "Y-tunnus",
  "source": "VIES",
  "checkId": "019d2a8c-5f3a-7d12-a901-bc23de456f78",
  "verifiedAt": "2026-04-16T10:00:00.000Z",
  "consultationNumber": "WAPIAAAAZ27qPadm",
  "countryVat": {
    "vatName": "Arvonlisävero",     // print on Finnish invoices
    "vatAbbr": "ALV",
    "currency": "EUR",
    "standardRate": 25.5,
    "reducedRates": [10, 14],
    "superReducedRate": null,
    "parkingRate": null,
    "vatNumberFormat": "FI + 8 digits",
    "vatNumberPattern": "^FI\d{8}$",
    "countryVatUpdatedAt": "2026-04-16"
  }
}
Company enrichment — not in VATcomplycountryVat block — not in VATcomplyconsultation number — not in VATcomply

Feature Comparison

FeaturevatnodeVATcomply
Local VAT name in response (Mehrwertsteuer, Taxe sur la Valeur Ajoutée, Arvonlisävero…)
VAT abbreviation (MwSt, TVA, ALV…)
Super-reduced rate in response
Parking rate in response
Currency (EUR, BGN, HUF…) in response
VAT number format + regex pattern in response
National registry fallback + enrichment (tax authority & company registry APIs)
VIES consultation number (EU-issued audit reference) in API response
Webhook: VAT_BECAME_INVALID
Webhook: COMPANY_NAME_CHANGED
Webhook: COMPANY_ADDRESS_CHANGED
Audit trail (checkId + verifiedAt timestamp)
EU VAT validation (VIES)
Company name + address
Company registration date (national registry)
Legal form (GmbH, SAS, AB…)
Industry description (NACE/SNI code)
Standard + reduced rates in response
HTTPS on all plans
VAT monitoring + webhooksFrom €19/mo
Uptime SLA99.9%Not published
Free tier100 req/moFully free
Entry paid plan€19/mo — 1,000 req/mo

National registry integrations

When VIES is unavailable or returns no company data, vatnode automatically queries the national business registry. These countries are currently covered:

🇩🇪 Germany

BZSt eVatR

🇫🇮 Finland

PRH / YTJ

🇫🇷 France

Annuaire-Entreprises

🇸🇪 Sweden

Bolagsverket

🇩🇰 Denmark

CVR

🇨🇿 Czechia

ARES

🇷🇴 Romania

ANAF

🇵🇱 Poland

MF White List

🇧🇪 Belgium

CBE / KBO

🇳🇱 Netherlands

KVK

🇱🇻 Latvia

UR via JARS

🇱🇹 Lithuania

JAR via JARS

🇸🇮 Slovenia

AJPES

VATcomply queries VIES only. When the VIES node for a country is down, you get an error. The source field in every vatnode response tells you which authority answered — VIES, BZST, PRH, SIREN, and so on.

Granular webhook events

Subscribe to any VAT number and get notified the moment something changes — so your customer records and invoice settings stay accurate without manual re-checking.

VAT_BECAME_INVALID

Customer's VAT registration lapsed — stop applying reverse charge immediately

VAT_BECAME_VALID

Previously invalid number reactivated — update invoice settings

COMPANY_NAME_CHANGED

Legal name changed — update your customer records and invoices

COMPANY_ADDRESS_CHANGED

Registered address changed — update your records for compliance

Rate-data freshness on a free tier

EU VAT rates move — Finland raised its standard rate from 24% to 25.5% in September 2024. VATcomply does not publish a changelog or a rate-update cadence; on a free tier there is no commercial obligation to keep one. vatnode pulls from the European Commission TEDB on a daily cron and exposes a per-country countryVatUpdatedAton every response so you can verify freshness yourself.

Compliance artefacts a free wrapper cannot return

Every vatnode response includes a checkId (UUID) and a verifiedAt timestamp. These fields are designed to be stored alongside your invoice records — giving you a documented audit trail that links every invoice to the exact validation event that authorised it.

VATcomply validates the number and returns standard and reduced rates, but provides no audit metadata. There is no checkId to attach to an invoice, no timestamp proving when the check occurred, and no indication of which authority responded. When a tax inspector requests evidence of due diligence at the time of supply, a valid/invalid boolean is not sufficient.

Tax authorities across the EU increasingly expect documented validation at the point of transaction — not retroactive checking. The checkId and verifiedAt fields, combined with vatnode's national registry fallback, mean you can demonstrate that you queried an authoritative source at the right moment — with a record to prove it.

Try vatnode free — no credit card required

100 free API calls per month. See the full response schema for yourself.