Simple, transparent pricing
Start free with a production-ready VAT validation API. Validate VAT and GST numbers across 32 countries via VIES, HMRC, and more. Upgrade when you need higher limits, batch processing, or webhooks.
Prices exclude VAT. VAT is added at checkout based on your billing location.
How it works
Go from zero to production-ready VAT validation in minutes, not days.
Start free
Sign up and get your API key in under a minute. The free tier includes everything you need to integrate VAT validation into your app: all 32 countries, test mode, typed SDKs, cached responses, and 500 validations per month. No credit card required.
Ship to production
The free tier is production-ready. Use it for real VAT validation in your billing flow, onboarding, or checkout. 500 validations per month covers most early-stage B2B SaaS products.
Upgrade when you grow
When you need more than 500 validations, batch processing, or webhook notifications, upgrade to Pro or Business. No migration needed. Same API, same SDK, higher limits.
Everything included
Every tier includes production-ready VAT validation, company data lookup, typed SDKs, and automatic fallback caching. Here is what you get.
Core features (all tiers)
VAT/GST number validation
Validate VAT and GST numbers against official government databases. Covers EU (VIES), UK (HMRC), Switzerland, Liechtenstein (BFS), Norway (Bronnoysund), and Australia (ABR). Returns validity status, company name, and address.
32 countries supported
Single API endpoint for EU 27 member states, UK, Switzerland, Liechtenstein, Norway, and Australia. No need to integrate with multiple government APIs.
Company data lookup
Get the registered company name and address associated with any valid VAT number. Useful for autofilling billing forms and verifying business customers during onboarding.
Consultation numbers
Receive a unique consultation number from VIES for each EU validation. Serves as proof of validation for tax audits and compliance records.
VAT rates endpoint
Look up current VAT/GST rates for all 32 supported countries. Unlimited requests, no quota usage. Useful for tax calculations, invoicing, and checkout flows.
Cached responses with stale fallback
All validation results are cached for 25 days. When upstream government services (like VIES) go down, Vatly serves the last known result instead of failing. Your integration never breaks due to government API outages.
Test mode
Use test API keys with magic VAT numbers to simulate valid, invalid, and error responses without hitting live government services. Build and test your integration without worrying about rate limits or upstream availability.
Structured error responses
Every error includes a machine-readable error code, human-readable message, and a docs_url linking to the specific error documentation. No guessing what went wrong.
Typed SDKs
Official SDKs for TypeScript (@vatly/node) and Python (vatly) with full type safety, { data, error } return pattern, and typed error classes. Install from npm or PyPI and start validating in minutes.
Per-country format validation
VAT numbers are validated against country-specific format rules before hitting upstream APIs. Malformed numbers are rejected instantly, saving quota and reducing latency.
Scaling features (Pro and Business)
Batch validation
Validate up to 50 VAT numbers in a single API request. Ideal for bulk customer verification, CRM cleanup, or importing partner lists.
Async validation
Submit large batches for background processing. Pro supports up to 200 numbers per async batch, Business supports up to 1,000. Get results via polling or webhooks.
Webhooks
Receive real-time notifications when async validations complete. Webhooks are signed with HMAC-SHA256 so you can verify authenticity. Configure webhook URLs from the dashboard.
Limits by tier
| Free | Pro | Business | |
|---|---|---|---|
| Monthly validations | 500 | 10,000 | 50,000 |
| Burst rate | 20 req/min | 60 req/min | 120 req/min |
| API keys | 2 | 10 | Unlimited |
| Async batch size | - | 200 | 1,000 |
Two problems, one API
VAT validation matters at checkout and at account creation. Vatly handles both.
Validate at checkout, get reverse-charge right
Determine whether to charge VAT or apply the reverse charge before you generate an invoice. A valid cross-border VAT number means zero-rate. An invalid or missing one means you charge VAT.
- SaaS checkout flows
- Subscription billing
- Stripe and Mollie integrations
Clean account data from the first record
No CRM validates VAT numbers natively. Validate when an account is created and write the registered company name back to the record. Catch bad data before it reaches invoices or ERP syncs.
- Salesforce account creation
- HubSpot contact enrichment
- Partner and vendor onboarding