EU VAT Validation
Check supported VAT numbers against registry services, returning validity and available company details, with cache information when used.
vat-validate Example
{
"valid": true,
"vat_number": "SE556703748501",
"company_name": "Spotify AB",
"country_code": "SE",
"request_date": "2026-04-03+02:00",
"company_address": "REGERINGSGATAN 19 \n111 53 STOCKHOLM"
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
vat_number | string | Yes | EU VAT number including country prefix (e.g. SE556703748501) |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
valid | boolean | Always (present in every successful answer) |
vat_number | string | Always (present in every successful answer) |
company_name | string | Always (present in every successful answer) |
country_code | string | Always (present in every successful answer) |
company_address | string | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "vat-validate",
"inputs": {
"vat_number": "DE811128135"
},
"max_price_cents": 2
}' {
"tool": "strale_execute",
"arguments": {
"slug": "vat-validate",
"inputs": {
"vat_number": "DE811128135"
},
"max_price_cents": 2
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "vat-validate",
inputs: {
"vat_number": "DE811128135"
},
max_price_cents: 2,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="vat-validate",
inputs={
"vat_number": "DE811128135",
},
max_price_cents=2,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/vat-validate?vat_number=DE811128135' Limitations
VIES can be unavailable or limit requests
VIES can be unavailable or throttle requests under unpublished per-member-state limits. Transient faults are retried, and cached results, including older fallback results, can be returned during outages.
What to do instead: Lookups within 48 hours can use cached results; if VIES is unavailable and no cached result exists, retry later.
Registration changes and cached results can lag
Results can be cached for 48 hours, and national registry changes can take a further 24 hours to appear in VIES. Check the national tax authority directly for same-day registration or deregistration confirmation.
What to do instead: For real-time same-day verification, contact the national tax authority directly.
Swiss UID public-tier VAT lookup is boolean only
Swiss UID validation returns valid or invalid only, without a company name or address. This tool does not perform the separate enrichment lookup, whose public service is limited to 20 requests per minute.
What to do instead: For Swiss company name + address, call the swiss-company-data capability.
UK VAT checks are unavailable without HMRC access
GB VAT numbers return a credentials-pending error when the HMRC connection is not configured.
What to do instead: Use vat-format-validate for GB format checks; it does not confirm VAT registration.
Bundled checks that include it
- Nordic KYC — Sweden €1.50
- Nordic KYC — Norway €1.50
- Nordic KYC — Finland €1.50
- B2B Payment Validation €0.25
- SEPA Payment Readiness €0.30
- Invoice Processing Pipeline €0.50
- Vendor Onboarding Check €1.50
- KYB Essentials — Sweden €1.50
- KYB Complete — Sweden €2.50
- Invoice Verify — Sweden €2.50
- KYB Essentials — Norway €1.50
- KYB Complete — Norway €2.50
- Invoice Verify — Norway €2.50
- KYB Essentials — Finland €1.50
- KYB Complete — Finland €2.50
- Invoice Verify — Finland €2.50
- KYB Essentials — United Kingdom €1.50
- KYB Complete — United Kingdom €2.50
- Invoice Verify — United Kingdom €2.50
- KYB Essentials — Germany €1.50
- KYB Complete — Germany €2.50
- Invoice Verify — Germany €2.50
- KYB Essentials — France €1.50
- KYB Complete — France €2.50
- Invoice Verify — France €2.50
- KYB Essentials — Belgium €1.50
- KYB Complete — Belgium €2.50
- Invoice Verify — Belgium €2.50
- KYB Essentials — Austria €1.50
- KYB Complete — Austria €2.50
- Invoice Verify — Austria €2.50
- KYB Essentials — Ireland €1.50
- KYB Complete — Ireland €2.50
- Invoice Verify — Ireland €2.50
- KYB Essentials — Spain €1.50
- KYB Complete — Spain €2.50
- Invoice Verify — Spain €2.50
- KYB Essentials — Switzerland €1.50
- KYB Complete — Switzerland €2.50
- Invoice Verify — Switzerland €2.50
- KYB Essentials — Poland €1.50
- KYB Complete — Poland €2.50
- Invoice Verify — Poland €2.50
- KYB Essentials — Croatia €1.50
- KYB Complete — Croatia €2.50
- Invoice Verify — Croatia €2.50
- KYB Essentials — Greece €1.50
- KYB Complete — Greece €2.50
- Invoice Verify — Greece €2.50
Related tools
- Address Validation €0.03
- Age Check €0.02
- Bank BIC Lookup €0.05
- Bulk Email Validation €0.15
- Business Day Check €0.02
- Company ID Detection €0.05