0.1.6 • Published 5 years ago

@apilayer/vatlayer v0.1.6

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

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, // use HTTPs
})

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 without vat
  price_incl_vat: 150, // price with vat
  vat_rate: 20 // vat amount
}

License

MIT