Tax ID validation API for SaaS billing

Dev toolWeb1 weekNode/HonoVIES + gov registriesPostgresStripe metered billing

The idea

Every SaaS selling into the EU or UK hits the same dull wall: validate the customer’s VAT or company number at signup, decide whether reverse charge applies, and keep evidence in case a tax authority asks. The official tool, VIES, is a flaky SOAP service that rate-limits, goes down per member state, and returns nothing you can store as proof without extra work. So billing teams either hand-check IDs or write and babysit their own wrapper — undifferentiated plumbing at its purest.

1Lookup showed that developers happily pay usage fees for validation endpoints that spare them an integration. Tax IDs are the same product shape with a stronger driver: getting reverse charge wrong is a compliance problem, not a data-quality problem. The wedge over any generic lookup vendor is the evidence log — an immutable, retrievable record of each check with the VIES consultation number — which turns a lookup API into an audit defense.

Who pays

Developers and billing engineers at SaaS companies with EU/UK customers pay $29-99/mo tiers with metered overage around half a cent per lookup; the buyer self-serves off documentation quality. Distribution: a free browser VAT-checker page built to rank for validate VAT number API and VIES down searches, plus answers in the Stripe Tax and Paddle ecosystems where this exact question recurs.

MVP scope

  • POST /v1/validate covering EU VIES and UK Companies House with syntax and checksum pre-checks
  • Retry, backoff, per-state circuit breakers, and stale-cache fallback around VIES
  • Reverse-charge determination and immutable evidence records with retrieval endpoint
  • API key dashboard with usage metering and Stripe billing
  • Free public checker page as the SEO front door
  • Skip for v1: non-EU/UK registries (Australia ABN, India GST), batch CSV validation, webhooks for periodic revalidation, Zapier integration
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build TaxCheck, a REST API that validates business tax IDs for SaaS billing. Stack: Node with Hono, upstream sources VIES (EU VAT SOAP service) and UK Companies House API plus per-country registries, Postgres, Stripe metered billing.

Core endpoint: POST /v1/validate with a tax ID and optional country. The service normalizes the format (strip spaces, infer country prefix), syntax-checks against per-country regex and checksum rules, then queries the authoritative registry. Response: valid flag, registered name and address, match score against a supplied customer name, a reverse_charge boolean derived from seller and buyer countries, and an evidence_id. GET /v1/evidence/:id returns an immutable record (request, registry response, timestamp, consultation number) — the proof a tax authority asks for when a reverse-charge sale is challenged.

Non-obvious details: VIES fails constantly (rate limits, member-state downtime, MS_UNAVAILABLE), so wrap it with retry plus exponential backoff, per-member-state circuit breakers, and a cached-result fallback that returns the last known state with a stale flag and cache age — never a bare 500. Store VIES consultation IDs when a requester VAT number is provided, since those are legally citable.

Pages (Next-lite marketing site is fine): landing, docs, dashboard with API keys and usage graphs, and a free browser-based VAT checker page targeting validate VAT number searches, rate-limited by IP, with a signup nudge.

Pricing: free 100 lookups/mo, $29/mo for 2,500, $99/mo for 15,000, then $0.005 per extra lookup via Stripe metered billing.

// More Dev tool ideas