VAT validation
and tax rates API

Stay compliant with our simple, reliable, and powerful API for all your domestic and cross-border sales.
Get started
↓ Try it for free ↓
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
200 - Success
Full European Union coverage
Real-time VAT
data update
Standard
and reduced rates
Bank-level
security
Serving billions of calls to 1,000,000+ developers and end users worldwide

Why do 10,000+ developers trust Abstract?

Easy to implement and maintain

We built Abstract because most of the API's we've used aren't great for developers. That's why Abstract has excellent documentation, multiple easy to use libraries, and tutorials to get you started.

Speed and scale built into everything we do

Our APIs are built to power critical business processes and flows, so all our APIs are built for use at scale and at blazing speeds. These aren't just marketing phrases for, but fundamental features of our APIs.

Reliable uptime and great support

Developers trust Abstract because of our reliable uptime and excellent technical support that will help get you live quickly, keep you running smoothly, and resolve any issues you have fast.

The VAT Validation and Rates API makes it easy to stay compliant with VAT laws

Reliable and up-to-date VAT data

It's critical to have the latest and most accurate VAT data, so Abstract works directly with multiple sources, including the EU Commission itself, to provide you trustworthy data.

Validate VAT numbers via API

You're required to ensure the VAT numbers that you have or that users submit to you are valid, and Abstract makes it easy to validate VAT numbers with a single, simple API call.

Calculate VAT prices via API

Abstract's VAT API can calculate the VAT owed on a specific purchase, taking into account the country of purchase as well as other purchase-specific details.

VAT data from across the EU and beyond

Get VAT rates from individual countries, from across the European Union, and from other countries beyond the EU that use VAT. Abstract is the hub for all your VAT data needs.

Standard and reduced VAT rates

Take into account a country's specific VAT rates and other details in calculating VAT prices to ensure that you have the most accurate VAT calculation via our API.

Bank-level security for all queries

Our speed, data quality, and documentation are great, but security is top of mind too. All data that is sent and processed is secured via 256-bit SSL encryption (HTTPS).

Simple, transparent, and cost-effective pricing

FREE

$0

no card
required!

  • 100 requests
  • 1 request / second

PROFESSIONAL

$9

per
month

  • 1,000 requests / month
  • $0.009 / extra request
  • 50 requests / second
  • Commercial use allowed
  • Email support

ENTERPRISE

Get in touch!

  • >500,000 requests / month
  • 500 requests / second
  • Commercial use allowed
  • Premium enriched data
  • Chat support

VAT Validation and Rates API Documentation

REST

The VAT Validation and Rates API, like all of Abstract's APIs, is organized around REST. It is designed to use predictable, resource-oriented URL's and to use HTTP status codes to indicate errors.

HTTPS

The VAT Validation and Rates API requires all communications to be secured TLS 1.2 or greater.

API Versions

All of Abstract's API are versioned. The VAT Validation and Rates API is currently on Version 1.

Your API Key

Your API key is your unique authentication key to be used to access Abstract's Exchange Rate API. Note that each of Abstract's API has a unique API key, so you will need different keys to access the VAT Validation and Rates and IP Geolocation APIs, for example. To authenticate your requests, you will need to append your API key to the base URL.

Base URL

https://vat.abstractapi.com/v1/

Overview of Endpoints for VAT Validation and Rates

Abstract's VAT Validation and Rates API contains three main endpoints for accessing VAT data:

  • /validate/ checks whether the submitted VAT number is valid and, if it is, returns company details registered country, name, address, etc
  • /calculate/ determines VAT-compliant prices for a given value, country, purchase type, and more
  • /rates/ returns the latest VAT rates for a specific country

VAT Validation API Endpoint (/validate/)

The /validate/ endpoint takes your unique API key and a VAT number in the request, checks if that number is valid, and if it is valid, returns addition details about the company associated with that VAT number.

https://vat.abstractapi.com/v1/validate
    ? api_key = YOUR_API_KEY
    & vat_number = SE556656688001

This was a successful request, and the details below are included in the response:

{
    "vat_number": "SE556656688001",
    "is_vat_valid": true,
    "company_name": "Google Sweden AB",
    "company_address": "Google Ireland Ltd, M Collins, Gordon House, Barrow Street, Dublin 4, Ireland",
    "company_country": "SE",
    "company_country_code": "Sweden"
}

/validate/ VAT Validation Endpoint - API Request Parameters

PARAMETER

TYPE

DETAILS

api_key required

String

Your unique API key. Note that each user has unique API keys for each of Abstract's APIs, so your VAT Validation and Rates API key will not work for as your IP Geolocation API key, for example.

vat_number required

String

The VAT number to validate.

/validate/ VAT Validation Endpoint - API Responses

The API response is returned in a universal and lightweight JSON format.

PARAMETER

TYPE

DETAILS

vat_number

String

The VAT number to validate.

is_vat_valid

Boolean

Is true if the submitted VAT number is valid.

company_name

String

The name of the company associated with the VAT number.

company_address

String

The address of the company associated with the VAT number.

company_country

String

