vatnode vs VATcomply

VATcomply validates VAT numbers and returns basic rate data. vatnode returns everything your invoicing system needs — local tax name, abbreviation, all rate tiers, currency, German BZSt fallback, and granular webhook events — in a single API call.

What you get in one API call

GET /v1/vat/DE134214316
{
  "valid": true,
  "vatId": "DE134214316",
  "countryCode": "DE",
  "countryName": "Germany",
  "companyName": null,
  "source": "BZST",            // BZSt fallback — works even when VIES DE is down
  "countryVat": {
    "vatName": "Umsatzsteuer",  // print on German invoices
    "vatAbbr": "MwSt",
    "currency": "EUR",
    "standardRate": 19,
    "reducedRates": [7],
    "superReducedRate": null,
    "parkingRate": null,
    "vatNumberFormat": "DE + 9 digits",
    "vatNumberPattern": "^DE\d{9}$",
    "ratesUpdatedAt": "2026-03-30"
  }
}
countryVat block with full invoice data — not available in VATcomply

Feature Comparison

FeaturevatnodeVATcomply
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
VAT number format + regex pattern in response
German BZSt fallback (when VIES down)
Webhook: COMPANY_NAME_CHANGED
Webhook: COMPANY_ADDRESS_CHANGED
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
Free tier20 req/moLimited
Entry paid plan€19/mo — 1,000 req/moHigher pricing

German BZSt fallback

Germany is one of the most important EU markets and one of the most problematic for VIES — the German node is frequently rate-limited or unavailable. vatnode automatically falls back to the Bundeszentralamt für Steuern (BZSt) eVatR service when the VIES DE node fails. Your integration keeps working. The response shows "source": "BZST" so you always know which authority answered.

Granular webhook events

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

Try vatnode free — no credit card required

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