vatnode vs Vatstack — when you need VIES validation, not subscription monitoring

Vatstack positions itself around automation — recurring rate snapshots, subscription billing flows, scheduled re-validation as a managed product. That is useful if the project you are building is a subscription billing engine. If what you actually need is a clean REST endpoint that returns a VIES consultation number on every call, plus the local VAT name, abbreviation, currency and all four rate tiers your invoice template needs, the weight of a full automation platform gets in the way. vatnode is API-first: one call, one structured payload, a documented audit reference per response. This page contrasts the two scopes so you can pick the one that matches the system you are actually building.

Last updated: May 2026

Why this comparison matters

Vatstack and vatnode look similar on a feature checklist, but they answer different questions. Vatstack answers "how do I automate VAT lifecycle workflows"; vatnode answers "how do I validate this VAT number right now and prove it later". The comparison below is framed around that scope difference, not against the head term "vat api comparison".

Automation platform vs API-first validator

Vatstack's product surface area centres on subscription-style features: monitored VAT IDs that re-check on a schedule, dashboards for tracking validity over time, automation plans gated on usage. The pricing structure reflects that scope.

vatnode treats every validation as a stateless REST call that returns a self-contained record — VIES consultation number, source authority, verifiedAt timestamp and the country VAT block — and treats monitoring as an additional opt-in layer rather than the headline feature. If you only need the validation primitive, you stop at the primitive.

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,      // included for all 27 countries
    "parkingRate": null,           // included for all 27 countries
    "vatNumberFormat": "FI + 8 digits",
    "vatNumberPattern": "^FI\d{8}$",
    "countryVatUpdatedAt": "2026-04-16"
  }
}
Company enrichment — not in VatstackcountryVat block — not in Vatstackconsultation number — available in vatnode

Vatstack does not return vatName, vatAbbr, currency, companyRegistrationDate, companyForm, industryDescription, registryCode, or registryCodeName in the validation response. You maintain a separate lookup table or make a second API call.

Feature Comparison

FeaturevatnodeVatstack
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
Webhook: VAT_BECAME_INVALID
Webhook: COMPANY_NAME_CHANGED
Webhook: COMPANY_ADDRESS_CHANGED
VAT number format + regex pattern in response
National registry fallback + enrichment (tax authority & company registry APIs)
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/moPaid plans
Audit trail (checkId + verifiedAt timestamp)
Uptime SLA99.9%Not published
Entry paid plan€19/mo — 1,000 req/mo$15/mo — 500 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

Vatstack has no equivalent. When VIES is down or returns no data, you get an error or an empty field. 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 freshness without the automation overhead

EU VAT rates move — Finland raised its standard rate from 24% to 25.5% in September 2024. Vatstack does not publicly document a daily TEDB sync for rate data; the project relies on its automation product surface to surface stale-rate alerts. vatnode pulls from the European Commission TEDB on a daily cron, so the rate you read on every single validation call is the current one — no scheduled job, no dashboard, no automation pipeline to keep running.

Audit reference per call, not per subscription

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.

Vatstack returns a valid/invalid flag and company name, but provides no audit metadata. There is no identifier you can attach to an invoice to prove which check was performed, when, and against which authority. If a tax inspector asks for evidence of due diligence at the time of supply, a boolean field 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.

Switch to vatnode — free to start, no credit card required

100 free API calls per month. Drop-in REST API — migrate in minutes.