The country of the company associated with the VAT number.

company_country_code

String

The two letter ISO 3166-1 alpha-2 code of the country associated with the VAT number.

VAT Price Calculation API Endpoint (/calculate/)

The /calculate/ endpoint makes it easy to calculate a VAT compliant price given a country and price, as well as such optional values as the type of goods.

Below is a simple example of the /calculate/ endpoint being used to find the VAT compliant price of a 175 Euro purchase in Germany:

https://vat.abstractapi.com/v1/calculate
    ? api_key = YOUR_API_KEY
    & amount = 175
    & country_code = DE

This was a successful request, and the converted because no target currency or currencies were included, the exchange rate of all available currencies were included in the response:

{
    "amount_excl_vat": 175.00,
    "vat_amount": 33.25,
    "amount_incl_vat": 208.25,
    "vat_rate": 0.19,
    "country_code": "DE",
    "country_name": "Germany"
}

/calculate/ VAT Price Calculation Endpoint - API Request Parameters

PARAMETER

TYPE

DETAILS

api_key required

String

Your unique API key. Note that each user has unique API keys for each of Abstract's APIs, so your VAT Validation API key will not work for as your IP Geolocation API key, for example.

amount required

String

The amount that you would like to get the VAT amount for or from.

country_code required

String

The two letter ISO 3166-1 alpha-2 code of the country in which the transaction takes place.

is_vat_incl

Boolean

If the amount already has VAT added and you'd like to do the reverse calculation and split out the amount and VAT, set this parameter to true. If this parameter is not explicitly included it will default to false.

vat_category

String

Some countries offer a reduced VAT rate for certain categories of goods. To determine if a reduced VAT is available and to apply it to the final amount, include the vat_category in the request.

/calculate/ VAT Price Calculation Endpoint  - API Response

The API response is returned in a universal and lightweight JSON format.

PARAMETER

TYPE

DETAILS

amount_excl_vat

Float

The amount excluding the VAT.

vat_amount

Float

The calculated amount of VAT.

amount_incl_vat

Float

The sum of the base amount and the VAT, i.e., amount_excl_vat + vat_amount

vat_rate

Float

The VAT rate, from 0.01 to 0.99.

vat_category

String

The optional category of the purchase, used to determine whether it qualifies for a reduced rate. See below for a list of supported categories.

country_code

String

The two letter ISO 3166-1 alpha-2 code of the country in which the transaction takes place.

country_name

String

The name of the country the VAT is being calculated from.

Example: Starting with a final price and getting the added VAT from it using the /calculate/ endpoint

Rather than taking an amount and getting the VAT that should be added to it, let's assume we already have an amount with VAT added to it and that we want to split out the VAT from that amount. To do that, you would include the is_vat_incl parameter set to true.

https://vat.abstractapi.com/v1/calculate
    ? api_key = YOUR_API_KEY
    & amount = 208.05
    & country_code = DE
    & is_vat_incl = true

You'll notice that response is the exact same as if the request was to add VAT to an amount. Using the is_vat_incl you can either add or more VAT from an amount, and have a clear breakdown of the base price, the VAT, and the base price including the VAT.

{
    "amount_excl_vat": 175.00,
    "vat_amount": 33.25,
    "amount_incl_vat": 208.25,
    "vat_rate": 0.19,
    "country_code": "DE",
    "country_name": "Germany"
}

Example: Specifying a VAT category to check for reduced VAT rates with the /calculate/ endpoint

Some countries give reduced VAT rates for certain categories of goods. If you pass the VAT category in the request, the API will check if there is a reduced VAT rate for that country and category. For example, below is a request to get the VAT for 500 EUR worth of books in Germany:

https://vat.abstractapi.com/v1/calculate
    ? api_key = YOUR_API_KEY
    & amount = 500
    & country_code = DE
    & vat_category = books

The request was valid and successful, and books qualify for reduced VAT in Germany, so it returns the following:

{
    "amount_excl_vat": 500.00,
    "vat_amount": 35.00,
    "amount_incl_vat": 535.00,
    "vat_rate": 0.07,
    "country_code": "DE",
    "country_name": "Germany"
}

You can combine this use of the vat_category parameter with the is_vat_incl, to split out the VAT and base amount for an amount that already includes the VAT. Note in the example below, the amount has changed to 535, the total include VAT of 500 EUR worth of books from Germany.

https://vat.abstractapi.com/v1/calculate
    ? api_key = YOUR_API_KEY
    & amount = 535
    & country_code = DE
    & vat_category = books
    & is_vat_incl = true

Once again the response for an amount=535 where is_vat_incl=true is the same as for amount=500 and is_vat_incl=false or where this parameter is not included at all, since they are effectively two sides of the same equation, adding and removing VAT from the same amount.

{
    "amount_excl_vat": 500.00,
    "vat_amount": 35.00,
    "amount_incl_vat": 535.00,
    "vat_rate": 0.07,
    "country_code": "DE",
    "country_name": "Germany"
}

VAT Rates & Categories API Endpoint (/categories/)

