# European Union API: Validate EU VAT number

> Checks an EU VAT number in the European Commission's VIES service and returns whether it is valid, with the registered name and address when the country makes them available.

Unofficial. Not affiliated with or endorsed by European Union.

- Page: https://fous.com/methods/ec.europa.eu/validate-vat-number
- Method: `ec.europa.eu/validate_vat_number`, version 1
- Website: ec.europa.eu
- Returns: valid, country, vat_number, registered_name, address, checked_at, note
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `country` | string | no |  | Country name or two-letter VAT code when the number has no prefix; for example Ireland or IE. |
| `vat_number` | string | yes | `"IE6388047V"` | VAT number as shown on an invoice, with or without country prefix, spaces, dots or dashes; for example IE6388047V. |

## Output

From a run on Oct 31, 2026. Its input:

```json
{
  "vat_number": "IE6388047V"
}
```

Its output:

```json
{
  "note": null,
  "valid": true,
  "address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
  "country": "Ireland",
  "page_url": "https://ec.europa.eu/taxation_customs/vies/",
  "checked_at": "2026-09-28T23:02:28.713000+00:00",
  "vat_number": "IE6388047V",
  "registered_name": "GOOGLE IRELAND LIMITED",
  "raw_service_status": "VALID",
  "request_identifier": null
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"ec.europa.eu/validate_vat_number","input":{"vat_number":"IE6388047V"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- Can you check whether the VAT number DE 129 273 398 on this supplier invoice is actually valid?
- Look up FR40303265045 in the europa.eu VIES system and tell me the registered company name and address
- Is NL859048123B01 a real, active EU VAT registration? I need to confirm before invoicing reverse charge.
- Verify Italian VAT number 00743110157 for me — country is Italy, the invoice shows it without the IT prefix
- Using the European Commission VIES service on europa.eu, confirm if ESB-12345678 from Spain is registered and who it belongs to

## Input schema

```json
{
  "type": "object",
  "required": [
    "vat_number"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter VAT code when the number has no prefix; for example Ireland or IE."
    },
    "vat_number": {
      "type": "string",
      "description": "VAT number as shown on an invoice, with or without country prefix, spaces, dots or dashes; for example IE6388047V."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "valid",
    "country",
    "vat_number",
    "registered_name",
    "address",
    "checked_at",
    "note",
    "page_url",
    "request_identifier",
    "raw_service_status"
  ],
  "properties": {
    "note": {
      "type": [
        "string",
        "null"
      ],
      "description": "Reason the check could not be completed, if any."
    },
    "valid": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "Whether VIES confirms this VAT number; null if validation could not be completed."
    },
    "address": {
      "type": [
        "string",
        "null"
      ],
      "description": "Registered address if made available by the country."
    },
    "country": {
      "type": "string",
      "description": "Country where the VAT number is registered."
    },
    "page_url": {
      "type": "string",
      "description": "European Commission VIES validation page."
    },
    "checked_at": {
      "type": "string",
      "format": "date-time",
      "description": "Time of the VIES check with timezone."
    },
    "vat_number": {
      "type": "string",
      "description": "VAT number without punctuation, including the country prefix."
    },
    "registered_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Registered name if made available by the country."
    },
    "raw_service_status": {
      "type": "string",
      "description": "Original VIES service status.",
      "x-fous-developer": true
    },
    "request_identifier": {
      "type": [
        "string",
        "null"
      ],
      "description": "VIES request identifier when issued.",
      "x-fous-developer": true
    }
  },
  "additionalProperties": false
}
```

## See more

- [European Union API: Search EU public procurement notices](https://fous.com/methods/ted.europa.eu/search-tenders.md): Finds recently published EU procurement notices matching what is being bought, with buyer, estimated value, submission deadline and TED notice link. Open-only results must have a future submission deadline.
- [European Union API: Search EU contract awards](https://fous.com/methods/ted.europa.eu/search-contract-awards.md): Finds published EU contract award notices on Tenders Electronic Daily by contract topic or winning company, newest publication first, optionally limited to a buyer country and a start date. Values and tender counts are included when published; counts across lots are summed.
- [European Union API: Get Eurostat statistic for a country](https://fous.com/methods/ec.europa.eu/get-statistic.md): Looks up an official Eurostat statistic for an EU or EEA country and the EU27 figure for the same period. Quarterly and half-yearly series return the reporting period that contains a requested month.
- [European Union API: Search EU law](https://fous.com/methods/eur-lex.europa.eu/search-eu-law.md): Searches EUR-Lex legal acts by topic, ranked by the site's relevance, filtered by document type, year of adoption and in-force status. Short names and ELI links are included when shown in the results.
- [European Union API: Get EU law article](https://fous.com/methods/eur-lex.europa.eu/get-law-article.md): Gets the official text and key dates of one article of an EU regulation or directive from EUR-Lex, in the latest consolidated version when there is one, in any official EU language.
- [European Union API: Convert currency](https://fous.com/methods/ecb.europa.eu/convert-currency.md): Converts an amount between currencies using ECB euro reference rates, including euro and cross-currency conversions. Uses the latest preceding published rate when the date has none.
- [European Union API: Get euro exchange rates](https://fous.com/methods/ecb.europa.eu/get-euro-exchange-rates.md): Gets the official ECB euro reference exchange rates for a day, or the latest published day. Weekends, holidays and dates before publication return the previous published day.
- [European Union API: Get key interest rates](https://fous.com/methods/ecb.europa.eu/get-key-interest-rates.md): Returns the ECB's current deposit facility, main refinancing operations and marginal lending facility rates with their effective date. Optionally includes earlier rate changes, newest first.
- [All European Union methods](https://fous.com/methods/europa.eu.md)
