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. Higher free tier (100 vs 20 req/month), lower latency (sub-10ms cached vs ~300ms), higher scale ceiling ($149/month for 100K vs Vatstack's paid max of 1,000/month), 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.
| Feature | TaxID | Vatstack |
|---|---|---|
| Free tier | 100 req/month | 20 req/month |
| Paid plans start | $19/month (10,000 req) | $9/month (1,000 req) |
| Max paid scale | 1,000,000/month | 1,000/month (then custom) |
| 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 free tier is 20 requests per month. At 20 requests, you can validate roughly one customer per working day. This is adequate for initial API exploration and verifying your integration works, but it is not enough to run a real prototype or demo the feature to prospective customers. You will hit the limit within a few days of actual development.
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: if you are starting a new integration and want to see how the API behaves under real conditions before committing to a paid plan, TaxID's free tier gives you five times the runway. For a SaaS with 50 B2B signups per month, TaxID's Starter plan ($19/month for 10,000 validations) covers 200 monthly onboardings with periodic re-validations — Vatstack's entry tier maxes out at 1,000 total validations per month.
Pricing at Scale: The Real Difference
The free tier comparison undersells the pricing gap because Vatstack's paid plan caps at 1,000 validations per month. If your application needs more than 1,000 validations per month — which happens quickly once you factor in re-validations, bulk imports, and high-growth B2B signups — Vatstack requires contacting their sales team for a custom quote. TaxID's public pricing covers up to 1,000,000 validations per month across four published tiers without any sales interaction.
| Monthly volume | TaxID cost | Vatstack cost | Notes |
|---|---|---|---|
| Up to 100 | $0 | $0 | Both free tiers |
| Up to 1,000 | $0 (still free) | $9/month | TaxID free tier is larger |
| Up to 10,000 | $19/month | Contact sales | Vatstack maxes out at 1,000 |
| Up to 50,000 | $49/month | Contact sales | Only TaxID has public pricing |
| Up to 100,000 | $149/month | Contact sales | 4× price difference minimum |
| Up to 1,000,000 | Custom | Contact sales | Both require enterprise discussion |
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://taxid.dev/api/v1/validate/DE/DE123456789 + Header: Authorization: Bearer your_taxid_key // Both return company_name and valid — no downstream code changes needed
The 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? If you need more than 1,000 validations per month on a published pricing tier without a sales conversation, TaxID is the only option with public pricing at that scale. At 10,000 validations per month, TaxID is $19 with a published price. At the same volume with Vatstack, you are in a custom pricing conversation with no public benchmark to evaluate against. For teams that need to forecast costs, plan infrastructure budgets, or justify spend to a CFO, predictable public pricing matters.
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 per month including re-validations and API calls from other features), TaxID's Starter plan ($19/month, 10,000 validations) covers this range comfortably. Vatstack's paid entry tier ($9/month) caps at 1,000 validations — you will need to contact their team for pricing if you are above that. The $10 monthly difference between the plans is immaterial; the difference in what you get (10,000 vs 1,000) is significant.
At scale (500+ B2B customers, 10,000+ validations per month), TaxID's Growth ($49/month, 50,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.