vatlayer-js
Vatlayer offers free, instant VAT Number validation & EU VAT rates.
Installation
Using npm
npm install --save @apilayer/vatlayer
or yarn
yarn add @apilayer/vatlayer
Getting Started
Head over to Vatlayer and create an account. Copy access key from dashboard.
import Vatlayer from '@apilayer/vatlayer';
const layer = new Vatlayer({
key: "<your-access-key>",
secure: false,
})
validate
validate
perform VAT number validations and company information lookups
Signature:
validate(vat_number: string): Promise<Response>
Example:
const response = layer.validate("LU26375245")
console.log('response:', response)
Response:
{
valid: true,
database: "ok",
format_valid: true,
query: "LU26375245",
country_code: "LU",
country_name: "Luxembourg",
vat_number: "26375245",
company_name: "AMAZON EUROPE CORE S.A R.L.",
company_address: "5, RUE PLAETIS L-2338 LUXEMBOURG",
}
rateByCountry
rateByCountry
gets the vat rate by country code
Signature:
rateByCountry(code: string): Promise<Response>
Example:
const response = layer.rateByCountry("DE")
console.log('response:', response)
Response:
{
success: true,
country_code: "DE",
country_name: "Germany",
standard_rate: 19,
reduced_rates: {
"foodstuffs": 7,
"books": 7,
"medical": 7,
"passenger transport": 7,
"newspapers": 7,
"admission to cultural events": 7,
"admission to entertainment events": 7,
"hotels": 7
...
}
}
rateByIP
rateByIP
gets the vat data by IP address
Signature:
rateByIP(ip: string): Promise<Response>
Example:
const response = layer.rateByIP("134.245.44.17")
console.log('response:', response)
Response:
{
success: true,
country_code: "DE",
country_name: "Germany",
standard_rate: 19,
reduced_rates: {
"foodstuffs": 7,
"books": 7,
"medical": 7,
"passenger transport": 7,
"newspapers": 7,
"admission to cultural events": 7,
"admission to entertainment events": 7,
"hotels": 7
...
}
}
rateByDetect
rateByDetect
auto detects the users location and gets the vat data
Signature:
rateByDetect(): Promise<Response>
Example:
const response = layer.rateByDetect()
console.log('response:', response)
Response:
{
success: true,
country_code: "DE",
country_name: "Germany",
standard_rate: 19,
reduced_rates: {
"foodstuffs": 7,
"books": 7,
"medical": 7,
"passenger transport": 7,
"newspapers": 7,
"admission to cultural events": 7,
"admission to entertainment events": 7,
"hotels": 7
...
}
}
rateList
rateList
returns a list of vat rates
Signature:
rateList(): Promise<Response>
Example:
const response = layer.rateList()
console.log('response:', response)
calculate
calculate
calculates the vat amount based on the country code
Signature:
calculate(country_code: string, amount: number): Promise<Response>
Example:
const response = layer.calculate("GB", 125)
console.log('response:', response)
Response:
{
country_code: "GB",
country_name: "United Kingdom",
price_excl_vat: 125,
price_incl_vat: 150,
vat_rate: 20
}
License
MIT