GET /vat/{number}
VAT validation API
Checksum a VAT number. Deep asks the live EU registry.
Try it
{
"vat": "DE136695976",
"valid": true,
"country": "DE",
example
}1M requests · $20/mo. Get started
What comes back.
vat
Normalized number with country prefix, or null if invalid
valid
Format and checksum match the country
country
ISO 3166-1 alpha-2. GR not EL. XI numbers ship GB
deep.registered
On the live national registry. Null when the registry did not complete
deep.name
Registered legal name, or null
deep.address
street, city, postal, country. null when the registry sent none
deep.consultation
Audit identifier when ?from= is a valid VAT, else null
deep.consulted_at
Registry-provided check time, or null when unavailable
1
Pass a number
Spaces, dots, missing prefix with country. Junk is valid false, never a 404.
2
Deep asks the registry
Registered, legal name, address. One unit from the monthly allowance.
3
Pass your own VAT
from= puts the consultation number on your audit file, not ours.
Coverage
EU VIES. Northern Ireland included. UK HMRC is a follow-up.
- 27 + NI
- live registry states
- 100
- free lookups a month
- On demand
- see Plans for rates
Pass a VAT number. Core checks format and checksum. Spaces, dots, and a missing prefix with country are fine. A junk value answers valid false as a 200.
Deep asks the live EU registry: registered, legal name, and address. Each deep call on a checksum-valid EU number uses one from your plan's monthly VAT allowance. Free includes 100 a month. Past the allowance, a lookup is half a cent, less on Pro and up. Pass from with your own VAT to get a consultation number for your audit file. UK GB numbers parse on core. Live HMRC is a follow-up. Registry downtime is HTTP 200 with registered null, never registered false. The unit is not billed.
SPEED
How long /vat takes.
Median time to first byte over the last seven days. Warm requests, measured every 30 minutes. Live verification and other request variants can take longer.
US
19ms
EU
19ms
APAC
36ms
LatAm
22ms
ME
91ms
Make your first request.
One key works across the APIs. Copy a request in your language and get JSON back.
curl "https://api.parseapi.com/vat/DE136695976" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Parse-Version: 2.0.0"// Example response · 200{"vat": "DE136695976", "valid": true, "country": "DE" }
API referenceSDKsKeys and authentication
Every response field
Response fields
Deep fields
- deep.registered
- On the live national registry. Null when the registry did not complete
- deep.name
- Registered legal name, or null
- deep.address
- street, city, postal, country. null when the registry sent none
- deep.consultation
- Audit identifier when ?from= is a valid VAT, else null
- deep.consulted_at
- Registry-provided check time, or null when unavailable
QUESTIONS
- What is included in a normal request?
- Format and checksum. Spaces, dots, and a missing prefix with country are fine. That rides the normal request pool.
- What if it is not a VAT number?
- valid: false as a 200. vat is null. Same as a typo in a form field.
- What does deep check?
- Whether the number is on the live national registry, plus legal name and address when the registry sent them. One unit from the monthly VAT allowance. Free includes 100 a month. See Plans for additional lookup rates.
- Where do I find VAT rates?
- GET /country/DE?deep=true returns the standard national reference rate in deep.tax and deep.tax_rate on paid plans. The Tax page explains the geographic scopes. A number check does not determine what tax an order owes.
- What is from?
- Your own VAT number. Pass it and the response includes a consultation identifier for your audit file. Missing or junk from still returns registered, name, and address. consultation is null.
- What if the registry is down?
- HTTP 200 with registered null. The unit is not billed. registered false means the registry answered not listed.
- Northern Ireland or UK?
- Registry verification covers EU VAT numbers and Northern Ireland XI numbers. XI keeps its prefix and ships country GB. UK GB numbers support format and checksum validation. GB deep returns registered null and uses no verification unit.
- Greece EL or GR?
- The public country is GR. The live registry still uses EL on the wire. You can pass either prefix.
Find location reference rates on Tax. VAT number validation is a separate lookup.
Check the number.
Format and checksum on every plan. Registry checks have their own allowance.
Start includes 1M API requests a month for $20/mo.
2,000 VAT registry checks included per month.