vatnode vs Vatstack

Vatstack validates the number and stops. vatnode returns everything you need to issue a legally compliant invoice — local VAT name, abbreviation, all rate tiers, currency — in a single API call.

What you get in one API call

GET /v1/vat/IE6388047V
{
  "valid": true,
  "vatId": "IE6388047V",
  "countryCode": "IE",
  "countryName": "Ireland",
  "companyName": "GOOGLE IRELAND LIMITED",
  "companyAddress": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
  "source": "VIES",
  "checkId": "019d2a8c-5f3a-7d12-a901-bc23de456f78",
  "verifiedAt": "2026-03-30T10:00:00.000Z",
  "countryVat": {
    "vatName": "Value Added Tax",  // local tax name — print on Irish invoices
    "vatAbbr": "VAT",              // abbreviation your UI needs
    "currency": "EUR",             // ISO 4217
    "standardRate": 23,
    "reducedRates": [9, 13.5],
    "superReducedRate": null,      // included for all 27 countries
    "parkingRate": null,           // included for all 27 countries
    "vatNumberFormat": "IE + 8-9 chars",
    "vatNumberPattern": "^IE[0-9A-Z+*]{7}[A-Z]{1,2}$",
    "ratesUpdatedAt": "2026-03-30"
  }
}
countryVat block not returned by Vatstack — only available in vatnode

Vatstack does not return vatName, vatAbbr, superReducedRate, parkingRate, or currency in the validation response. You maintain a separate lookup table or make a second API call.

Feature Comparison

FeaturevatnodeVatstack
Local VAT name in response (Umsatzsteuer, TVA, ALV…)
VAT abbreviation (MwSt, TVA, ALV…)
Super-reduced rate in response
Parking rate in response
Currency (EUR, BGN, HUF…) in response
Webhook: COMPANY_NAME_CHANGED
Webhook: COMPANY_ADDRESS_CHANGED
VAT number format + regex pattern in response
German BZSt fallback (when VIES down)
EU VAT validation (VIES)
Company name + address
Standard + reduced rates in response
HTTPS on all plans
VAT monitoring + webhooksFrom €19/moPaid plans
Uptime SLA99.9%Not published
Entry paid plan€19/mo — 1,000 req/mo$15/mo — 500 req/mo

Granular webhook events

vatnode fires specific events — not just "something changed". Subscribe to any VAT number and get notified precisely:

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

German BZSt fallback

When the German VIES node is rate-limited or unavailable, vatnode automatically retries against the Bundeszentralamt für Steuern (BZSt). Your integration keeps working without any retry logic on your side. The response shows "source": "BZST" so you know which authority answered.

Try vatnode free — no credit card required

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