> ## Documentation Index
> Fetch the complete documentation index at: https://docs.avatcado.com/llms.txt
> Use this file to discover all available pages before exploring further.

# VAT Rates

> Look up current VAT rates for all supported countries

# VAT Rates

Retrieve current VAT rates for all **31 supported countries**: all EU 27 member states, the United Kingdom, Switzerland, Liechtenstein, and Norway. Rates include standard, reduced, super-reduced, and zero rates.

<Info>
  VAT rates endpoints are **free and unlimited** and do not count against your monthly validation quota. Burst rate limiting still applies.
</Info>

## List all rates

<CodeGroup>
  ```bash curl theme={null}
  curl -H "Authorization: Bearer avat_live_your_api_key" \
    "https://api.avatcado.com/v1/rates"
  ```

  ```typescript @avatcado/node theme={null}
  import Avatcado from "@avatcado/node";

  const avatcado = new Avatcado("avat_live_your_api_key");
  const { data, error } = await avatcado.rates.list();
  ```

  ```python Python theme={null}
  from avatcado import Avatcado

  avatcado = Avatcado("avat_live_your_api_key")
  result = avatcado.rates.list()
  ```
</CodeGroup>

```json theme={null}
{
  "data": [
    {
      "country_code": "AT",
      "country_name": "Austria",
      "currency": "EUR",
      "standard_rate": 20,
      "other_rates": [
        { "rate": 13, "type": "reduced" },
        { "rate": 10, "type": "reduced" }
      ],
      "updated_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "meta": {
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "count": 31
  }
}
```

## Get rates for a specific country

<CodeGroup>
  ```bash curl theme={null}
  curl -H "Authorization: Bearer avat_live_your_api_key" \
    "https://api.avatcado.com/v1/rates/NL"
  ```

  ```typescript @avatcado/node theme={null}
  const { data, error } = await avatcado.rates.get("NL");
  ```

  ```python Python theme={null}
  result = avatcado.rates.get("NL")
  ```
</CodeGroup>

```json theme={null}
{
  "data": {
    "country_code": "NL",
    "country_name": "Netherlands",
    "currency": "EUR",
    "standard_rate": 21,
    "other_rates": [
      { "rate": 9, "type": "reduced" }
    ],
    "updated_at": "2026-01-01T00:00:00.000Z"
  },
  "meta": {
    "request_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
```

The country code is case-insensitive: `nl`, `Nl`, and `NL` all work.

## Supported countries

| Code | Country        | Currency | Standard Rate |
| ---- | -------------- | -------- | ------------- |
| `AT` | Austria        | EUR      | 20%           |
| `BE` | Belgium        | EUR      | 21%           |
| `BG` | Bulgaria       | BGN      | 20%           |
| `CH` | Switzerland    | CHF      | 8.1%          |
| `CY` | Cyprus         | EUR      | 19%           |
| `CZ` | Czech Republic | CZK      | 21%           |
| `DE` | Germany        | EUR      | 19%           |
| `DK` | Denmark        | DKK      | 25%           |
| `EE` | Estonia        | EUR      | 22%           |
| `EL` | Greece         | EUR      | 24%           |
| `ES` | Spain          | EUR      | 21%           |
| `FI` | Finland        | EUR      | 25.5%         |
| `FR` | France         | EUR      | 20%           |
| `GB` | United Kingdom | GBP      | 20%           |
| `HR` | Croatia        | EUR      | 25%           |
| `HU` | Hungary        | HUF      | 27%           |
| `IE` | Ireland        | EUR      | 23%           |
| `IT` | Italy          | EUR      | 22%           |
| `LI` | Liechtenstein  | CHF      | 8.1%          |
| `LT` | Lithuania      | EUR      | 21%           |
| `LU` | Luxembourg     | EUR      | 17%           |
| `LV` | Latvia         | EUR      | 21%           |
| `MT` | Malta          | EUR      | 18%           |
| `NL` | Netherlands    | EUR      | 21%           |
| `NO` | Norway         | NOK      | 25%           |
| `PL` | Poland         | PLN      | 23%           |
| `PT` | Portugal       | EUR      | 23%           |
| `RO` | Romania        | RON      | 19%           |
| `SE` | Sweden         | SEK      | 25%           |
| `SI` | Slovenia       | EUR      | 22%           |
| `SK` | Slovakia       | EUR      | 23%           |

## Rate types

Each country has a `standard_rate` and an `other_rates` array. Rate types include:

* **`reduced`**: Lower rate for essentials (food, books, medicine)
* **`super_reduced`**: Even lower rate available in some countries (e.g. France 2.1%)
* **`zero`**: 0% rate for specific categories (e.g. UK zero-rated goods)

### Non-EU rate details

* **Switzerland**: 8.1% standard, 3.8% reduced (accommodation), 2.6% reduced (food, books, medicines)
* **Liechtenstein**: Same rates as Switzerland (shared VAT territory)
* **Norway**: 25% standard, 15% reduced (food), 12% reduced (transport, accommodation)

## Error handling

Unknown country codes return a `404` with a structured error:

```bash theme={null}
curl -H "Authorization: Bearer avat_live_your_api_key" \
  "https://api.avatcado.com/v1/rates/XX"
```

```json theme={null}
{
  "error": {
    "code": "not_found",
    "message": "No VAT rates found for country code: XX",
    "docs_url": "https://docs.avatcado.com/errors/not_found"
  },
  "meta": {
    "request_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
```

## Data freshness

Rates are updated manually when governments announce changes (typically 1-2 times per year). The `updated_at` field shows when each country's rate data was last refreshed.
