node package manager


AvaTax Rest V2 Node.js SDK

AvaTax v2 SDK for languages using node.js

Version Build Status Downloads Try on RunKit


Install the package with:

# using npm 
npm install avatax
# using yarn
yarn add avatax



// es5 import
var Avatax = require('avatax');
// es6/7 import
// import Avatax from 'avatax';
// resolve configuration and credentials
const config = {
  appName: 'your-app',
  appVersion: '1.0',
  environment: 'sandbox',
  machineName: 'your-machine-name'
const creds = {
  username: '<your-username>',
  password: '<your-password>'
var client = new Avatax(config).withSecurity(creds);

Tax Calculation

const taxDocument = {
  type: 'SalesInvoice',
  companyCode: 'abc123',
  date: '2017-04-12',
  customerCode: 'ABC',
  purchaseOrderNo: '2017-04-12-001',
  addresses: {
    SingleLocation: {
      line1: '123 Main Street',
      city: 'Irvine',
      region: 'CA',
      country: 'US',
      postalCode: '92615'
  lines: [
      number: '1',
      quantity: 1,
      amount: 100,
      taxCode: 'PS081282',
      itemCode: 'Y0001',
      description: 'Yarn'
  commit: true,
  currencyCode: 'USD',
  description: 'Yarn'
return client.createTransaction({ model: taxDocument })
  .then(result => {
    // response tax document

Address Validation

const address = {
  city: 'irvine',
  postalCode: '92615',
  region: 'ca',
  country: 'us'
return client.resolveAddress(address)
  .then(result => {
    // address validation result

SDK Development

Adding integration test credentials

Running integration tests will hit the deployed lower environment

Test credentials are resolved in the following order:

  1. Environment variables

The following environment variables will get loaded as test credentials

  1. Local credentials file

You can also add a local credentials file to the the path "<project_root>/local_creds.json". This file will be gitignored

  "username": "your-username",
  "password": "your-password"
  1. Static (mock) values

The mocked values are used for unit tests via 'nock'.

The test credentials helper can be found here

Publish tags upstream

# assuming a tag of v17.5.2 and a remote of 'upstream'
git push upstream v17.5.2