Μενού τεκμηρίωσης: Lookups
Lookups
Check a VAT number against a public registry.
Η αναφορά API είναι διαθέσιμη μόνο στα αγγλικά, όπως και το API.
Σε αυτή τη σελίδα
Look up a VAT number #
/api/v1/tax_ids/lookupChecks a VAT number with the EU's VIES service (a test key gets the sandbox) and returns whether it is an active registration, with the registered name and address when the member state shares them. A Greek ΑΦΜ with a wrong check digit is refused before any registry is asked. When VIES or the member state's registry is unavailable the answer is 503 service_unavailable, retryable. Answers are reused for up to a day.
- Bearer API key
Query parameters
countrystringrequiredISO 3166-1 alpha-2 country of the VAT registration: GR for Greece (not the VAT prefix EL).
One of:
AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GR,HR,HU,IE,IT,LT,LU,LV,MT,NL,PL,PT,RO,SE,SI,SK,XIcodestringrequiredThe VAT number without its country prefix; spaces, hyphens and dots are removed and letters upper-cased. A Greek ΑΦΜ (9 digits) is checked for its check digit first.
Up to 60 characters
Request
curlcurl -X GET 'https://tallio.dev/api/v1/tax_ids/lookup?country=GR&code=666666662' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | What the registry says. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
dataobjectrequiredA VAT number checked against a registry. Tallio reports only what the registry returns and never fills in a name or address of its own.
Show nested fields (8)Hide nested fields (8)
objectstringrequiredAlways "tax_id_lookup".
Always
tax_id_lookupcountrystringrequiredThe country looked up.
One of:
AT,BE,BG,CY,CZ,DE,DK,EE,ES,FI,FR,GR,HR,HU,IE,IT,LT,LU,LV,MT,NL,PL,PT,RO,SE,SI,SK,XIcodestringrequiredThe VAT number looked up, normalised.
validbooleanrequiredWhether the registry reports the number as an active VAT registration.
namestring | nullrequiredThe registered name as the registry gives it; null when it shares none or the number is not valid.
addressstring | nullrequiredThe registered address as one line, as the registry gives it; null when it shares none.
sourcestringrequiredWho answered: vies (the EU VAT Information Exchange System) or sandbox (test keys).
One of:
vies,sandboxchecked_atstringrequiredWhen the registry answered; a repeat lookup within a day may reuse that answer.
Format:
date-time
Example response · 200{
"data": {
"object": "tax_id_lookup",
"country": "GR",
"code": "666666662",
"valid": true,
"name": "Kafeneio Lemonia IKE",
"address": null,
"source": "sandbox",
"checked_at": "2026-10-13T17:20:42.364Z"
}
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 200, 400, 429, 503 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 200, 400, 429, 503 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 200, 400, 429, 503 · At least 0
www-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
validation_failed | 400 | No | Request validation failed. |
unauthorized | 401 | No | Authentication is required. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |
service_unavailable | 503 | Yes | A service Tallio depends on is temporarily unavailable. |