If you are evaluating EU VAT validation APIs and Vatstack is on your list, this comparison will tell you exactly what you get, what you give up, and when each service is the right choice. We built TaxID, so this review is not neutral — but we link to Vatstack's own documentation for every claim so you can verify independently, and we are honest about where Vatstack is the better choice.
Quick Verdict
For developers building B2B SaaS, e-commerce checkouts, or API integrations with 100-100,000 validations per month and no need for webhooks: TaxID is the better fit. The free tiers are now identical at 100 validations a month, so the case rests on what comes after — lower latency (sub-10ms cached vs ~300ms), far more volume per dollar at the top of each range ($149/month for 100,000 against Vatstack’s $150 for 15,000), and transparent VIES downtime handling. For teams that need webhook callbacks when a VAT registration status changes asynchronously: Vatstack has this feature and TaxID does not currently support it. For low or irregular volume, Vatstack’s pay-as-you-go Launch plan may cost less than any TaxID subscription.
| Feature | TaxID | Vatstack |
|---|---|---|
| Free tier | 100 validations/month | 100 validations/month (Launch) |
| Paid plans start | $19/month (1,000 validations) | $15/month (500 validations) |
| Highest published plan | $149/month (100,000) | $150/month (15,000) |
| Cached response time | < 10ms (Redis) | ~300ms (no caching mentioned) |
| VIES downtime status | Explicit service_unavailable | Generic error |
| Webhooks | Not supported | Supported |
| HTTPS on free tier | Yes | Yes |
| Format validation | Before VIES call (no quota) | Unknown |
| API auth | Bearer token | X-API-KEY header |
| Country coverage | 27 EU member states | 27 EU member states |
Free Tier: 100 vs 20 Requests per Month
Vatstack's Launch plan includes 100 real validations a month at no monthly charge — the same allowance TaxID gives on its free tier. Neither is enough to run a busy production checkout, but both are enough to build an integration and demo it properly. The size of the free tier is simply no longer a reason to pick one over the other. It was when Vatstack's allowance was 20 a month; that is no longer their pricing, and an earlier version of this article compared against the old figure.
TaxID's free tier is 100 requests per month. That is enough to validate 3-4 customers per working day, run a small closed beta, or handle a low-volume MVP with real customers. It is not a large number, but it is 5 times more than Vatstack and sufficient for genuine early-stage usage. There is no credit card required for either service's free tier — both are genuinely free to start.
The practical implication is that the decision moves past the free tier to what you pay once you outgrow it. For a SaaS with 50 B2B signups a month, TaxID's Starter plan ($19/month for 1,000 validations) covers those onboardings with periodic re-validations, and Growth ($49/month for 10,000) takes over when you outgrow it. Vatstack's comparable steps are $15/month for 500 validations and $150/month for 15,000. Below roughly 500 validations a month Vatstack costs less; above that TaxID buys more volume per dollar.
Pricing at Scale: The Real Difference
Vatstack's published plans now reach 15,000 validations a month on its $150 tier, so the ceiling argument this section used to make no longer applies. What differs is the rate of climb. TaxID's $149 Business plan covers 100,000 validations — roughly seven times the volume for the same money — and Scale covers 1,000,000 on request. Vatstack also bills per validation beyond each plan's allowance ($0.09 on Launch, $0.03 on Small Business, $0.01 on Enterprise), so it has no hard cap either; it simply gets expensive faster.
| Monthly volume | TaxID cost | Vatstack cost | Notes |
|---|---|---|---|
| Up to 100 | $0 (Free) | $0 (Launch) | Both include 100 validations |
| 500 | $19 (Starter) | $15 (Small Business) | Vatstack is cheaper at this volume |
| 1,000 | $19 (Starter) | ≈$30 ($15 + 500 × $0.03) | TaxID is cheaper from here upward |
| 10,000 | $49 (Growth) | $150 (Enterprise) | Roughly a 3× difference |
| 100,000 | $149 (Business) | ≈$1,000 ($150 + 85,000 × $0.01) | Same tier price, very different volume |
| 1,000,000 | $249 (Scale, on request) | Contact sales | Both require a conversation |
The unpublished pricing issue matters beyond cost. If you cannot get a price without a sales call, you cannot put VAT validation into your cost model, justify the line item to your CFO, or plan for growth. TaxID's public pricing page lets you build the integration knowing exactly what you will pay at 10x, 100x, or 1,000x current volume without any sales interaction.
Latency and Caching Architecture
TaxID caches validated active VAT numbers in Upstash Redis for 24 hours. For repeat lookups — the same VAT number validated within the last 24 hours — the API responds in under 10 milliseconds. This matters for checkout UX: a 10ms validation call is invisible to the user. A 300ms validation call is perceptible. At 1-2 seconds (raw VIES latency for some countries), users notice and some abandon the form.
Vatstack's documentation describes a REST JSON API that wraps VIES but does not describe a caching layer for validated results. Response times for Vatstack are typically in the 200-400ms range based on community reports — consistent with an API that calls VIES on every request without caching active results. For low-volume applications or background jobs, this latency difference is irrelevant. For synchronous checkout validation where a user is waiting, 10ms vs 300ms is a material UX difference.
VIES Downtime Handling
VIES goes offline regularly — see VIES Downtime: How to Build a Resilient Validation Flow for the full picture. The key difference in downtime handling: TaxID returns an explicit service_unavailable status code that your application can catch and handle gracefully. You know exactly why the validation failed and can implement the appropriate fallback (allow through, queue for re-validation, show soft error UI).
Vatstack does not document a specific service_unavailable status equivalent. VIES errors appear to surface as generic error responses, which means your application has to guess whether a failed validation is because the number is invalid or because VIES is unreachable. Getting this distinction wrong in either direction causes problems — blocking valid customers or silently approving invalid ones during outages.
Where Vatstack Wins
Vatstack has one feature TaxID does not currently support: webhooks. If your workflow requires async callbacks when a VAT registration status changes — for example, you want to be notified automatically when one of your customers deregisters their VAT number — Vatstack supports this natively. TaxID is a synchronous REST API only. Each validation request returns an immediate result; there is no subscription mechanism for status change notifications.
Vatstack also has a non-EU VAT validation dashboard and team workflow features that are more developed than TaxID's dashboard. If your primary use case involves a non-developer team reviewing validation history, approving exceptions, or managing a shared account, Vatstack's UI may be better suited. TaxID is built for developer-driven integrations where the application handles all validation logic programmatically.
Migration Guide: Switching from Vatstack to TaxID
Migrating from Vatstack to TaxID requires two changes to your application code: the endpoint URL and the authentication header. Everything else — the response structure around valid, company_name, and address — is compatible with minimal field mapping.
// Vatstack request
- GET https://api.vatstack.com/v1/validations?query=DE123456789
- Header: X-API-KEY: your_vatstack_key
// TaxID request
+ GET https://www.taxid.dev/api/v1/validate/DE/DE123456789
+ Header: Authorization: Bearer your_taxid_key
// Both return company_name and valid — no downstream code changes neededThe main structural difference is that TaxID uses RESTful path parameters (/validate/DE/DE123456789) while Vatstack uses a query string (?query=DE123456789). The response fields valid, company_name, and address are compatible. TaxID adds a status field (active, inactive, format_invalid, service_unavailable) that Vatstack does not have — you should add handling for service_unavailable if you are migrating from a Vatstack integration that only checks the boolean valid field.
Common Migration Questions
- →Do I need to re-validate existing customers? No — if you have validated customer VAT numbers with Vatstack and stored them, those validations remain valid. You only need to re-validate if your periodic re-validation cycle is due.
- →Can I run both APIs in parallel? Yes — TaxID and Vatstack can run simultaneously during a migration. You can send the same validation request to both, compare results, and cut over when confident.
- →What about Vatstack's tax rate lookups? TaxID has a separate /api/v1/rates/{country} endpoint for VAT rates. See the VAT rates pages for the data. It is a separate call, not bundled into the validation response.
- →Do I need to update my webhook handlers? Only if you are using Vatstack webhooks — TaxID does not have webhook equivalents. You would need to implement polling or scheduled re-validation instead.
Developer Experience Comparison
TaxID's API uses standard RESTful path parameters: GET /api/v1/validate/{country}/{vat_number}. Authentication uses the standard HTTP Authorization: Bearer token pattern. Error responses use Stripe-style machine-readable status codes (service_unavailable, format_invalid, inactive) that map cleanly to application logic. The API is designed so you can start making requests with a two-line cURL command and has no required SDK or client library.
Vatstack uses a query string parameter approach: GET /v1/validations?query=DE123456789 with authentication via a non-standard X-API-KEY header. Both work fine, but the path parameter approach is more idiomatic REST and integrates more naturally with URL-based routing and logging infrastructure. The authentication header difference means you need to update your header configuration when migrating, but the actual code change is a one-liner.
Both services provide documentation that covers authentication, the main validation endpoint, and response fields. TaxID's documentation includes explicit guidance on handling service_unavailable — the downtime case — which is the most important edge case for production checkout flows. If the documentation of a VAT API does not mention VIES downtime handling, it is a signal that the API surfaces it as a generic error rather than a distinguishable status code.
Which Should You Choose?
The decision comes down to two questions. First: do you need webhooks for asynchronous VAT status change notifications? If yes, Vatstack has this feature and TaxID does not. This is a genuine product difference, not a gap that can be worked around easily. If webhooks are essential to your workflow, Vatstack is currently the only option among commercial EU VAT APIs that offers them.
Second: what is your expected validation volume? Both vendors now publish prices well past 1,000 validations a month, so the question is what each tier actually buys. At 10,000 validations a month TaxID is $49 against Vatstack's $150. At 100,000, TaxID is $149 on a published tier, while Vatstack has no published plan at that volume and would bill roughly $1,000 through per-validation overage. If you need to forecast costs or justify spend at scale, that gap compounds every month.
For most developers building B2B SaaS checkouts, marketplace onboarding flows, or ERP integrations — where the primary need is fast, reliable VAT validation with clear error handling and growth headroom — TaxID is the better fit at most volume tiers. For teams with specific webhook requirements or those deeply integrated into the Vatstack ecosystem who have not hit the scaling ceiling, staying with Vatstack is a reasonable choice.
Real Cost at Different Company Stages
The right pricing tier comparison depends on where you are in your company's lifecycle. At early stage (0-50 B2B customers, under 500 validations per month), both TaxID and Vatstack are free or near-free. The free tier differences matter less than the developer experience, documentation quality, and how easy it is to test error scenarios. Use the free tier of both if you want to compare integration quality directly before committing.
At growth stage (50–500 B2B customers, 500–5,000 validations a month including re-validations and calls from other features), TaxID's Growth plan ($49/month, 10,000 validations) covers the range comfortably, and Starter ($19/month, 1,000 validations) covers its lower end. Vatstack's Small Business tier is $15/month for 500 validations and $0.03 for each one after — cheaper than TaxID at the bottom of this range and more expensive by the top of it. Its next step up is $150/month for 15,000 validations, where TaxID's $149 tier carries 100,000.
At scale (500+ B2B customers, 10,000+ validations per month), TaxID's Growth ($49/month, 10,000 validations) and Business ($149/month, 100,000 validations) plans have published prices. Vatstack's pricing at this volume is opaque. For finance and operations teams that need predictable cost modelling — essential for Series A and later companies — TaxID's public pricing ladder is a material advantage. The total cost of switching to a provider that requires sales conversations at scale is not just the API fee; it is the time cost of procurement and negotiation.
For non-EU companies integrating EU VAT validation as part of a global tax compliance stack, consider whether you need a specialist EU VAT API or a broader global tax platform. If EU VAT is one of many tax regimes you need to handle, a platform like Avalara or LookupTax may be more appropriate despite being more expensive. If EU VAT is your primary or only tax validation requirement, a specialist like TaxID is lower cost, lower complexity, and faster to integrate. The free EU VAT API comparison covers more of the landscape.
One final consideration: support quality. When you have a billing issue related to VAT validation, you need to be able to get a fast answer. TaxID's support is developer-focused — the request_id in every API response is your trace identifier for any support ticket. Vatstack has a similar support model. For both services, the support quality at the free tier is primarily self-service documentation; paid tiers typically include email support with SLA. Evaluate the documentation quality of each provider before committing to an integration — good documentation means fewer support tickets in the first place.
Regardless of which provider you choose, the integration pattern is the same: validate on signup, store the result with a timestamp, apply the correct tax treatment to every invoice, re-validate quarterly. The API you use to power that pattern should be reliable, well-documented, and priced predictably for your expected volume. Both TaxID and Vatstack meet the baseline bar for production use.
Related pages on taxid.dev
Side-by-side table with pricing, features, and migration code
Everything you need to know before choosing a VAT API
Honest comparison of free tiers across all major providers
Public pricing for all tiers — no sales call required
Endpoints, authentication, error codes, and response schemas
Start validating EU VAT numbers
Free plan — 100 validations/month. No credit card required.