API URL
POST /api/v1/vat-validation-and-rates/validate
Headers
Code
Content-Type: application/jsonBody Parameters
Param
Type
Description
vatNumber
required
string
VAT number with country prefix for query validation (trimmed length 4-20)
checkRegistry
optional
boolean
Request optional VIES or HMRC registration check
sellerCountryCode
optional
string
Two-letter seller country code for reverse-charge calculation
vatNumbers
required
string
Comma-separated VAT values for GET batch (1-50)
amount
required
number
Positive calculation amount
countryCode
required
string
Two-character country code for calculation
category
optional
string
Rate category (standard/reduced/reduced2/superReduced/parking/zero)
conversions
required
string
JSON-encoded calculation array for GET batch
Example Request
Code
GET https://datpaq.com/api/v1/vat-validation-and-rates/validate?api_key=your-api-key&vatNumber=DE123456789Successful Response
Status
HTML
200 OKBody
Code
{
"success": true,
"valid": true,
"normalized": "DE123456789",
"countryCode": "DE",
"nationalNumber": "123456789",
"country": "Germany",
"rates": {
"country": "Germany",
"standard": 19,
"reduced": [
7
],
"superReduced": null,
"parking": null,
"zero": null,
"currency": "EUR"
},
"metadata": {
"correlationId": "req-example-vat",
"timestamp": "2026-10-12T12:00:00.000Z",
"processingTime": "4ms",
"api_token_name": null,
"rate_limit": {
"limit": null,
"remaining": null,
"reset": null
}
}
}Field
Type
success
boolean
valid
boolean
normalized
string
countryCode
string
nationalNumber
string
country
string
rates
object
rates_countryCode
string
rates_country
string
rates_standard
number
rates_reduced
array
rates_superReduced
number
rates_parking
number
rates_zero
number
rates_currency
string
registryValid
boolean
registrySource
string
registryMessage
string
name
string
address
string
requestDate
string
cached
boolean
reverseChargeApplicable
boolean
sellerCountryCode
string
reason
string
summary
object
summary_totalProcessed
number
summary_valid
number
summary_invalid
number
summary_succeeded
number
summary_failed
number
results
array
results_index
number
results_vatNumber
string
results_valid
boolean
results_success
boolean
results_amount
number
results_countryCode
string
results_nationalNumber
string
results_country
string
results_currency
string
results_category
string
results_vatRate
number
results_vatAmount
number
results_totalIncludingVat
number
results_error
string
amount
number
currency
string
category
string
vatRate
number
vatAmount
number
totalIncludingVat
number
countries
array
countries_countryCode
string
countries_country
string
countries_standard
number
countries_reduced
array
countries_superReduced
number
countries_parking
number
countries_zero
number
countries_currency
string
service
string
description
string
version
string
supportedCountries
array
categories
array
endpoints
array
endpoints_method
string
endpoints_path
string
endpoints_description
string
status
string
metadata
object
metadata_correlationId
string
metadata_timestamp
string
metadata_processingTime
string
metadata_api_token_name
string
metadata_rate_limit
object
Error Response
Example
Code
HTTP 400 InvalidRequest: Joi query/body validation fails, VAT format is invalid, or a calculate category/country-code value is invalid — Request returns invalid-input details or a VAT validation failure; HTTP 401 AuthenticationError: Gateway rejects missing or invalid API-key credentials — Request is not authorized; HTTP 404 NotFound: Country code has no bundled rates or route is unknown — Lookup target is unavailable; HTTP 429 RateLimitError: More than 1000 requests reach /api/* routes in 15 minutes — Request returns Too many requests; HTTP 500 InternalError: A VIES/HMRC fetch or handler operation throws an exception — Request returns an operation-specific failure reasonLast Updated: May 4, 2026