EORI validation API

EORI Validation API

Check EORI numbers from your own software. One GET request checks the format and asks the register for the number's prefix: HMRC's public Check an EORI number API for GB numbers, the European Commission's EORI validation service for EU and Northern Ireland (XI) numbers. You get the registration status as JSON, with name and address when the trader agreed to publish them.

Example request and response

The example from the /v2/eori documentation. Spaces, dots, dashes and lower case in eori_number are accepted. A number without its country prefix needs country_code, e.g. -d country_code=DE.

curl -G "https://api.vatcheckapi.com/v2/eori" \
  -d eori_number=DE4204891 \
  -H "apikey: YOUR-API-KEY"
{
  "country_code": "DE",
  "eori_number": "DE4204891",
  "format_valid": true,
  "registration_info": {
    "is_registered": true,
    "name": "Friedrich-Alexander-Universität Erlangen-Nürnberg",
    "address": "Freyeslebenstr. 1\n91058 Erlangen\nGermany",
    "address_parts": {
      "street": "Freyeslebenstr. 1",
      "postcode": "91058",
      "city": "Erlangen",
      "country": "Germany"
    },
    "checked_at": "2026-10-04T19:04:07Z"
  },
  "source": "eu_eos"
}

Response fields

country_code
The country prefix of the number: one of the 27 EU member states (GR for Greece), XI for Northern Ireland or GB.
eori_number
The number as it was checked: normalised, upper case, with its country prefix.
format_valid
Whether the number has a valid EORI format. If false, no register was asked.
registration_info.is_registered
Whether the register lists the number as a valid EORI number.
registration_info.name, registration_info.address
The trader's name and address, one line each for street, postcode and city, and country. null when the register published none.
registration_info.address_parts
street, postcode, city and country as the register publishes them, or null. HMRC sends no country, so country is null for GB numbers.
registration_info.checked_at
When the register was asked (UTC). null when the format is invalid.
source
The register that answered: hmrc for GB numbers, eu_eos (European Commission) for EU and XI numbers. null when the format is invalid.

Use cases

Customs and forwarding software

Check the EORI number of the importer or exporter before a declaration is filed, and show the registered name where it is published.

Customer and supplier onboarding

Validate the EORI number when a trading partner signs up, next to their VAT number, with the same API key.

Stored numbers

Re-check the EORI numbers in your ERP or customs system before large shipments. Registrations can end.

Registers

PrefixRegistersource
GBHMRC’s public Check an EORI number APIhmrc
EU member states and XIThe European Commission’s EORI validation serviceeu_eos

The European Commission updates its register from the national databases once a day, so an EU number issued very recently may not be listed yet.

Status codes and billing

StatusWhenCounted
200 with format_valid: falseThe number does not match the EORI format of its country. No register is asked.Yes
422eori_number is missing or longer than 64 characters, or the number does not start with a supported country code: it starts with another country’s code (such as EL or US), or it has none and country_code names no supported one.No
503The register did not answer in time, or the GB rate limit is used up for the moment (then with Retry-After: 1).No

The checks do not prove who you are dealing with: they show what the register returned at the time of the check.

Start on the free plan

The free plan includes 150 requests a month. Each EORI check counts as one request, including numbers with an invalid format. Validation errors (422) and checks the register could not answer (503) are not counted.

Frequently asked questions

Which EORI numbers can I check?

Numbers from the 27 EU member states, Northern Ireland (XI) and Great Britain (GB). Greece is GR in EORI numbers, not EL as in VAT numbers. A number that starts with any other country code, such as EL or US, is a 422 validation error and is not counted.

Where are GB and XI numbers checked?

GB numbers with HMRC's public Check an EORI number API. XI numbers with the European Commission, because Northern Ireland's customs activities fall under EU rules. Since the end of the Brexit transition period, GB numbers are not in the EU's register.

Is there a rate limit for GB numbers?

Yes. HMRC allows only a few requests per second for all our customers together, so each account gets about one uncached GB lookup per second. Further requests in the same burst are answered with a 503 and Retry-After: 1 and are not counted. Check GB lists one number after the other. Cached GB numbers and EU or XI numbers are not paced this way.

Are answers cached?

Yes. A registered number is cached for up to 1 hour, a number that is not registered for up to 10 minutes. Within that time the same number gets the same answer, with the checked_at of the original lookup. Every answer, cached or not, counts as one request.

Why are name and address sometimes null?

The registers only publish a trader's name and address when the trader agreed to it. A registered number can therefore come back with is_registered: true and no name or address.

Can I test without using my quota?

Yes, on plans with sandbox API keys (Medium and above, see pricing). With a sandbox API key no register is asked and every check costs nothing. The answer depends on the last character of the number: 8 or 9 is not registered, 6 or 7 is registered without name and address, anything else is registered to a fictional trader. See the sandbox table.

Can AI agents check EORI numbers?

Yes. The vatcheckapi MCP server has a checkEori tool that calls the same endpoint.

Related

Free VAT and EORI tools

Start using our VAT Validation API for free today!

Get 150 validations / month for free