Stripe Tax Alternative for EU VAT Validation
Comparison based on Stripe Tax public documentation as of 2026-05.
Stripe Tax does two things well: it calculates the right tax amount at checkout and collects it inside Stripe Checkout. If your payments are on Stripe and your VAT problem is "charge the correct rate at the right moment," Stripe Tax is the right tool — there is no need to replace it.
vatnode solves a different problem. If you bill through a non-Stripe processor, or if you need to validate a customer's EU VAT number outside the checkout flow — at signup, on a B2B invoice, during supplier onboarding, or as part of a reverse-charge confirmation — Stripe Tax does not apply. vatnode is the API for those cases. It validates EU VAT IDs against VIES, falls back to national registries when VIES is down, and returns the official VIES consultation number on every successful check.
When Stripe Tax is the right answer
- You run full Stripe Checkout for B2C digital products inside the EU
- You need automatic tax calculation + collection in one Stripe-managed flow
- You do not need raw VIES audit trail or consultation number on file
When vatnode fits better
- You bill through Paddle, LemonSqueezy, or your own billing — not Stripe
- You need to validate customer VAT IDs at signup or invoice time, not at checkout
- You sell B2B and need reverse-charge confirmation per transaction
- You need the official VIES consultation number for audit/compliance evidence
- You run a marketplace or SaaS where customers self-report VAT IDs that must be verified
- You need national-registry fallback when VIES is unavailable (RO, CZ, DK, FI, FR, PL, SE, DE today)
- You want AI agents (Claude, Cursor, ChatGPT) to validate VAT IDs and look up rates directly in chat via the official MCP server
Side-by-side: Stripe Tax vs vatnode
| Dimension | Stripe Tax | vatnode |
|---|---|---|
| Primary use case | Tax calculation + collection inside Stripe Checkout | EU VAT ID validation outside checkout (signup, invoicing, onboarding) |
| Pricing model | % of transactions processed by Stripe | Per API call — fixed monthly plans from €19/mo |
| Geographic coverage | Worldwide sales tax (US, EU, UK, AU, JP, more) | EU-27 + Northern Ireland (XI) VAT only |
| Output | Calculated tax amount applied to a Stripe Checkout session | VIES-verified VAT data + consultation number + company enrichment |
| Stack lock-in | Requires Stripe payments / Stripe Checkout | REST API — works with any stack (Paddle, LemonSqueezy, in-house billing) |
| Audit trail | Stripe-side tax records linked to charges | Per-call checkId + verifiedAt + VIES consultation number |
| Integration surface | Stripe SDK (server + client) inside Checkout flow | REST endpoint + planned SDKs — call from any backend or edge runtime |
Stripe Tax dimensions sourced from Stripe Tax public documentation as of 2026-05. Verify current Stripe Tax pricing and coverage on stripe.com before making a purchasing decision.
Example: validate a VAT ID at signup without Stripe
A typical non-Stripe case — a SaaS billed through Paddle wants to validate the VAT ID a customer enters on the signup form, before the first invoice is generated. One REST call to vatnode is enough:
// Runs in a Next.js route handler, Supabase Edge Function,
// Hono on Cloudflare Workers — anywhere with fetch().
export async function validateAtSignup(vatId: string) {
const res = await fetch(`https://api.vatnode.dev/v1/vat/${vatId}`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.VATNODE_API_KEY}`,
'Content-Type': 'application/json',
},
})
if (!res.ok) throw new Error(`VAT lookup failed: ${res.status}`)
const data = await res.json()
return {
valid: data.valid,
companyName: data.companyName,
countryCode: data.countryCode,
// Store these on the customer record for audit evidence:
consultationNumber: data.consultationNumber,
checkId: data.checkId,
verifiedAt: data.verifiedAt,
}
}See the quickstart for the full request/response contract, and /docs/vat-validation for the validation endpoint reference.
You can use both — they answer different questions
vatnode is not positioned as an exclusive replacement for Stripe Tax. The two products sit on different layers of the stack. Stripe Tax handles tax calculation and collection inside a Stripe Checkout session. vatnode handles VAT validation in every adjacent flow — signup forms, B2B invoicing pipelines, supplier onboarding, periodic re-validation, compliance audits.
A common production setup: Stripe Tax for checkout-time collection on Stripe-hosted B2C payments, vatnode for everything that happens outside checkout. If you only do one of those things, you only need one of the two products.
FAQ
Does vatnode calculate the tax owed like Stripe Tax does?
No. vatnode validates VAT IDs against VIES and the national registry fallback, returns enrichment data, and emits a consultation number for audit evidence. It does not compute the tax amount, file returns, or collect tax at checkout. If you need automated tax calculation inside Stripe Checkout, Stripe Tax is the right tool. If you need VAT validation outside the checkout flow, vatnode is the layer for that.
Can I use vatnode with Stripe Checkout?
Yes. The two products are not mutually exclusive. A common pattern is Stripe Tax for checkout-time tax collection on Stripe-hosted payments and vatnode for validating customer-supplied VAT IDs at signup, on B2B invoicing flows outside checkout, in supplier-onboarding screens, and in compliance audits where a VIES consultation number is required.
Does vatnode handle non-EU jurisdictions?
No. vatnode covers EU-27 VAT IDs (validated via VIES) plus Northern Ireland XI numbers. UK domestic, US sales tax, Canadian GST, Norwegian and Swiss VAT are out of scope. Stripe Tax has wider geographic coverage for sales-tax calculation. Pick based on whether your problem is EU VAT validation specifically or worldwide tax calculation.
What does the VIES consultation number actually give me?
When VIES returns a successful validation, the European Commission issues a consultation number — an audit reference that proves the check was performed against the official source on a specific date. Tax authorities accept this as evidence of due diligence at the time of supply. vatnode returns it on every successful VIES response. Stripe Tax does not surface this field.
How is pricing different?
Stripe Tax is billed as a percentage of transactions processed through Stripe (consult Stripe Tax pricing for current rates). vatnode is billed per API call on monthly plans starting at €19/mo for 1,000 requests. If you have low transaction volume but many validation calls (signup flows, supplier verification), per-call pricing is usually cheaper. If you have high transaction volume already going through Stripe, percentage pricing is structurally tied to revenue.
Is vatnode a Stripe Tax replacement for SaaS?
Only partially, and only if you are not on Stripe. vatnode is a VAT validation API, not a tax-calculation engine. SaaS companies on Paddle, LemonSqueezy, or their own billing stack use vatnode as their VAT compliance layer (validation + audit trail + reverse charge confirmation). SaaS on full Stripe Checkout for B2C typically keep Stripe Tax for collection and add vatnode for any flow that lives outside checkout — B2B invoicing, customer-record VAT validation, supplier onboarding.
Get a free API key
Free plan with no credit card. Validate EU VAT IDs with VIES + national-registry fallback and the official consultation number on every successful check.