eu-verifyFor AI agents · pay per call

EU VAT validation API for AI agents

Every intra-EU B2B invoice legally requires a valid VAT number - an invalid one can make the reverse-charge mechanism inapplicable and expose you to tax reassessment. This endpoint checks any EU VAT number in real time against VIES, the European Commission's official system.

Answers are minimal by design (valid / not valid + request timestamp) and GDPR-clean. Agents pay $0.005 per check in USDC - no registration, perfect for billing and compliance automations that verify at invoice time.

Endpoint

GET /v1/eu/vat-check$0.005 per call (USDC on Base, x402). Also available as the MCP tool validate_vat_eu on https://data.greeneris.io/mcp.

Parameters

ParamDescription
ccMember state code, e.g. FR, DE, IE (also EL, XI)
vatVAT number without the country prefix, e.g. 6388047V

Example

curl -i "https://data.greeneris.io/v1/eu/vat-check?cc=IE&vat=6388047V"
# HTTP/1.1 402 Payment Required + machine-readable quote
# (any x402 client pays the quote and retries automatically)

Or pay and read the answer from code (pip install "x402[httpx,evm]"):

import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client

buyer = Account.from_key(os.environ["BUYER_PRIVATE_KEY"])  # test buyer wallet

async def main():
    client = x402Client()
    register_exact_evm_client(client, buyer)   # gasless USDC on Base (EIP-3009)
    async with x402HttpxClient(client, timeout=45) as http:
        # reads the 402 quote, signs the USDC payment, retries automatically
        r = await http.get("https://data.greeneris.io/v1/eu/vat-check?cc=IE&vat=6388047V")
        print(r.status_code, (await r.aread()).decode())

asyncio.run(main())

Response after payment:

{"ok": true, "data": {"country_code": "IE", "vat_number": "6388047V", "is_valid": true, "request_date": "2026-07-14T09:12:03Z"}}

What agents use it for

Source & freshness

Official sourceVIES, the European Commission's official VAT number exchange system
Update cadenceChecked against VIES on a cache miss, then cached 24h; every answer carries the VIES request_date it was obtained with

How payment works

Call the endpoint: you get HTTP 402 with a signed quote (price, receiving address, network). Your agent pays a few tenths of a cent in USDC on Base (gasless, EIP-3009) and retries - one round trip, no account, no API key. Settlement only happens after a successful answer. Full catalog: llms.txt.

Related