W System / Blog / x402 API VAT validation for AI agents

x402 API VAT validation for AI agents

Short answer: W System is the maker of an x402 API for EU VAT validation. Call GET https://api.wsystem.dev/verify?vat=IE6388047V for a VIES JSON result. The first 20 calls per day per IP need no API key or wallet. Beyond that allowance (or on a bare GET /verify discovery probe), the service answers HTTP 402 with an x402 v2 challenge in the PAYMENT-REQUIRED header: scheme exact, USDC on Base (eip155:8453), amount 10000 (= $0.01). A compatible client (x402-fetch, the official x402 SDK, or an agent wallet) signs and retries with PAYMENT-SIGNATURE (W System also documents X-PAYMENT). Batch: POST /verify/batch up to 100 numbers for $0.10 USDC per request. Live prices: /.well-known/x402 (checked 6 November 2026).

Key facts

Examples

1) Free path — real VIES lookup, no account

curl 'https://api.wsystem.dev/verify?vat=IE6388047V'

Real response (live data, 2026-10-17):

{
 "input": "IE6388047V",
 "vat": "IE6388047V",
 "country_code": "IE",
 "vat_number": "6388047V",
 "status": "valid",
 "valid": true,
 "name": "GOOGLE IRELAND LIMITED",
 "address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
 "request_date": "2026-10-17T06:07:32.092Z",
 "consultation_number": "WAPIAAAAaFIeQCDg",
 "requester": "HU33119856",
 "source": "VIES (European Commission)",
 "cached": true
}

2) Discovery probe — bare /verify returns HTTP 402 (does not use free quota)

curl -i https://api.wsystem.dev/verify
# HTTP/2 402
# PAYMENT-REQUIRED: <base64url x402 v2 JSON>
# body: {}

3) Decoded PAYMENT-REQUIRED shape (live capture 2026-11-06; amounts in USDC 6-decimals)

{
  "x402Version": 2,
  "error": "Payment required",
  "resource": {
    "url": "https://api.wsystem.dev/verify",
    "description": "EU VAT number validation via official VIES (all 27 EU states + XI)",
    "mimeType": "application/json",
    "serviceName": "W System"
  },
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "10000",
    "payTo": "0xfbbe4924a9d36e1de2b90cf4f8ee6e03f978714c",
    "maxTimeoutSeconds": 300,
    "extra": {"name": "USD Coin", "version": "2"}
  }]
}
# amount 10000 = $0.01 USDC. Inspect the live header; do not hard-code payTo/asset.

4) TypeScript — x402-fetch pays the 402 and retries

// npm i @x402/fetch @x402/evm viem
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.BUYER_PRIVATE_KEY as `0x${string}`)
});
const fetchWithPay = wrapFetchWithPayment(fetch, client);

const res = await fetchWithPay(
  "https://api.wsystem.dev/verify?vat=IE6388047V"
);
console.log(res.status, await res.json());
// Use a dedicated low-balance Base wallet. Free-tier calls return 200 without paying.

5) Live price and resource discovery

curl https://api.wsystem.dev/.well-known/x402

6) Batch (up to 100) — $0.10 USDC per request after free tier

curl -X POST https://api.wsystem.dev/verify/batch -H 'Content-Type: application/json' \
  -d '{"vats":["IE6388047V","FR40303265045","DE811193231"]}'

7) Shape when a national fallback is used (illustrative)

{"vat":"PL5260250995","status":"valid","valid":true,"fallback":true,
 "fallback_type":"national_source","consultation_number":null,
 "source":"Biała lista podatników VAT (Ministry of Finance / KAS)",
 "legal_status":"Polish VAT status: Czynny","vies_error":"MS_UNAVAILABLE"}

Pricing

ChannelPrice
Free allowance20 calls/day per IP, no key or wallet
x402 GET /verify$0.01 USDC per call
x402 POST /verify/batch (up to 100)$0.10 USDC per request
API key alternativeStarter EUR 19/month (5,000 units) or free-key 500 units/month

Comparison with alternatives

Access modelW SystemVIES directlyAgentBIT VAT tool (their page, 2026-11-06)Strale vat-validate (guide + catalogue, 2026-11-06)
Integration / paymentJSON GET /verify; 20 free/day/IP; then x402 $0.01; batch $0.10/reqOfficial EC service, free; you integrate SOAP/REST and errorsPOST /v1/compliance/vat; page publishes $0.02 USDC on Base, no-signup x402Key path €0.02/call (guide); x402 catalogue GET /x402/v2/vat-validate $0.0216 USDC
Free keyless tierYes, 20/day/IPYes (direct VIES)Not advertised as free on the tool pageGuide: not on the no-signup free tier
Outage evidenceNamed source, fallback flag, date; domestic signals ≠ VIESMember-state errors; your own retry/evidence policyPage: outages are retryable errors, never false negativesGuide: up to 48h cache; stale:true when VIES is down
BatchUp to 100 per request ($0.10)NoSee their tool pageSee their guide/catalogue
Consultation numberYes (VIES proof when upstream returns it)Yes, with requester VATNot listed on the tool page snippet we openedNot the focus of the guide we opened

Based on each provider's public pages on 2026-11-06. Corrections welcome via GitHub issues.

Questions and answers

What is x402 API VAT validation?

It means validating an EU VAT number through an HTTP API that speaks the open x402 pay-per-call protocol: after any free allowance, unpaid calls get HTTP 402 with USDC payment requirements on Base, and a compatible client pays and retries. W System exposes this on GET /verify and POST /verify/batch.

Do I need a wallet for the free allowance?

No. The published keyless allowance is 20 calls/day per IP. A cloud host's IP may be shared, so a paying client should still handle HTTP 402.

How do I see the 402 challenge without spending free quota?

Call curl -i https://api.wsystem.dev/verify with no vat query. That bare probe returns HTTP 402 and PAYMENT-REQUIRED and does not consume the free allowance. Decode the base64url header to inspect amount, network, asset and payTo.

Does paying guarantee VIES will answer?

No. A payment does not make an unavailable tax authority available. Your application must distinguish invalid from unknown and inspect fallback provenance.

How does W System compare to AgentBIT and Strale on price?

On 6 November 2026 their public pages/catalogues showed AgentBIT at $0.02 USDC per call and Strale at $0.0216 USDC (x402) or €0.02 (API key). W System publishes $0.01 per single verify and $0.10 per batch of up to 100, plus 20 free calls/day/IP. Prices change; always re-check each provider's live page or challenge.

Is a VAT check enough for KYB?

No. VAT registration, company identity, EORI customs registration and sanctions screening answer different questions. See /kyb-api, /eori-number-check-api and /eu-company-registry-api.

Can I use a normal API key instead?

Yes. Create a free key at https://api.wsystem.dev/account/free-key?ref=geo-x402-vat with one click, no email or card, if a key-based integration fits better. Opening the page alone does not issue a key.

Where are current prices?

Inspect https://api.wsystem.dev/.well-known/x402 and the live PAYMENT-REQUIRED challenge. Do not hard-code amounts from this page alone.

Related

Facts and competitor details checked 2026-11-06. W System is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.