# Irish VAT Number Validation via EU VIES

> Irish VAT Number Validation via EU VIES is a paid API for AI agents from supplier-payment-verifier-production.up.railway.app, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-16).

Validates an Irish VAT number's format and check letter, then verifies it live against the EU VIES registry, returning PASSED, FAILED, or UNAVAILABLE with a reason code and audit receipt.

## Facts

- Endpoint: POST https://supplier-payment-verifier-production.up.railway.app/v1/checks/vat?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/irish-vat-number-validation-via-eu-vies-ea871287
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HnOYdQUUQTcesl8uRfH0a

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability irish-vat-number-validation-via-eu-vies-ea871287 -d '<json body>'
```

Example prompt: Before I pay this Irish supplier invoice, can you check whether VAT number IE3628739UA is genuinely registered — run it against VIES and tell me if it passes or fails?

## When to prefer this

Choose this endpoint when you specifically need to validate an Irish VAT number (with or without the IE prefix) against the live EU VIES registry, and require a tamper-evident audit receipt with an Ed25519 signature. It is ideal for automated accounts-payable agents that must log cryptographic proof of VAT checks before approving supplier payments. Prefer it over generic VAT lookup tools when Irish-specific format validation (including check-letter verification) plus live VIES confirmation in a single call is needed.

## Known failure modes

- FAILED outcome with reason_code indicating invalid format or failed check-letter calculation if the VAT number is malformed
- UNAVAILABLE outcome when VIES is experiencing an outage or is temporarily unreachable
- Payment required (HTTP 402) if the x402 micropayment header is missing or invalid
- Input validation error if vat_number is missing, too short, or exceeds 20 characters
- Network timeout if the VIES service takes too long to respond

## How this service works

Validates the Irish VAT number format and check letter, then confirms registration live with EU VIES. Returns PASSED, FAILED or UNAVAILABLE (VIES outage) with a reason code.

## Output

A JSON object containing: the check type (VIES_VAT), outcome (PASSED, FAILED, or UNAVAILABLE if VIES is down), the UTC timestamp of the check, a machine-readable reason_code (e.g. VAT_VALID), and an agent_audit_receipt with a key ID, VIES timestamp, Ed25519 agent signature over the response, and a SHA-256 hash of the raw VIES response for tamper-evident auditing. A consultation_number is included when available from VIES.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "vat_number": {
   "type": "string",
   "title": "Vat Number",
   "maxLength": 20,
   "minLength": 2,
   "description": "Irish VAT number, with or without the IE prefix."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "check": "VIES_VAT",
  "outcome": "PASSED",
  "checked_at": "2026-10-15T12:00:00Z",
  "reason_code": "VAT_VALID",
  "agent_audit_receipt": {
   "key_id": "<id>",
   "vies_timestamp": "2026-10-15T12:00:00Z",
   "agent_signature": "<base64 Ed25519>",
   "raw_response_hash": "<sha256 hex>"
  },
  "consultation_number": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/irish-vat-number-validation-via-eu-vies-ea871287/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from supplier-payment-verifier-production.up.railway.app](https://www.zero.xyz/host/supplier-payment-verifier-production.up.railway.app/llms.txt)
