Register a webhook endpoint
Registers an HTTPS URL to receive signed webhook events. The `secret` is returned once — store it securely. Requires Pro or Business plan.
30 requests per hour per IP · demo key used automatically
Authorization: Bearer <api_key> header. Use a vtv_live_* key in production or a vtv_test_* key for deterministic magic-number responses.Body
urlrequiredstringhttps://example.com/webhooks/vatverifyResponse
Webhook endpoint registered
idrequiredstring019d917e-4fa4-766e-9e0f-d977b47bf2c6urlrequiredstringhttps://example.com/webhooks/vatverifysecretrequiredstringShown once — store it securely.
whsec_a1b2c3d4e5f6...labelrequiredstring | nullenabledrequiredbooleanlast_delivery_atrequiredstring | nulllast_delivery_statusrequiredinteger | nullcreated_atrequiredstring2026-04-15T10:00:00ZError responses
import { Vatverify } from '@vatverify/node';
const client = new Vatverify();
const result = await client.createWebhook({
"url": "https://example.com/webhooks/vatverify"
});{
"id": "019d917e-4fa4-766e-9e0f-d977b47bf2c6",
"url": "https://example.com/webhooks/vatverify",
"secret": "whsec_a1b2c3d4e5f6...",
"label": "…",
"enabled": true,
"last_delivery_at": "…",
"last_delivery_status": 0,
"created_at": "2026-04-15T10:00:00Z"
}Validate a VAT number
Validate a VAT number against the appropriate upstream service (VIES, HMRC, BFS, or BRREG) and return the validity status, company details, and VAT metadata for the country. Input is normalized automatically — spaces, dots, and casing are handled for you ("de 811.569.869" → "DE811569869"). Results are cached for 30 days. Cached responses include `meta.cached: true`; `data.verified_at` always reflects the original registry fetch time. Pass `cache=false` to bypass the cache and force a fresh lookup from the upstream service.
Delete a webhook endpoint
Next Page