Docs Pricing Blog Get API Key
EORI Validation API

EORI Validation API — EU Customs Number Verification

Validate EORI numbers across all 27 EU member states plus the UK with a single REST API call. Per-country circuit breakers, intelligent caching, and automatic XI/GB routing for Northern Ireland.

Response — 89ms
{
  "valid": true,
  "eori_number": "NL820646660",
  "country_code": "NL",
  "status": "active",
  "confidence": "HIGH",
  "source": "ec_eori_live",
  "cached": false,
  "response_time_ms": 89
}

What Is EORI and Why Does It Matter?

EORI (Economic Operators Registration and Identification) is a unique identifier required for all businesses importing or exporting goods to or from the EU. Without a valid EORI number, customs declarations are rejected, shipments are delayed, and your supply chain grinds to a halt.

🚢

Customs Compliance

Every import/export declaration to the EU requires a valid EORI number. Invalid numbers cause goods to be held at the border, incurring storage fees and delivery delays.

🇬🇧

Post-Brexit Complexity

UK businesses now need separate GB EORI numbers. Northern Ireland has dual status with XI-prefixed numbers for EU customs. Routing to the correct validation system is critical.

📄

Legacy SOAP Interface

The official EC EORI validation service uses SOAP/XML. No REST API, no JSON, no modern developer tooling. Integration requires specialized SOAP libraries and verbose XML parsing.

Unreliable Upstream

The EC EORI endpoint suffers from the same availability issues as VIES. Country backends go offline without warning, and there is no official status page or SLA.

Reliable EORI Validation for Modern Applications

EuroValidate wraps the EC SOAP endpoint and HMRC REST API in a unified, cached, and monitored REST interface. One endpoint handles all EU countries and the UK.

🇪🇺

27 EU Countries + UK

Full coverage of all EU member states via the EC SOAP endpoint, plus UK EORI validation via the HMRC REST API. One API, complete coverage.

🔄

Automatic XI/GB Routing

Northern Ireland EORI numbers with XI prefix are routed to the EC system. GB-prefixed numbers go to HMRC. Your application does not need to handle this routing logic.

🛡

Per-Country Circuit Breakers

Each country gets an independent circuit breaker. When one country's backend fails, validation for all other countries continues without interruption.

Cached Responses

Dual-layer cache (Redis + PostgreSQL) serves previously validated EORI numbers in under 100ms. Cache TTL is 24 hours with graceful degradation on upstream failure.

📊

Confidence Scoring

Every response includes confidence: HIGH (live), MEDIUM (cached, recent), LOW (cached, stale), or UNKNOWN. Plus upstream_status so you know exactly what is happening.

🔍

Unified Validation

Use the POST /v1/validate endpoint to validate EORI, VAT, and IBAN in a single request. Perfect for onboarding flows and KYB compliance checks.

Validate EORI Numbers in Seconds

A single GET request validates any EU or UK EORI number. No SOAP envelopes, no WSDL, no XML. Just clean JSON over HTTPS.

# Validate a Dutch EORI number
curl "https://api.eurovalidate.com/v1/eori/NL820646660" \
  -H "X-API-Key: your_api_key"

# Response
{
  "success": true,
  "data": {
    "valid": true,
    "eori_number": "NL820646660",
    "country_code": "NL",
    "status": "active"
  },
  "meta": {
    "confidence": "HIGH",
    "source": "ec_eori_live",
    "response_time_ms": 89
  }
}
import httpx

# Validate EU EORI
response = httpx.get(
    "https://api.eurovalidate.com/v1/eori/NL820646660",
    headers={"X-API-Key": "your_api_key"}
)

data = response.json()

if data["data"]["valid"]:
    print(f"EORI {data['data']['eori_number']} is active")
    print(f"Confidence: {data['meta']['confidence']}")
else:
    print("Invalid EORI number")

# Also works with UK EORI (GB prefix)
uk = httpx.get(
    "https://api.eurovalidate.com/v1/eori/GB123456789000",
    headers={"X-API-Key": "your_api_key"}
)
const response = await fetch(
  "https://api.eurovalidate.com/v1/eori/NL820646660",
  { headers: { "X-API-Key": "your_api_key" } }
);

const { data, meta } = await response.json();

if (data.valid) {
  console.log(`EORI ${data.eori_number} is ${data.status}`);
  console.log(`Confidence: ${meta.confidence}`);
} else {
  console.log("Invalid EORI number");
}

Simple, Usage-Based Pricing

Start free. Scale as you grow. No credit card required for the free tier. All plans include EORI validation, VAT, IBAN, and company lookup.

Free
€0 /mo
100 requests/month
  • All endpoints
  • JSON responses
  • Community support
Get Started Free
Starter
€19 /mo
5,000 requests/month included. Then €0.005/req.
  • 5,000 included, €0.005 above
  • All endpoints
  • Batch validation
  • Email support
Start Free Trial
Scale
€149 /mo
100,000 requests/month included. Then €0.002/req.
  • 100,000 included, €0.002 above
  • All endpoints
  • Monitoring webhooks
  • Dedicated support
  • 99.95% SLA
Start Free Trial

Frequently Asked Questions

Common questions about the EuroValidate EORI Validation API.

EORI (Economic Operators Registration and Identification) is a unique identifier assigned to businesses that import or export goods to or from the EU. It is required for all customs declarations and is issued by the customs authority of the EU member state where the business is established.
Customs authorities require valid EORI numbers on all import/export declarations. Using an invalid EORI can result in shipment delays, goods being held at customs, fines, and compliance violations. Validating EORI numbers before submitting customs declarations prevents these costly issues.
Yes. EuroValidate validates UK EORI numbers (GB prefix) via the HMRC REST API. It also handles Northern Ireland's dual status — XI-prefixed EORI numbers are routed to the EC system for EU customs purposes, while GB-prefixed numbers are routed to HMRC.
EuroValidate uses per-country circuit breakers and a dual-layer cache (Redis + PostgreSQL). When the EC EORI endpoint is down, the API returns the last known valid result with a reduced confidence score. The upstream_status field tells your application exactly which systems are available.
Yes. Use the POST /v1/validate unified endpoint to validate EORI, VAT, and IBAN numbers in a single request. This is ideal for onboarding flows where you need to verify multiple business identifiers at once.

Customs Compliance Made Simple

Get your free API key and validate your first EORI number in under 60 seconds.