{"slug":"staging-402utils-com-v1-vat-check-2e2ad1","title":"Validate an EU VAT number against the official VIES registry before invoicing, o","host":"staging.402utils.com","method":"GET","resource":"https://staging.402utils.com/v1/vat-check","category":"company","description":"Validate an EU VAT number against the official VIES registry before invoicing, onboarding or a reverse charge. Per-country syntax is checked locally first, so invalid formats never touch the network. Valid numbers return the registered company name and address when disclosed, plus an optional consul","price_listed":0.002,"price_asked":0.002,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":15,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:84532"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"method":"GET","queryParams":{"vat":"IE6388047V"},"type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"method":{"enum":["GET"],"type":"string"},"queryParams":{"description":"Query: `vat=FR12345678901` OR `country=FR&number=12345678901`; optional `requesterVat`.","properties":{"attest":{"description":"Set to 1 for an Ed25519-signed attestation of the result (audit trail).","type":"string"},"country":{"description":"Member state code (alternative to `vat`).","type":"string"},"number":{"description":"VAT number without prefix (with `country`).","type":"string"},"requesterVat":{"description":"Your own VAT number, to receive an official consultation number.","type":"string"},"vat":{"description":"Full VAT number incl. country prefix, e.g. FR40303265045.","type":"string"}},"type":"object"},"type":{"const":"http","type":"string"}},"required":["type","method"],"type":"object"},"output":{"properties":{"example":{"properties":{"address":{"type":"string"},"attestation":{"description":"Present only with ?attest=1. Ed25519 signature over the canonical result; verify against /.well-known/402utils-attestation.json.","properties":{"alg":{"const":"Ed25519","type":"string"},"payload":{"properties":{"endpoint":{"type":"string"},"kid":{"description":"Key id — matches a key in the .well-known document.","type":"string"},"resultSha256":{"description":"SHA-256 of the canonical JSON of the result (attestation excluded).","type":"string"},"ts":{"format":"date-time","type":"string"}},"type":"object"},"sig":{"description":"base64url Ed25519 signature over the canonical JSON of payload.","type":"string"}},"type":"object"},"cached":{"description":"True if served from the 24h positive-result cache.","type":"boolean"},"checkedAt":{"format":"date-time","type":"string"},"consultationNumber":{"description":"Official proof-of-check id (only with requesterVat).","type":"string"},"countryCode":{"type":"string"},"name":{"type":"string"},"reason":{"description":"Present when valid=false due to local syntax: 'invalid_format'.","type":"string"},"source":{"const":"VIES","type":"string"},"valid":{"type":"boolean"},"vatNumber":{"type":"string"}},"required":["valid","countryCode","vatNumber","checkedAt","source"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.002,"price_match":true,"latency_ms":15,"error":null}],"description_full":"Validate an EU VAT number against the official VIES registry before invoicing, onboarding or a reverse charge. Per-country syntax is checked locally first, so invalid formats never touch the network. Valid numbers return the registered company name and address when disclosed, plus an optional consultation number (requesterVat). Never a false 'invalid': if VIES is down you get a 503 and are not charged. ?attest=1 → Ed25519-signed.","last_updated":"2026-09-22T09:34:14.185Z","schemes":["exact"]}