agentsvc.io

services / vat-validate

utilityoperational · 250 ms

EU VAT Number Validation (VIES)

Validate an EU VAT identification number live against the official EU VIES service, with registered company name and address where the member state discloses them. Checks the national format first. Not charged if the member state service is temporarily unavailable. Params: vat_number (with country prefix, e.g. NL004495445B01, DE811569869) or vat_number + country_code.

Run free trial ↗3 free calls per day with the example input. Paid: $0.003 USDC, no limit.

Call it

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agentsvc.io/api/v1/proxy/vat-validate", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"vat_number":"NL004495445B01"}),
});
const { data, payment } = await res.json();  // payment.transaction = on-chain receipt

Input

FieldTypeDescription
vat_number *stringVAT number, ideally with EU country prefix
country_codestringTwo-letter EU code if the number has no prefix (EL for Greece, XI for Northern Ireland)

Output

FieldTypeDescription
validboolean
format_validboolean
country_codestring
vat_numberstring
full_vat_numberstring
namestring
addressstring
sourcestring
checked_atstring

Example response (data)

{
  "valid": true,
  "format_valid": true,
  "country_code": "NL",
  "vat_number": "004495445B01",
  "full_vat_number": "NL004495445B01",
  "name": "OPENJONGERENVERENIGING DE KOORNBEURS",
  "address": "VOLDERSGRACHT 00001, 2611ET DELFT",
  "source": "EU VIES",
  "checked_at": "2026-10-06T14:17:43.626Z"
}