For customs, logistics & onboarding software
EORI validation API.
One key.
Clear results.
Check customs registration inside your software. Get EORI validity, the register source and a timestamp as JSON. EU VAT checks use the same key. Results may be served from a cache of up to 24 hours; read checked_at before relying on one.
100 validations / month · 10 requests / minute
Shared across EORI + VAT. No card required.
Need more capacity or daily watches? Paid plans start at €9/month. Compare plans →
Response → your next step
Interactive sample/v1/eoriValid at the sample check time
Illustrative only · no register check performed
- Example source
- EU TAXUD
- Example freshness
- Register response
- Fictional check time (UTC)
- 15 Jan 2026 · 09:30
What your integration should do
Record the returned status, source and UTC check time with your own reference. Keep unresolved checks out of an automatic approval.
Run a first server request →Scope: EORI registration only. It does not establish ownership, trading history, VAT registration or customs clearance.
Example JSON and scope
{
"estado": "valido",
"fuente": "taxud",
"checked_at": "2026-01-15T09:30:00.000Z"
}This sample provides no observation date or validity period. Register publication date is not supplied.
No email, API key or register request needed. No allowance is used.
Want a real public lookup instead?
IT00159560366See what your software gets
A status you can act on.
Run a real public lookup to see the validity decision, register source and check time.
This demo uses the public website lookup. Integrate with your private key at /v1/eori. Results may come from a 24h cache.
GB EORIUK HMRC
XI + EU-27 EORIEU TAXUD
EU VATEU VIES
One key · two controls
EORI and VAT answer
different questions.
EORI checks customs registration. EU VAT checks VAT registration through VIES. A valid result in one does not establish the other; keep each result, source and check time separately.
Checking VAT manually? Use the VATValidate EU checker → For repeated checks, stay here: one API key covers both. No identifier or API key is passed to VATValidate.
01 / Get access
Try one check.
Then build your integration.
Use a supported identifier from your workflow. Save the new key securely, inspect the result, then check your remaining allowance. Stay on Free if it fits.
- 01Request access
- 02Save the key privately
- 03Check on your server
Free includes EORI + VAT validation. Recurring watches require a paid plan. Keep API keys on your server, out of browser code and recordings.
Already paid? Check your delivered key02 / Quickstart
One request.
A useful first result.
- 1. Save your Free key in the server environment variable
EORI_API_KEY. - 2. Run the EORI request. Inspect
estado,fuenteandchecked_at. - 3. Check /v1/usage. EORI and VAT consume the same allowance. For VAT, use
/v1/vat?number=IE6388047V.
Need a manual pre-check before integrating? Read the EU EORI lookup guide for EU-27 and XI customs workflows.
# Set EORI_API_KEY privately in your shell first. curl --fail-with-body 'https://eoricheck.com/v1/eori?number=IT00159560366' \ -H "Authorization: Bearer $EORI_API_KEY" # Same key, shared EORI + VAT allowance: curl --fail-with-body 'https://eoricheck.com/v1/usage' \ -H "Authorization: Bearer $EORI_API_KEY"
Customs software
Check the EORI entered on a booking; route unresolved results to review.
Supplier onboarding
Keep EORI and VAT checks separate in your decision, using one API key.
Your audit record
Store the returned status, source and UTC check time alongside your reference.
03 / Choose capacity when you need it
Start Free.
Pay for the workload you have.
Stay on Free for up to 100 shared validations per month. Mini includes 500 shared validations and one daily EORI watch for €9/month. Choose Starter or above when you need more capacity. Confirm countries, monthly volume and peak request rate before choosing.
Free / Try and keep using
100 shared validations / month
10 requests/min · No recurring watches · No card
Starter / More capacity + monitoring
5,000 shared validations / month
60 requests/min · 5 daily EORI watches
Base €19/month. The checkout shows the amount due before payment.
Moving to a paid plan: receipt, key email, then usage
- Find the receipt and the key email. Check the inbox and spam folder for the address used at checkout. A receipt confirms the transaction details; it does not prove key delivery. The EORICheck key email uses Isabella Franco | EORICheck <hello@eoricheck.com>.
- Use the delivered paid key. Your first paid purchase delivers a separate key. Your original Free key stays Free; requesting another Free key will not recover paid access. One delivered key supports EORI and VAT with a shared allowance.
- Check the plan before adding watches. Run
GET /v1/usagewith the delivered key on your server. This reads your plan and remaining allowance without consuming a validation. Comparetier,quotaandrate_per_minutewith the plan on your receipt.
# Set EORI_API_KEY privately to the key from your paid delivery email. curl --fail-with-body 'https://eoricheck.com/v1/usage' \ -H "Authorization: Bearer $EORI_API_KEY"
| Tier | Shared validations/month | Requests/min |
|---|---|---|
| mini | 500 | 10 |
| starter | 5,000 | 60 |
| growth | 25,000 | 120 |
| scale | 100,000 | 300 |
Already paid but still seeing Free, an error or no key email? Do not purchase again to fix access. Confirm that you used the delivered key, then contact EORICheck support with the receipt reference, purchase time and error code. Never send API keys or card details. A failed request leaves access unverified.
Once the expected plan is confirmed, run your first API check or open monitoring with the delivered key. Adding the first watch creates its initial record; email alerts are sent when the result changes, not merely when a watch is added.
Find the smallest plan for your workload
Count EORI and VAT API validations together. Scheduled monitoring checks do not use that API allowance. These estimates stay in your browser.
Free fits this capacity: €0/month base. No purchase needed for these limits. Get a Free key
Capacity fit is not confirmation of country coverage, payment availability or activation. Monitoring alerts go to one account email; webhooks are not included. Confirm supported countries and the final checkout currency and taxes before paying.
Free
Kick the tyres. No card.
- 100 validations / month
- EORI + VAT from one key
- 10 requests / minute
- Official HMRC + TAXUD + VIES responses · cache up to 24h
Mini
For a small recurring workflow.
- 500 shared EORI + VAT validations / month
- 10 requests / minute
- 1 daily EORI watch + change alerts
- Email support
Your first purchase delivers a new paid key. Replace the Free key in your integration with the delivered key; the original Free key stays Free.
Fulfillment target: key email within 10 minutes after the payment is confirmed. Support response target: 2 business days.Starter
For a single integration.
- 5,000 validations / month
- 60 requests / minute
- EORI + VAT from one key
- Dated CSV export with source + UTC
- 5 daily EORI watches + change alerts
- Email support
Your first purchase delivers a new paid key. Replace the Free key in your integration with the delivered key; the original Free key stays Free.
Fulfillment target: key email within 10 minutes after the payment is confirmed. Support response target: 2 business days.Growth
For a busy customs desk.
- 25,000 validations / month
- 120 requests / minute
- Batch CSV upload + dated report
- 50 daily EORI watches + change alerts
- Priority email support
Your first purchase delivers a new paid key. Replace the Free key in your integration with the delivered key; the original Free key stays Free.
Fulfillment target: key email within 10 minutes after the payment is confirmed. Support response target: 1 business day.Scale
For platforms and brokers.
- 100,000 validations / month
- 300 requests / minute
- Bulk + PDF verification records
- 250 EORI watches · checks every 6 hours
- SLA available on request
Your first purchase delivers a new paid key. Replace the Free key in your integration with the delivered key; the original Free key stays Free.
Fulfillment target: key email within 10 minutes after the payment is confirmed. Support response target: 1 business day.Base prices are in EUR. A “Choose” button opens a secure Stripe checkout that shows the amount due before payment. A “Request” button only sends your contact request; it does not activate a subscription or take payment. Paid plans renew monthly. To cancel, email hello@eoricheck.com from the address used at checkout. The key keeps its paid limits until the end of the month already paid, then returns to Free limits. If a renewal is charged after you asked us to cancel, we refund it.
Operated by Covo Franco Digital LLC, a Wyoming limited liability company · 30 N Gould St Ste N, Sheridan, WY 82801. Contact EORICheck.
Already have a key or lost it?
- Free key: check your password manager or server configuration. It was shown when issued and was not emailed. Requesting it again with the same email will not reveal the secret.
- Paid key: check the inbox and spam folder for the address used at checkout. Your first purchase sends a separate key; your original Free key stays Free. Check paid access.
- Still unable to access it? Email EORICheck support from the address used to request the key or pay. Include the approximate request date, any error code and, for a paid key, the receipt reference. Support must verify account ownership before changing access. Never send API keys or card details.
Do not purchase another plan to recover access. If you no longer control the original email address, mention that in your support request; an email lookup alone cannot establish ownership.
API reference
Endpoints & response handling
https://eoricheck.com/v1/eori?number=IT00159560366GB → HMRC · XI / EU-27 → TAXUD/v1/vat?number=IE6388047VEU VAT → VIES · same key and quota/v1/usagePlan, current period, used and remaining validations/v1/monitoringEORI watches and your plan allowance/v1/monitoring/watchesCreate a paid-plan EORI watch with an initial register checkRead the result, not just HTTP 200
valido means valid at the check time; no_valido means not valid. Other states need review or retry. A response from kv-cache may be up to 24 hours old. Read registro when supplied for the original EORI register.
Authenticate with Authorization: Bearer <key> or x-api-key. Inspect X-Quota-* headers and /v1/usage for remaining capacity.
Missing or invalid key.
Validation paused: monthly quota reached or key canceled. Read the error message and the guide below.
Feature not included in your tier.
Malformed EORI or VAT number.
Rate limit reached. Respect Retry-After.
Register error. No validity decision; validation not billed.
Before you integrate
Common questions.
EORICheck is independent of HMRC, the European Commission, TAXUD and VIES.
What does an EORI validation API do?
It checks whether an EORI customs registration number is valid in the relevant register and returns a result your software can read. EORICheck returns JSON with a validity status, source and check time. A valid EORI is not a guarantee that a shipment will clear customs.
Which countries and registers are supported?
GB EORI numbers are checked through UK HMRC. XI and EU-27 EORI numbers use EU TAXUD. EU VAT validation uses VIES through a separate endpoint with the same key. EORICheck is independent of these authorities and does not provide worldwide tax-ID validation.
Is the API free, and when would I need a paid plan?
Free includes 100 EORI and VAT validations per month combined, at up to 10 requests per minute, with no recurring watches. Stay on Free if it fits. Mini is EUR9/month for 500 shared validations, 10 requests per minute and one daily EORI watch. Starter has a base price of EUR19/month, 5,000 shared validations, 60 requests per minute and 5 daily EORI watches. Confirm your countries, monthly volume and peak rate before choosing a paid plan.
Are results always fresh?
API results may come from a 24-hour cache. Read checked_at for the time of the underlying check, fuente for the response source and registro when supplied for the EORI register. A cached response is not a new register check. Scheduled monitoring performs live checks at the plan cadence.
How should my integration handle an unavailable register?
Treat network failures, non-success HTTP responses and an error or unsupported status as no validity decision. Do not mark the number invalid. Use a bounded retry policy and review unresolved cases; respect Retry-After for rate limits.
Does Free include monitoring and alerts?
No. Mini includes one daily EORI watch. Starter includes up to 5 daily EORI watches, Growth up to 50 daily watches, and Scale up to 250 watches checked every 6 hours. Watch checks do not consume the API validation quota. Alerts go to one email destination when a status changes; the initial check is not a change alert.
Need a workflow around the API?
Validate a list, or check EORI status on a schedule.