---
title: VAT Number Validation API - Real-time VAT Validations across EU & UK
version: 1.0.0
description: Validate a VAT number against the VIES or HMRC databases. Supports all EU VAT numbers (validated against VIES) and UK VAT numbers (validated against HMRC). Returns validation status, consultation number, authority used, and company registration details. Optionally accepts a requester VAT number for match-based validation.
openapi: 3.1.1
servers:
  - https://api.apifreaks.com/v1.0
paths: 1
operations: 1
schemas: 4
---

## Table of Contents

- [VAT Number Validation API - Real-time VAT Validations across EU & UK v1.0.0](#vat-number-validation-api-real-time-vat-validations-across-eu-uk-v100)
  - [Authentication](#authentication)
  - [Financial APIs](#financial-apis)
    - [validateVatNumber](#validatevatnumber)
      - [Parameters](#parameters)
      - [Responses](#responses)
  - [Schemas](#schemas)
    - [VatValidationResponse](#vatvalidationresponse)
    - [VatValidationResult](#vatvalidationresult)
    - [VatValidationCompany](#vatvalidationcompany)
    - [ErrorResponse](#errorresponse)



# VAT Number Validation API - Real-time VAT Validations across EU & UK v1.0.0

Validate a VAT number against the VIES or HMRC databases. Supports all EU VAT numbers (validated against VIES) and UK VAT numbers (validated against HMRC). Returns validation status, consultation number, authority used, and company registration details. Optionally accepts a requester VAT number for match-based validation.

Base URLs:

* [https://api.apifreaks.com/v1.0](https://api.apifreaks.com/v1.0)

## Authentication

* API Key (ApiKeyAuthHeader)
    - Parameter Name: **X-apiKey**, in: header. Pass your API key via the X-apiKey request header.

* API Key (ApiKeyAuthQuery)
    - Parameter Name: **apiKey**, in: query. Pass your API key via the apiKey query parameter.

## Financial APIs

### validateVatNumber

`GET /vat/validation`

*Validate EU and UK VAT number*

Validates an EU or UK VAT number and returns registration status details.

#### Parameters

|Name|In|Type|Required|Description|
|---|---|---|---|---|
|format|query|string|false|Specify the desired response format. Options: 'json' (default) or 'xml'.|
|vatNumber|query|string|true|EU or UK VAT number to validate.|
|requesterVatNumber|query|string|false|Requester EU or UK VAT number.|

##### Enumerated Values

|Parameter|Value|
|---|---|
|format|json|
|format|xml|

> Example responses

> Successful response

```json
{
  "country_code": "GB",
  "vat_number": "289111588",
  "requested_at": "2026-07-27T11:48:43.000Z",
  "validation": {
    "is_valid": true,
    "consultation_authority": "HMRC"
  },
  "company": {
    "company_name": "EVENTURED LTD",
    "company_address": "SUITE 10, BEAUFORT COURT, ADMIRALS WAY, LONDON, E14 9XL, GB"
  }
}
```

```json
{
  "country_code": "GB",
  "vat_number": "289111588",
  "requester_country_code": "GB",
  "requester_vat_number": "288305674",
  "requested_at": "2026-07-27T11:48:44.000Z",
  "validation": {
    "is_valid": true,
    "consultation_number": "YCM-VHX-WXF",
    "consultation_authority": "HMRC"
  },
  "company": {
    "company_name": "EVENTURED LTD",
    "company_address": "SUITE 10, BEAUFORT COURT, ADMIRALS WAY, LONDON, E14 9XL, GB"
  }
}
```

> Bad Request

```json
{
  "error": "Invalid Param Exception",
  "message": "please pass correct parameters",
  "path": "/v1.0/vat/validation",
  "status": 400,
  "timestamp": "2026-07-27T11:48:44.845Z"
}
```

```json
{
  "message": "Unsupported VAT country code. Supported prefixes are UK/GB and EU VAT country codes."
}
```

> Not Found

```json
{
  "message": "targetVrn does not match a registered company"
}
```

#### Responses

|Status|Meaning|Description|Schema|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|Successful response|[VatValidationResponse](#vatvalidationresponse)|
|400|[Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)|Bad Request|[ErrorResponse](#errorresponse)|
|404|[Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)|Not Found|[ErrorResponse](#errorresponse)|

#### Response Headers

|Status|Header|Type|Format|Description|
|---|---|---|---|---|
|200|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|400|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|
|404|X-AF-Credits-Cost|integer||Specifies the number of credits consumed by the current request.|

To perform this operation, you must be authenticated by means of one of the following methods:
ApiKeyAuthHeader, ApiKeyAuthQuery

## Schemas

### VatValidationResponse

VAT number validation response containing registration status and company details.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|country_code|string|true|none|VAT country prefix extracted from the validated VAT number (e.g., DE, GB).|
|vat_number|string|true|none|VAT number without country prefix.|
|requester_country_code|string|false|none|Requester VAT country prefix (present only when requesterVatNumber was provided).|
|requester_vat_number|string|false|none|Requester VAT number without country prefix.|
|requested_at|string(date-time)|true|none|ISO 8601 timestamp of the validation request.|
|validation|[VatValidationResult](#vatvalidationresult)|true|none|Validation result block.|
|company|[VatValidationCompany](#vatvalidationcompany)|true|none|Company details block.|

### VatValidationResult

Validation result block.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|is_valid|boolean|true|none|Whether the VAT number is active and registered.|
|consultation_number|string|false|none|VIES/HMRC consultation number. Only present when requesterVatNumber is provided.|
|consultation_authority|string|true|none|Upstream authority used for validation (VIES for EU, HMRC for UK).|

### VatValidationCompany

Company details block.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|company_name|string|true|none|Company or trader name (may be empty string when unavailable).|
|company_address|string|true|none|Formatted company address (may be empty string when unavailable).|

### ErrorResponse

Standard error envelope returned by the API on failed requests.

#### Properties

|Name|Type|Required|Restrictions|Description|
|---|---|---|---|---|
|error|string|false|none|Short error category or exception type.|
|message|string|true|none|Human-readable error message describing the failure.|
|path|string|false|none|API endpoint path that produced the error.|
|status|integer|false|none|HTTP status code returned with the error.|
|timestamp|string(date-time)|false|none|Timestamp when the error occurred (ISO 8601).|
