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 number | Response |
|---|---|
IE6388047V | valid: true, Apple Distribution International Ltd |
DE811569869 | valid: true, Zalando SE |
FR44732829320 | valid: true, BlaBlaCar SAS |
IE0000000X | valid: false, no company data |
DE999999999 | 502 registry_unavailable |
| Any other well-formed VAT | valid: 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 "https://api.vatverify.dev/v1/validate?vat_number=IE6388047V" \
-H "Authorization: Bearer vtv_test_xxx"{
"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.