Rates

Keep the rates of your application up-to-date with a regular VAT rate lookup. This ensures that your invoice states the correct VAT across EU Member States. We have also started to add countries outside the EU and will keep them updated.

VAT rates can change irregularly as governments adapt to new circumstances. We track such announcements closely and store scheduled changes in our database. Any such change will take effect at exactly midnight local time of the respective country.

If you want to quote VAT prices to your customer during checkout, we recommend to use the quotes object. It’s a powerful endpoint because it has been designed to adapt VAT dynamically according to your and your customer’s locations.

The Rate Object

Key Description
abbreviation Abbreviation of local_name.
categories Categories relevant for digital products. Object contains VAT specific to audiobook, broadcasting, ebook, eperiodical, eservice and telecommunication.
country_code 2-letter ISO country code.
country_name Corresponding English name of country_code.
currency 3-letter ISO 4217 local currency code.
local_name Localized name of the VAT identification number.
member_state Boolean indicating whether the country is an EU Member State.
reduced_rates Array of reduced VAT rates in percent.
standard_rate Standard VAT rate in percent.
state_code 2-letter US state code. Only required if country_code is US.
state_name Corresponding English name of state_code.
vat_abbreviation Abbreviation of vat_local_name.
vat_local_name Localized name of the VAT.

List All Rates

Retrieves all VAT rate objects, including standard VAT rates and VAT rates for digital products.

You can filter the results by a 2-letter ISO country code to only obtain the rate object for a specific country.

Request

Authorize with Public Key Secret Key

curl -X GET https://api.vatstack.com/v1/rates \
     -H "X-API-KEY: pk_live_6c46e7d65bc2caccdbf48f4a9c2fcba7" \

Query Parameters

Parameter Description
country_code optional Filter results by a 2-letter ISO country code.
limit optional A limit on the number of object to be returned. Limit can be 1 to 100, and the default is 20.
member_state optional Boolean to filter results by EU Member State. Always true without a subscription.
page optional Integer for the current page.
state_code optional Filter results by a 2-letter US state code. Required if country_code is US.

Response

VAT rates successfully obtained for member_state set to true.

{
  "has_more": false,
  "rates_count": 27,
  "rates": [
    {
      "abbreviation": "UID",
      "categories": {
        "audiobook": 10,
        "broadcasting": 10,
        "ebook": 10,
        "eperiodical": 10,
        "eservice": 20,
        "telecommunication": 20
      },
      "country_code": "AT",
      "country_name": "Austria",
      "currency": "EUR",
      "local_name": "Umsatzsteuer-Identifikationsnummer",
      "member_state": true,
      "reduced_rates": [
        10,
        13
      ],
      "standard_rate": 20,
      "state_code": null,
      "state_name": null,
      "vat_abbreviation": "MwSt.",
      "vat_local_name": "Mehrwertsteuer"
    },
    ...
  ]
}

Retrieve Geolocated Rates

Retrieves a geolocated VAT rate by IP address.

While you can let customers choose the country they reside in, it may result in fraudulent data. It is best practice to geolocate the customer with their IP address, as the IP address counts as your tax evidence for VAT OSS returns.

You can leave out the IP address in your query and Vatstack will automatically use the IP address coming from the request. Leaving out the IP address can be useful if the request originates from a front-end application.

Request

Authorize with Public Key Secret Key

curl -X GET https://api.vatstack.com/v1/rates/geolocate \
     -H "X-API-KEY: pk_live_6c46e7d65bc2caccdbf48f4a9c2fcba7" \

Query Parameters

Parameter Description
ip_address optional IPv4 or IPv6 address to geolocate. If none is provided, the IP address of the request is used.

Response

VAT rate successfully obtained.

{
  "abbreviation": "UID",
  "categories": {
    "audiobook": 10,
    "broadcasting": 10,
    "ebook": 10,
    "eperiodical": 10,
    "eservice": 20,
    "telecommunication": 20
  },
  "country_code": "AT",
  "country_name": "Austria",
  "currency": "EUR",
  "local_name": "Umsatzsteuer-Identifikationsnummer",
  "member_state": true,
  "reduced_rates": [
    10,
    13
  ],
  "standard_rate": 20,
  "state_code": null,
  "state_name": null,
  "vat_abbreviation": "MwSt.",
  "vat_local_name": "Mehrwertsteuer"
}