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
{
"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"
}
}Feature Comparison
| Feature | vatnode | VATcomply |
|---|---|---|
| Local VAT name in response (Mehrwertsteuer, Taxe sur la Valeur Ajoutée, Arvonlisävero…) | Yes | No |
| VAT abbreviation (MwSt, TVA, ALV…) | Yes | No |
| Super-reduced rate in response | Yes | No |
| Parking rate in response | Yes | No |
| Currency (EUR, PLN, HUF…) in response | Yes | No |
| VAT number format + regex pattern in response | Yes | No |
| National registry fallback + enrichment (tax authority & company registry APIs) | Yes | Not documented |
| VIES consultation number (audit reference) in API response | Yes | Not documented |
| Webhook: VAT_BECAME_INVALID | Yes | No |
| Webhook: COMPANY_NAME_CHANGED | Yes | No |
| Webhook: COMPANY_ADDRESS_CHANGED | Yes | No |
| Audit trail (checkId + verifiedAt timestamp) | Yes | No |
| EU VAT validation (VIES) | Yes | Yes |
| Company name + address | Yes | Yes |
| Company registration date (national registry) | Yes | Not documented |
| Legal form (GmbH, SAS, AB…) | Yes | Not documented |
| Industry description (NACE/SNI code) | Yes | Not documented |
| Standard + reduced rates in response | Yes | Yes |
| HTTPS on all plans | Yes | Yes |
| VAT monitoring + webhooks | From €19/mo | No |
| Free tier | 100 req/mo | Fully free |
| Entry paid plan | €19/mo — 1,000 req/mo | No |
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_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-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.