VAT ID validation API

VAT validation via one API, with VIES and BZSt.

VAT ID validation through one REST API. Every validation result states which source answered and whether it came from the cache. BZSt qualified confirmations under §18e UStG on the Business plan. Free tier, no credit card.

Endpoint: /v1/validate/DE123456789
Example response
$ curl "https://api.giltiq.de/v1/validate/DE123456789"

Try it now

Here is what an API response looks like: an example, not a live call.

{
  "valid": false,
  "vat_id": "DE123456789",
  "country_code": "DE",
  "vat_number": "123456789",
  "company_name": null,
  "company_address": null,
  "source": "vies",
  "source_timestamp": "2026-09-14T09:00:00.000Z",
  "cache": false,
  "qualified_confirmation": null,
  "request_id": "req_01JZ9X2Y3Z4A5B6C7D8E9F0G",
  "requested_at": "2026-09-14T09:00:00.000Z"
}
dns Hosted on Hetzner in Germany verified_user Validation results with source and cache metadata public_off No Cloudflare code Open-source BZSt client stars Free plan: 100 checks/month

Request-dependent routing across VIES and BZSt.

Without an API key, live checks use VIES. For authenticated simple checks, a DE VAT ID or the requester_vat_id parameter selects BZSt first, with VIES fallback. Other authenticated simple checks use VIES. Qualified requests query BZSt. Where the request allows caching, a stored result may be returned. Completed validation results include source, cache, and source_timestamp. A simple or cached result is not qualified evidence. If the relevant sources are unavailable and no permitted cached result exists, the API returns SOURCE_UNAVAILABLE (HTTP 503).

Qualified confirmations under §18e UStG.

For a qualified confirmation, your system sends the company name and address, and the API returns the BZSt match results (name_match, street_match, zip_match, city_match) plus a receipt_id you can use to retrieve the record later. Currently part of the Business plan.

Built for developers and agents.

Structured JSON responses with explicit fields instead of prose. Alongside the REST API, Giltiq publishes agents.json, llms.txt, and an Agent Card, and runs an MCP server for agentic workflows. Whether you issue PDF invoices, XRechnung, or ZUGFeRD documents is up to your system: the validation runs before invoice creation.

Integration in minutes

# Simple validation: GET /v1/validate/{vat_id} with your API key
curl "https://api.giltiq.de/v1/validate/DE123456789" \
  -H "X-API-Key: YOUR_API_KEY"
smart_toy REST_+_MCP

One API for developers and agents.

Giltiq publishes agents.json, llms.txt, and an Agent Card so your AI workflows can discover and call the API on their own. An MCP server exposes the same validations as tools.

Sources VIES_+_BZSt
Response format JSON_+_metadata
MCP server available
/llms.txt
# Giltiq VAT Validation API
> EU VAT ID validation with source and cache metadata.
> GET /v1/validate/{vat_id} for a simple check.
> agents.json and an Agent Card describe agent access.

Protocol implementation

01

Try it

Call the API without an API key. By default, 10 requests are possible without signing up.

02

Register

Create an account for an API key with 100 validations per month. Email is optional.

03

Go Live

Call the REST endpoint directly: GET /v1/validate/{vat_id} with your X-API-Key header. That is all it takes.

Simple, transparent pricing

Start free. Scale as you grow.

Free
Free

100 validations/mo

Starter
€29/mo

1.000 validations/mo

Business
€99/mo

5.000 validations/mo