ATverify

Test mode

Use vtv_test_* keys to validate VAT numbers deterministically, perfect for CI, local dev, and end-to-end tests.

Test mode is deterministic. Given the same input, you get the same output: no network calls, no registry variability.

Magic VAT numbers

These numbers always return known responses:

VAT numberResponse
IE6388047Vvalid: true, Apple Distribution International Ltd
DE811569869valid: true, Zalando SE
FR44732829320valid: true, BlaBlaCar SAS
IE0000000Xvalid: false, no company data
DE999999999502 registry_unavailable
Any other well-formed VATvalid: true, synthesized "Magic Corp (XX)"

Malformed VAT numbers (invalid_format) and unsupported country codes (country_unsupported) return 400 errors in both test and live mode. The format check runs before the registry lookup.

Example request

cURL
curl "https://api.vatverify.dev/v1/validate?vat_number=IE6388047V" \
  -H "Authorization: Bearer vtv_test_xxx"
200 Response
{
  "data": {
    "valid": true,
    "vat_number": "IE6388047V",
    "country": { "code": "IE", "name": "Ireland" },
    "company": { "name": "Apple Distribution International Ltd", "address": "Hollyhill Industrial Estate, Hollyhill, Cork" },
    "verify_id": null,
    "verified_at": "2026-04-15T10:00:00Z"
  },
  "meta": {
    "cached": false,
    "source": "vies",
    "source_status": "live",
    "latency_ms": 12,
    "request_id": "a1b2c3d4-..."
  }
}

Test-mode keys never count against your quota and never hit the real registries.