agentsclimarketplace

Vies vat validation

Skill Nolpak14/getregdata/skills/vies-vat-validation

Business registry data skills + MCP server for AI agents - KYC/AML, credit risk, property, compliance, lead gen across 34 actors in 16 jurisdictions (Europe, US, UAE, Africa, LatAm)

Install
npx -y skills add Nolpak14/getregdata --skill vies-vat-validation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Validate any EU VAT number for free via the official EU VIES service - confirm a counterparty's VAT registration, get the registered name and address (where the member state shares it), and obtain a consultation number as audit proof. Use as the first step of a KYB / KYC / AML check: validate the VAT, then pull the full registry record. Also validates EU EORI (customs/trade) numbers via the official EOS service. Trigger on: 'validate VAT number', 'check EU VAT', 'VIES', 'is this VAT valid', 'VAT number lookup', 'verify a VAT registration', 'EU VAT check', 'validate EORI number', 'EORI check'. VIES is keyless and free; for the full company record it routes to the free national skills and the paid regdata registry actors.

SKILL.md

8.3 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

vies-vat-validation

Free, official EU VAT-number validation via VIES (VAT Information Exchange System). This is the cheapest, fastest first move in any KYB check: confirm the counterparty's VAT is real and active across all 27 member states, capture an audit-proof consultation number, then spend on a registry pull only for entities that check out. No key, no registration.

Persona

You are a KYB / AML analyst onboarding an EU counterparty. Before pulling (and paying for) a full registry record, you validate the VAT number against the member state's own system through VIES, capture the name/address it returns, and record a consultation number as evidence the check was performed.

What this gives you (for free)

  • Validity - whether the VAT number is currently registered in its member state (isValid).
  • Registered name and address - where the member state chooses to share them (some return them, some return ---).
  • Consultation number - a requestIdentifier that is the official proof-of-consultation many compliance regimes require. It is only issued when you supply your own VAT as the requester (see below).
  • Service status - which member-state services are currently up.

Official EU Commission (DG TAXUD) service. Reuse permitted with source acknowledgement; provided "as is", no SLA. Validation only - VIES is not a company registry.

Authentication

None. VIES is keyless and needs no registration. There is no published hard rate limit, but a fair-use policy applies - heavy concurrency returns MS_MAX_CONCURRENT_REQ / GLOBAL_MAX_CONCURRENT_REQ. Throttle batch checks.

API reference

Base URL: https://ec.europa.eu/taxation_customs/vies/rest-api

#PurposeMethod + pathExample
1Validate a VAT numberGET /ms/{countryCode}/vat/{vatNumber}/ms/DE/vat/811569869
2Validate + consultation numberPOST /check-vat-number (JSON body)body includes requester VAT
3Member-state service statusGET /check-status/check-status
# Simple validation
curl "https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/811569869"

# With a consultation number (proof of check) - supply your own VAT as requester
curl -X POST "https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number" \
  -H "Content-Type: application/json" \
  -d '{"countryCode":"DE","vatNumber":"811569869",
       "requesterMemberStateCode":"PL","requesterNumber":"5260250274"}'

Coverage: the 27 member states, plus XI for Northern Ireland and EL for Greece. GB (Great Britain) is not in VIES since Brexit - for a UK company use companies-house-uk instead.

Workflow: VAT-first KYB

1. Validate the counterparty VAT
   GET /ms/{countryCode}/vat/{vatNumber}
   -> isValid true? capture name/address if returned

2. Get audit proof (if your compliance file needs it)
   POST /check-vat-number with your own requesterMemberStateCode + requesterNumber
   -> record the requestIdentifier (consultation number) and requestDate

3. Route to the full record using the countryCode
   -> pull directors / beneficial owners / financials from the right national source
      (free skill where one exists, paid actor otherwise - see cross-sell)

Output interpretation

  • isValid: false is not always "fake". It can mean the number is genuinely unregistered, OR the format is wrong, OR (see next point) the member-state service could not answer. Read userError before concluding.
  • A failed service call is not an invalid VAT. MS_UNAVAILABLE, SERVICE_UNAVAILABLE, TIMEOUT, INVALID_REQUESTER_INFO mean the check did not complete - treat as UNCONFIRMED and retry, never as "invalid". This is the same discipline regdata-kyc-aml applies to incomplete screens.
  • name/address are often ---. Many member states validate the number without returning identity. A blank name is a member-state privacy choice, not evidence the company does not exist.
  • The consultation number needs a requester VAT. requestIdentifier is blank on the simple GET; supply requesterMemberStateCode + requesterNumber (your own VAT) on the POST to get the legally-useful consultation number.
  • VIES confirms a VAT, nothing more. It does not give directors, owners, financials, or status beyond VAT registration. That is the cross-sell.

Cross-sell - from a valid VAT to the full record

VIES tells you the VAT is real and which country the entity is in. Use the countryCode to pull the actual company data - free where a national skill exists, paid actor otherwise:

CountryFull record via
Polandregdata/crbr-beneficial-owners-scraper, regdata/krs-fullnames-scraper
Germanyregdata/germany-handelsregister-scraper
Spainregdata/spain-company-directory-scraper
Italyregdata/italy-registro-imprese-scraper
Belgiumregdata/belgium-kbo-company-scraper
Franceregdata/societe-com-scraper (or the free france-company-lookup for identity)
Northern Ireland / UKfree companies-house-uk

For a full compliance workflow (risk scoring, PEP and adverse-media overlays) route to regdata-kyc-aml. Paid actors use a free Apify token: https://apify.com?fpr=getregdata.

Bonus: EORI validation (the other EU trade ID)

VAT and EORI are the two EU trade identifiers, so this skill also validates EORI numbers (the ID every business needs to move goods across the EU customs border). The official EU EOS service is a free, keyless SOAP endpoint:

  • WSDL: https://ec.europa.eu/taxation_customs/dds2/eos/validation/services/validation?wsdl
  • Operation: validateEORI (namespace http://eori.ws.eos.dds.s/), up to 10 EORIs per request, max 100 req/s.
  • Returns per EORI: status + statusDescr (valid/invalid), and name/address only where the operator consented to publication.
# minimal SOAP call (one EORI)
curl -s "https://ec.europa.eu/taxation_customs/dds2/eos/validation/services/validation" \
  -H "Content-Type: text/xml" \
  -d '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eor="http://eori.ws.eos.dds.s/">
        <soapenv:Body><eor:validateEORI><eor:eori>IE2025292W</eor:eori></eor:validateEORI></soapenv:Body>
      </soapenv:Envelope>'

Gotchas: unlike VAT, a valid EORI usually returns no name/address (publication is opt-in, and most operators opt out) - so EORI confirms existence, rarely identity. GB (UK) EORIs are not in this EU service post-Brexit (HMRC has a separate checker). EORI demand is much lower than VAT - it only matters for cross-border goods traders.

Related skills

  • regdata-kyc-aml - the full KYC/AML/KYB framework; VAT validation is its cheapest first step.
  • sanctions-pep-screening - screen the entity and its people once the VAT confirms who they are.
  • gleif-lei-lookup - resolve the entity to its global LEI and corporate structure.
  • companies-house-uk / france-company-lookup / finland-company-registry - free national records for the entity behind a validated VAT.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,984. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.