Use Case -- Compliance & Invoicing

Validate Dutch VAT Numbers (BTW) via API

Verify Dutch VAT numbers against VIES in real time, with built-in caching for when VIES is down. Get KVK data and VAT validation in a single API call.

VAT validation is unreliable and fragmented

If your invoicing or compliance platform needs to validate Dutch VAT (BTW) numbers, you have probably discovered how frustrating it can be. The EU VIES service is the official source, but it suffers from frequent downtime, slow response times, and rate limiting. When VIES goes down, your validation flow breaks.

Dutch VAT numbers follow a specific format (NL + 9 digits + B + 2 digits), but format validation alone does not confirm a number is actually registered and active. You need to check against VIES, and you often need the associated company data -- name, address, KVK number -- to complete your records.

Building a reliable VAT validation system means dealing with VIES API quirks, implementing retry logic, caching validation results, and maintaining a separate integration just for VAT checks. That is before you even start on the company data lookup.

VAT validation and company data in one call

The KVKBase API validates Dutch VAT numbers against VIES and returns the result alongside complete company data. Every lookup includes the VAT number, its VIES validation status, and a timestamp showing when the validation was last confirmed.

When VIES is temporarily unavailable, KVKBase returns cached validation results so your flow never breaks. The cache timestamp tells you exactly how recent the validation is, so you can decide whether to accept it or retry later.

cURL -- VAT Validation
curl -X GET "https://api.kvkbase.nl/v1/lookup/12345678" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Response includes VAT validation:
# {
#   "kvk_nummer": "12345678",
#   "naam": "Acme B.V.",
#   "btw_nummer": "NL123456789B01",
#   "btw_geldig": true,
#   "btw_validatie_datum": "2026-03-17T10:30:00Z",
#   "adres": {
#     "straat": "Keizersgracht 123",
#     "postcode": "1015 AA",
#     "plaats": "Amsterdam"
#   },
#   "rechtsvorm": "Besloten Vennootschap",
#   "sbi_codes": ["6201", "6202"]
# }

You can also validate a VAT number directly if you do not have the KVK number. Search by company name or VAT number, and the API returns the full company profile with validation status.

JavaScript -- VAT Check in Your App
async function validateDutchVAT(vatNumber) {
  const resp = await fetch(
    `https://api.kvkbase.nl/v1/search?btw=${vatNumber}`,
    { headers: { "Authorization": `Bearer ${API_KEY}` } }
  );
  const data = await resp.json();

  if (data.results.length === 0) {
    return { valid: false, reason: "VAT number not found" };
  }

  const company = data.results[0];
  return {
    valid: company.btw_geldig,
    company_name: company.naam,
    kvk_number: company.kvk_nummer,
    validated_at: company.btw_validatie_datum,
  };
}

Why compliance teams choose KVKBase for VAT validation

VIES validation with caching

VAT numbers are checked against the EU VIES database. When VIES is down, cached results ensure your validation flow keeps working without interruption.

One call, complete data

No need for separate VAT and company data APIs. A single KVKBase lookup returns VAT status, company name, address, legal form, and industry codes.

Audit-ready timestamps

Every validation includes a timestamp showing when the VAT number was last verified. Use it for compliance documentation and audit trails.

Sub-50ms response times

Validation results return in under 50 milliseconds, fast enough for real-time form validation and inline invoice checks.

Validate Dutch VAT numbers in three steps

1

Send the KVK or VAT number

Call the lookup endpoint with a KVK number, or search by VAT number directly. Both return the same complete company profile.

2

Get validated results

The response includes the VAT number, its VIES validation status (true/false), and the timestamp of the last validation check.

3

Use in your workflow

Accept or reject the invoice based on VAT validity. Store the validation timestamp for compliance. Auto-fill company details on the invoice.

Validate Dutch VAT numbers with confidence

Start with 100 free lookups per month. No credit card required. VIES caching included on every plan.

Get started free