apyhub
Back
▣ DATA VALIDATION · FINANCE

Validate EU VAT Batch API

Hosted on ApyHub

What it does

The Batch VAT Validation API checks up to 10 EU VAT numbers in one request. Send an array, get an array back, one result per number, in the order you sent them.

Each result carries the VAT number and a valid flag. When a lookup fails rather than returns a verdict, that item also carries an error. This matters more than it sounds. An invalid number means reject the customer. A failed lookup means try again later. Treating the second as the first is how good customers get blocked.

Use it wherever VAT numbers arrive in groups. Importing a supplier list. Cleaning up a CRM. Re-checking stored customers on a schedule, because VAT registrations get cancelled and nobody tells you.

Checking one number instead? Use the Validate EU VAT API. Need the registered company name and address behind the number? Use the VAT Company Lookup API.

One call of 10 costs less than ten single calls, so batch where you can.

POST
Validate VAT numbers in batch
https://api.eu.apyhub.com/apyhub/validate-vat-batch

QUICKSTART

GUIDE

Quickstart

Check a batch of VAT numbers by sending them as a JSON array.

curl -X POST "https://api.eu.apyhub.com/apyhub/validate-vat-batch" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vat_numbers":["DE345789108","GB123456789","FR12345678901"]}'

What you'll get back

Returns a JSON object with a data array. Each item in data is an object with vat (the VAT number checked), valid (a boolean), and optionally error when lookup fails for that item.

{
  "data": [
    { "vat": "NL862735944B01", "valid": true },
    { "vat": "GB123456789", "valid": false },
    { "vat": "FR12345678901", "valid": true }
  ]
}
TRY ITLIVE · 100 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
vat_numbers*

About this endpoint

What it does

Validates a batch of VAT numbers sent in the request body and returns a result item for each VAT number in the input list. Each result includes the VAT number and whether it is valid; an error field is included only when lookup fails for that item.

Request Body

ParameterTypeMandatoryDescription
vat_numbersString ArrayYesA list of VAT numbers to validate. Minimum 1 item, maximum 10 items.

Response

Returns a JSON object with a data array field. Each array item is an object containing a vat string field, a valid boolean field, and an optional error string field that is present only when lookup failed for that item.

ParameterTypeMandatoryDescription
dataObject ArrayNoArray of validation results, one per input VAT number.
data[].vatStringNoThe VAT number being validated.
data[].validBooleanNoWhether the VAT number is valid.
data[].errorStringNoPresent only when lookup failed for this item.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.