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
{
"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"
}
}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
| Feature | vatnode | Vatstack |
|---|---|---|
| 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 + webhooks | From €19/mo | Paid plans |
| Audit trail (checkId + verifiedAt timestamp) | ||
| Uptime SLA | 99.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:
BZSt eVatR
PRH / YTJ
Annuaire-Entreprises
Bolagsverket
CVR
ARES
ANAF
MF White List
CBE / KBO
KVK
UR via JARS
JAR via JARS
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_INVALIDCustomer's VAT registration lapsed — stop applying reverse charge immediately
VAT_BECAME_VALIDPreviously invalid number reactivated — update invoice settings
COMPANY_NAME_CHANGEDLegal name changed — update your customer records and invoices
COMPANY_ADDRESS_CHANGEDRegistered 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.