---
title: "EU merchant verification bundle: VIES + national register + LEI, one verdict — $0.05"
method: GET
path: "/v1/data/company/verify/{vatId}"
tags: ["data"]
---

# EU merchant verification bundle: VIES + national register + LEI, one verdict — $0.05

`GET /v1/data/company/verify/{vatId}`

## Request

- Base URL: `https://x402.asterpay.io`
- URL: `https://x402.asterpay.io/v1/data/company/verify/{vatId}`
- Auth: one of:
  - API key in header `PAYMENT-SIGNATURE`
  - HTTP payment

One call verifies an EU business before an agent pays it: VAT validity and registered name/address (VIES), national trade-register status and legal form (Finland live via PRH; other member states report not_available), LEI record and its status (GLEIF), cross-checks between the three (name, country, active status), explicit risk_flags and a verdict of verified / partial / failed with a confidence level. Includes the next step to resolve the merchant payout endpoint for EUR settlement. Source: European Commission VIES / PRH / GLEIF (official EU service; CC BY 4.0 (PRH); CC0 (GLEIF)). Cadence: live; observed_at in the response is the upstream timestamp.

## Path parameters

- `vatId` string, required

## Response `200`

EU merchant verification bundle: VIES + national register + LEI, one verdict

- object
  - `success` boolean, required
  - `data` object, required: Door-specific payload; see the door description and GET /v1/data for an example URL
  - `source` object, required
    - `name` string, required
    - `url` string, required
    - `license` string, required
  - `observed_at` string, nullable, required: Upstream publication/observation time (ISO 8601). Never the AsterPay fetch time.
  - `fetched_at` string, required: When AsterPay last fetched from the upstream
  - `cadence` 'live' | '5m' | '15m' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly', required
  - `next_expected` string, nullable: Earliest time a newer upstream value is expected
  - `cache_expires_at` string
  - `stale` boolean, required: true when the upstream failed and a cached copy under 24h old was served
  - `timestamp` string, required

## Other responses

- `402`: Payment Required — pay via x402 or MPP (USDC on Base, Ethereum, Polygon, Arbitrum, Optimism or SKALE), then retry. See the WWW-Authenticate and Payment-Required response headers, or the `accepts` array below. The example is the exact body the runtime returns (minus per-request extras such as example_response and extensions.bazaar).

---

[API](https://skmtc.dev/asterpay/apis/asterpay-data-api.md) · [All operations](https://skmtc.dev/asterpay/apis/asterpay-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asterpay/apis/asterpay-data-api/revisions/97b4ab464b3b?raw)