The /categories/ endpoint makes it easy to get the latest VAT rates, including the reduced rates for certain categories, for a specific country.

Below is a simple example of the /categories/ endpoint being used to get the latest VAT rates for Germany:

https://vat.abstractapi.com/v1/categories
    ? api_key = YOUR_API_KEY
    & country_code = DE

This was a successful request, and the response includes both the standard rate as well as the reduces rates and categories associated with them:

{
    "country_code": "DE",
    "country_name": "Germany",
    "standard_rate": 0.19,
    "reduced_rates": {
        "foodstuffs": 0.07,
        "water supplies": 0.07,
        "medical equipment": 0.07,
        "books": 0.07,
        "e-books": 0.07,
        "audiobooks": 0.07,
        "newspapers and periodicals": 0.07,
        "cultural events": 0.07,
        "hotel": 0.07,
        "sports events": 0.07,
        "social services": 0.07,
        "medical care": 0.07,
        "dental care": 0.07,
        "firewood": 0.07,
        "take away food": 0.07,
        "cut flowers": 0.07
    }
}

/categories/ VAT Rates Endpoint - API Request Parameters

PARAMETER

TYPE

DETAILS

api_key required

String

Your unique API key. Note that each user has unique API keys for each of Abstract's APIs, so your VAT Validation API key will not work for as your IP Geolocation API key, for example.

country_code required

String

The two letter ISO 3166-1 alpha-2 code of the country in which the transaction takes place.

/categories/ VAT Rates Endpoint  - API Responses

The API response is returned in a universal and lightweight JSON format.

PARAMETER

TYPE

DETAILS

country_code

String

The two letter ISO 3166-1 alpha-2 code of the country in which the transaction takes place, which is returned from the request.

country_name

String

The full plain text name of the country specified by the country_code.

standard_rate

Float

The standard VAT rate for the requested country.

reduced_rates

Object

A JSON object containing categories as the keys and the reduced VAT rate for that category as the values.

Frequently Asked Questions
about Abstract's VAT Validation and Rates API

What is a Value Added Tax (VAT)?

A value-added tax (VAT) is a consumption tax that is applied to a product when value is applied to it at every step of a supply chain. This means it can be applied all the way from the initial steps of production to the final point of sale. The total VAT amount that is paid is on the cost of the product itself, excluding the cost of materials that had already been taxed on the product itself. Many countries around the world use some form of VAT, but it is most commonly found in the European Union.

Is it required to check and validate VAT numbers?

Yes, businesses selling to customers in the European Union must collect VAT numbers and submit them to the authorities. Incorrect VAT numbers -- whether the inaccuracy is purposeful or not -- could result in fines and / or other issues. Just as you would validate emails or validate phone numbers, it's best practice (and actually required!) that you validate VAT numbers.

Do you need to register for or collect VAT if your business is outside the European Union?

The short answer is that it depends, but generally yes. If you are selling to customers in the European Union, whether or not you yourself are based in the European Union, you must obtain a (free) VAT number. Every country in the EU enforces tax requirements related to VAT, so it's not recommended that you ignore it.

Where does Abstract's VAT data come from?

We use a variety of sources to collect and validate VAT data to ensure our customers have the more accurate and up to date information available. We primarily rely on the VAT Information Exchange System (VIES) operated by the European Commission as a primary source, and then we supplement this with additional data and validations before we expose it to our end users.

Is it required that I include VAT in my invoices?

While each country in the European Union has different detailed requirements on what must be on an invoice, they generally all require VAT information to be included on the invoices themselves.

Developers around the world love Abstract's VAT Validation and Rates API

Dealing with VAT rates and validation was a huge time sink for our team, as well as something that kept us up at time worrying that we were doing it incorrectly. Thankfully we've been able to offload all this work and worry to Abstract and we haven't looked back. It's been a great experience.

Caroline Sanesbury

Our startup was afraid to start selling into European Union countries because of all the horror stories we heard about calculating VAT rates, validating VAT numbers, and overall just dealing with the tax complexities and risk. But Abstract makes it simple for us and now EU is a big growth area for us.

Jonathan Gurkis

Abstract has been a life saver ! It was so confusing to handle VAT rates before, especially with our automated invoicing and payments systems. Now we have everything set up nicely and don't have to worry about being compliant with tax authorities since it is handled 24/7 for us. Big win !

Etienne Dupas

VAT Validation and Rates API Changelog

Last Updated on 

September 1, 2020

September 1, 2020

 - 

Updated Ireland standard and reduced rates following Covid measures

August 10, 2020

 - 

Improved error handling and responses when third party services are down or slow

July 23, 2020

 - 

Updated reduced rates and their descriptions for France, Italy, and Sweden

Included references to tax codes where relevant and available.

July 11, 2020

 - 

Added additional categories and rates for reduced VAT types for France, Germany, and Spain

July 9, 2020

 - 

Improved daily data sync and validation with several European VAT sources, especially Nordic countries

GET STARTED

Get  FREE credits to start today.

Get thousands of API calls for free across all Abstract APIs.
GET YOUR FREE API KEY