Unnamed service
GET staging.402utils.com/v1/vat-check
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
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.
Resource: staging.402utils.com/v1/vat-check
Network: eip155:84532 · Asset: 0x036CbD53842c5426634e7929541eC2318f3dCF7e · Pay to: 0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291
Payment methods: — · Last validation: 2026-09-14 11:04:27.148+00
{
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"type": "object",
"properties": {
"vat": {
"type": "string",
"description": "Full VAT number incl. country prefix, e.g. FR40303265045."
},
"attest": {
"type": "string",
"description": "Set to 1 for an Ed25519-signed attestation of the result (audit trail)."
},
"number": {
"type": "string",
"description": "VAT number without prefix (with `country`)."
},
"country": {
"type": "string",
"description": "Member state code (alternative to `vat`)."
},
"requesterVat": {
"type": "string",
"description": "Your own VAT number, to receive an official consultation number."
}
},
"description": "Query: `vat=FR12345678901` OR `country=FR&number=12345678901`; optional `requesterVat`."
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"required": [
"valid",
"countryCode",
"vatNumber",
"checkedAt",
"source"
],
"properties": {
"name": {
"type": "string"
},
"valid": {
"type": "boolean"
},
"cached": {
"type": "boolean",
"description": "True if served from the 24h positive-result cache."
},
"reason": {
"type": "string",
"description": "Present when valid=false due to local syntax: 'invalid_format'."
},
"source": {
"type": "string",
"const": "VIES"
},
"address": {
"type": "string"
},
"checkedAt": {
"type": "string",
"format": "date-time"
},
"vatNumber": {
"type": "string"
},
"attestation": {
"type": "object",
"properties": {
"alg": {
"type": "string",
"const": "Ed25519"
},
"sig": {
"type": "string",
"description": "base64url Ed25519 signature over the canonical JSON of payload."
},
"payload": {
"type": "object",
"properties": {
"ts": {
"type": "string",
"format": "date-time"
},
"kid": {
"type": "string",
"description": "Key id — matches a key in the .well-known document."
},
"endpoint": {
"type": "string"
},
"resultSha256": {
"type": "string",
"description": "SHA-256 of the canonical JSON of the result (attestation excluded)."
}
}
}
},
"description": "Present only with ?attest=1. Ed25519 signature over the canonical result; verify against /.well-known/402utils-attestation.json."
},
"countryCode": {
"type": "string"
},
"consultationNumber": {
"type": "string",
"description": "Official proof-of-check id (only with requesterVat)."
}
}
}
}
},
"paymentRequirements": [
{
"raw": {
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"extra": {
"name": "USDC",
"version": "2"
},
"payTo": "0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291",
"amount": "2000",
"scheme": "exact",
"network": "eip155:84532",
"maxTimeoutSeconds": 60
},
"asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
"payTo": "0xc55A2D530b53CBaD1001e4AfD4720B7E71f9C291",
"scheme": "exact",
"network": "eip155:84532",
"amountAtomic": "2000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.