Identity & Verification

VAT number validation API

Check your customers' VAT numbers at checkout or onboarding. EU and Northern Ireland numbers are checked live with the EU VAT register and Norwegian numbers with the Norwegian business register, with the registered name and address where the country discloses them.

Category Identity & Verification
Endpoints 1
Key Features 4
Frequently asked questions 4

Used by people at these companies

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse

Trust signals before you integrate

Transparent docs, authenticated requests, and visible reliability details make it easier to evaluate DomScan before you ship.

Live Service status

Check live service health and documented failure responses before you integrate.

OpenAPI API artifacts

OpenAPI, Swagger, Postman, CLI, SDK, and MCP links are one click away.

API keys Protected access

Authenticated endpoints use API keys with clear credit costs before you call them.

10,000 Free allowance

Start with 10,000 monthly credits and upgrade only when usage grows.

What this API helps you ship

Use this page as a production brief: endpoints, examples, response shape, and the workflow pieces needed to plug DomScan into your own product.

Product workflows

Embed domain checks, DNS intelligence, risk signals, or enrichment into onboarding, search, and internal tools.

Analyst automation

Replace repeated manual lookups with scheduled jobs, alerting, and reproducible investigation steps.

Clean JSON data

Use predictable fields, documented status codes, and credit costs instead of scraping provider pages.

AI and ops tooling

Feed agents, dashboards, SOAR playbooks, and CRMs through OpenAPI, SDK, Postman, or MCP.

Integration workflow

A simple path from first request to repeatable production usage.

1
Authenticate once

Send your API key with the documented header and keep requests consistent across services.

2
Query with examples

Start from the curl and HTTP samples, then map the parameters into your application code.

3
Operate and monitor

Use status codes, credit costs, and response fields to build retries, logs, and alerts.

Developer kit

Jump from this page into machine-readable docs, request collections, SDKs, or agent tooling.

Parameters and response map

Scan the inputs, output fields, and status codes before wiring the endpoint into your client.

Request parameters

Parameter

vatcountryrequester
Response fields

Example response

vat_numbercountry_codestatusvalidreasonformat_validchecksumregistered_nameregistered_addressname_discloseddetailsdetails.vat_registered
Status coverage

HTTP status codes

200400401402429

Endpoints

GET /v1/vat/validate
Credits: 1Authentication: Authentication required

Trust signals before you integrate

Transparent docs, authenticated requests, and visible reliability details make it easier to evaluate DomScan before you ship.

Live Service status

Check live service health and documented failure responses before you integrate.

OpenAPI API artifacts

OpenAPI, Swagger, Postman, CLI, SDK, and MCP links are one click away.

API keys Protected access

Authenticated endpoints use API keys with clear credit costs before you call them.

10,000 Free allowance

Start with 10,000 monthly credits and upgrade only when usage grows.

Key Features

Live register checks

Validity comes from the official register at the moment you ask, not from a cached list or a format check alone.

Proof of your check

Send your own EU VAT number as requester to receive a consultation number you can keep as evidence for reverse charge invoicing.

Format and check digits first

Malformed numbers are rejected without a register call, and the check digits are reported for every supported country.

Unknown, never invalid

When a national register is offline or busy, the result is unknown with the reason, and the request is not charged.

Example request

GET /v1/vat/validate?vat=NO923609016MVA bash
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/vat/validate?vat=NO923609016MVA"

Example response

200 OK json
{
  "vat_number": "NO923609016MVA",
  "country_code": "NO",
  "status": "valid",
  "valid": true,
  "reason": "active_vat_registration",
  "format_valid": true,
  "checksum": "valid",
  "registered_name": "EQUINOR ASA",
  "registered_address": "Forusbeen 50, 4035 STAVANGER, Norge",
  "name_disclosed": true,
  "details": { "vat_registered": true, "vat_registered_since": "1989-07-01", "bankrupt": false }
}

Frequently asked questions

Which countries are covered?

The 27 EU countries and Northern Ireland are checked live, as is Norway. UK, Swiss and Australian numbers are checked for format and check digits, because those registers do not offer a free public check.

Why is the business name missing?

Some countries, such as Germany and Spain, do not disclose names and addresses through the EU register. The result then sets name_disclosed to false.

What does unknown mean?

The register could not give an answer: it was unavailable, busy or too slow. Retry later. Unknown results are refunded.

How many credits does it cost?

One credit per check. Checks that end as unknown are not charged.

Related tools and resources

HTTP status codes

These are the HTTP status codes to handle, so you can tell apart successful responses, auth issues, credits, rate limits, missing data, and upstream failures.

OK 200

Request successful

Bad Request 400

Invalid parameters

Unauthorized 401

Missing or invalid API key/session.

Payment Required 402

Not enough credits to run this request.

Too Many Requests 429

Rate limit exceeded