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. It answers the next question: where does the free tier stop being enough, and what does paying get you. According to VATcomply's public documentation checked on 11 September 2026, there is no documented monitoring layer, no documented webhook delivery and no VIES consultation number on the response. vatnode is what you replace it with when any of those limits starts blocking production.

Last updated: September 2026

Competitor facts on this page checked against the vendor's own public site, documentation and pricing pages on 11 September 2026. Rows marked absent mean we could not find the capability documented publicly, not that the product lacks it.

Why this comparison matters

This is a free-versus-paid comparison, framed around three things a free wrapper does not give you: monitoring, webhooks and an audit reference.

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 case. It is built for the next one: a production billing system where the validation result feeds an invoice, where you need to be told 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…)YesNo
VAT abbreviation (MwSt, TVA, ALV…)YesNo
Super-reduced rate in responseYesNo
Parking rate in responseYesNo
Currency (EUR, PLN, HUF…) in responseYesNo
VAT number format + regex pattern in responseYesNo
National registry fallback + enrichment (tax authority & company registry APIs)YesNot documented
VIES consultation number (audit reference) in API responseYesNot documented
Webhook: VAT_BECAME_INVALIDYesNo
Webhook: COMPANY_NAME_CHANGEDYesNo
Webhook: COMPANY_ADDRESS_CHANGEDYesNo
Audit trail (checkId + verifiedAt timestamp)YesNo
EU VAT validation (VIES)YesYes
Company name + addressYesYes
Company registration date (national registry)YesNot documented
Legal form (GmbH, SAS, AB…)YesNot documented
Industry description (NACE/SNI code)YesNot documented
Standard + reduced rates in responseYesYes
HTTPS on all plansYesYes
VAT monitoring + webhooksFrom €19/moNo
Free tier100 req/moFully free
Entry paid plan€19/mo — 1,000 req/moNo

National Registry Integrations

When VIES is unavailable or returns no company data, vatnode falls back to national tax-authority and company-registry APIs for the member states we have wired up – coverage is growing, and the source field in every response names the authority that actually answered.

Two caveats we would rather state than have you discover. A national registry confirms domestic registration, not the cross-border VIES check, and it carries no consultation number – it buys availability, not equivalent proof. And when you configure a requester VAT to receive consultation numbers, the fallback is deliberately switched off, because substituting a registry would hand you a result without the evidence you asked for.

VATcomply queries VIES only. When the VIES node for a country is down, you get an error.

Granular Webhook Events

Register a VAT number and vatnode re-checks it on a schedule, sending a webhook when something changes – so your customer records and invoice settings stay current without a re-check job of your own.

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. Store both next to the invoice record, and every invoice links back to the exact validation call for support and internal lookups.

VATcomply validates the number and returns standard and reduced rates, but its public documentation does not describe audit metadata. There is no documented checkId-style identifier to attach to an invoice, no documented timestamp proving when the check occurred, and no VIES consultation number even with a requester VAT configured. When a tax inspector requests evidence of due diligence at the time of supply, a valid/invalid boolean is not sufficient – and neither, on its own, is an identifier and a timestamp.

The VIES consultation number is the one field that comes from VIES itself: set your own EU VAT as requester in dashboard Account details, and vatnode returns it on every qualified check. The checkId and verifiedAt fields, together with the national registry fallback, are supporting internal record — useful for showing which source you queried and when, not a substitute for the consultation number. Retention requirements vary by country, so confirm yours with a tax advisor.

Questions Buyers Ask

Is VATcomply really free?

Yes — a public endpoint with no account, no key and no bill, and for a low-volume checkout that is a legitimate choice. This page is about the point where free stops being the constraint that matters: no monitoring, no webhooks, no consultation number and no audit metadata on the response.

What does a free VIES wrapper not give me?

Three things you cannot add yourself without building them. A stored audit reference per check — vatnode returns a checkId and verifiedAt you can persist against the invoice. Notification when a customer’s registration changes — vatnode re-checks stored numbers and fires a webhook on invalid, name or address changes. And an answer when the VIES node for that country is down — vatnode queries the national tax authority or company registry instead and names the responding source.

Does VATcomply return a VIES consultation number?

Its public documentation does not describe one (checked 11 September 2026). Getting one requires calling VIES in the checkVatApprox mode with your own VAT number as requester, which a thin wrapper generally does not do.

What are the risks of depending on a free public endpoint?

No commercial relationship means no commitment on uptime, rate limits, breaking changes or how long the service exists. That is a fair trade at zero cost, and an uncomfortable one once the endpoint sits in your invoicing path. Neither VATcomply nor vatnode publishes an uptime SLA, so the difference is a support contract and a bill, not a guaranteed number.

Try vatnode Free – No Credit Card Required

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