API Reference

Introduction

API Endpoint

https://api.taxjar.com/v2/

Sandbox API Endpoint

https://api.sandbox.taxjar.com/v2/

Welcome to the TaxJar Sales Tax API! You can use our API to get information on sales tax rates, categories or upload transactions.

We currently provide API clients for the following languages:

Before getting started, you’ll need to sign up for TaxJar and get an API key. If you have any questions or would like to request support for a new client language, feel free to contact us.

Authentication

Example Request With Authentication Headers

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;

public class AuthenticationExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");
    }

}
package main

import "github.com/taxjar/taxjar-go"

func main() {
    client := taxjar.NewClient(taxjar.Config{
      APIKey: "9e0cd62a22f451701f29c3bde214",
    })
}
# Authorization headers must be passed for every request
$ curl "API_ENDPOINT" \
  -H "Authorization: Token token="9e0cd62a22f451701f29c3bde214""

or

$ curl "API_ENDPOINT" \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Make sure to replace 9e0cd62a22f451701f29c3bde214 with your API key.

TaxJar uses API keys to allow access to the API. If you’re new to TaxJar, you’ll need to sign up for an account to get your API key. Otherwise, log in and go to Account > API Access to generate a new API token.

TaxJar expects the API key to be included in all API requests to the server using a header like the following:

Authorization: Token token="9e0cd62a22f451701f29c3bde214"

or

Authorization: Bearer 9e0cd62a22f451701f29c3bde214

API Version

Example Request Header With An API Version Specified

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

client.set_api_config('headers', {
  'x-api-version' => '2022-01-24'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

client.set_api_config('headers', {
  'x-api-version': '2022-01-24'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.setApiConfig('headers', {
  'x-api-version': '2022-01-24'
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$client->setApiConfig('headers', [
  'x-api-version' => '2022-01-24'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

client.setApiConfig("headers", new Dictionary<string, string> {
  { "x-api-version", "2022-01-24" }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import java.util.HashMap;
import java.util.Map;

public class ApiVersionExample {

    public static void main(String[] args) {
        Map<String, Object> params = new HashMap<>();
        params.put("x-api-version", "2022-01-24");

        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214", params);

        client.setApiConfig("x-api-version", "2022-01-24");
    }

}
package main

import "github.com/taxjar/taxjar-go"

func main() {
    client := taxjar.NewClient(taxjar.Config{
      APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    client.Headers = map[string]interface{}{
      "x-api-version": "2022-01-24",
    }
}
$ curl "API_ENDPOINT" \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "x-api-version: 2022-01-24"

TaxJar has introduced API versioning to deliver enhanced validations and features. To take advantage of an API version, 'x-api-version' must be specified in API call request headers.

'x-api-version' accepts a date in the form of a string: 'YYYY-MM-DD'. A valid version must be passed or the 'x-api-version' value will be ignored.

Current API versions

  • ‘2012-01-01’
  • ‘2020-08-07’
  • ‘2022-01-24’

For more details, see the API Changelog.

Billing

Each sales tax calculation or rate lookup request made to our API results in a “transaction”. These transactions will be counted toward your monthly plan limit. Overage fees are charged separately if you exceed your plan limit during busier months. You’ll always remain on the same plan until you decide to upgrade. You can check your API usage under “Transaction History” from Plans & Billing in the TaxJar app. Hover over the transaction counts for a breakdown of imported orders and calculations.

View our pricing to find a plan that works best for you. We also recommend our guide on avoiding unnecessary API calls to reduce your API usage and save money.

Countries

TaxJar has limited functionality for international calculations and it is only supported for users who have this feature currently implemented. If you need a global tax solution, you should consider Stripe Tax. You can learn more about Stripe Tax here. If you have additional questions please reach out to [email protected].

North America

   United States (US)

Sales Tax API

TaxJar API endpoints provide detailed US-based sales tax rates and calculations. They also support extended US-based reporting and filing capabilities for TaxJar users.

Categories

The TaxJar API provides product-level tax rules for a subset of product categories. These categories are to be used for products that are either exempt from sales tax in some jurisdictions or are taxed at reduced rates. You need not pass in a product tax code for sales tax calculations on product that is fully taxable. Simply leave that parameter out.

We will be expanding support for additional, less common categories over time. If you would like to request the addition of a new product category, please email us at [email protected].

get List tax categories

Definition

client.categories
client.categories
client.categories();
$client->categories();
client.Categories();
client.categories();
client.Categories()
GET https://api.taxjar.com/v2/categories

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

categories = client.categories
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

categories = client.categories()
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.categories().then(res => {
  res.categories; // Array of categories
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$categories = $client->categories();
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var categories = client.Categories();
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.categories.CategoryResponse;

public class CategoryExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            CategoryResponse res = client.categories();
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.Categories()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Categories)
    }
}
$ curl https://api.taxjar.com/v2/categories \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

{
  "categories": [
    {
      "name": "Installation Services",
      "product_tax_code": "10040",
      "description": "Installation services separately stated from sales of tangible personal property."
    },
    {
      "name": "General Services",
      "product_tax_code": "19000",
      "description": "Miscellaneous services which are not subject to a service-specific tax levy. This category will only treat services as taxable if the jurisdiction taxes services generally."
    },
    {
      "name": "Advertising Services",
      "product_tax_code": "19001",
      "description": "Services rendered for advertising which do not include the exchange of tangible personal property."
    },
    {
      "name": "Parking Services",
      "product_tax_code": "19002",
      "description": "Service of providing usage of a parking space."
    },
    {
      "name": "Admission Services",
      "product_tax_code": "19003",
      "description": "Admission charges associated with entry to an event."
    },
    {
      "name": "Training Services",
      "product_tax_code": "19004",
      "description": "Services provided to educate users on the proper use of a product."
    },
    {
      "name": "Professional Services",
      "product_tax_code": "19005",
      "description": "Professional services which are not subject to a service-specific tax levy."
    },
    {
      "name": "Dry Cleaning Services",
      "product_tax_code": "19006",
      "description": "Services provided in the cleaning of clothing and/or fabrics."
    },
    {
      "name": "Repair Services",
      "product_tax_code": "19007",
      "description": "Services provided to restore tangible personal property to working order or optimal functionality."
    },
    {
      "name": "Hairdressing Services",
      "product_tax_code": "19008",
      "description": "Services provided to cut and style human hair."
    },
    {
      "name": "Printing Services",
      "product_tax_code": "19009",
      "description": "Services provided to apply graphics and/or text to paper or other substrates which do not involve an exchange of tangible personal property."
    },
    {
      "name": "Clothing",
      "product_tax_code": "20010",
      "description": "All human wearing apparel suitable for general use"
    },
    {
      "name": "Clothing - Swimwear",
      "product_tax_code": "20041",
      "description": "Bathing suits and swim suits"
    },
    {
      "name": "Software as a Service",
      "product_tax_code": "30070",
      "description": "Pre-written software, delivered electronically, but access remotely."
    },
    {
      "name": "Digital Goods",
      "product_tax_code": "31000",
      "description": "Digital products transferred electronically, meaning obtained by the purchaser by means other than tangible storage media."
    },
    {
      "name": "Candy",
      "product_tax_code": "40010",
      "description": "Candy and similar items"
    },
    {
      "name": "Supplements",
      "product_tax_code": "40020",
      "description": "Non-food dietary supplements"
    },
    {
      "name": "Food & Groceries",
      "product_tax_code": "40030",
      "description": "Food for human consumption, unprepared"
    },
    {
      "name": "Soft Drinks",
      "product_tax_code": "40050",
      "description": "Soft drinks, soda, and other similar beverages. Does not include fruit juices and water."
    },
    {
      "name": "Bottled Water",
      "product_tax_code": "40060",
      "description": "Bottled, drinkable water for human consumption."
    },
    {
      "name": "Prepared Foods",
      "product_tax_code": "41000",
      "description": "Foods intended for on-site consumption. Ex. Restaurant meals."
    },
    {
      "name": "Non-Prescription",
      "product_tax_code": "51010",
      "description": "Drugs for human use without a prescription"
    },
    {
      "name": "Prescription",
      "product_tax_code": "51020",
      "description": "Drugs for human use with a prescription"
    },
    {
      "name": "Books",
      "product_tax_code": "81100",
      "description": "Books, printed"
    },
    {
      "name": "Textbook",
      "product_tax_code": "81110",
      "description": "Textbooks, printed"
    },
    {
      "name": "Religious Books",
      "product_tax_code": "81120",
      "description": "Religious books and manuals, printed"
    },
    {
      "name": "Magazines & Subscriptions",
      "product_tax_code": "81300",
      "description": "Periodicals, printed, sold by subscription"
    },
    {
      "name": "Magazine",
      "product_tax_code": "81310",
      "description": "Periodicals, printed, sold individually"
    }
  ]
}
[
  #<Taxjar::Category:0x00000a @attrs={
    :name => "Digital Goods",
    :product_tax_code => "31000",
    :description => "Digital products transferred electronically."
  }>,
  #<Taxjar::Category:0x00000a @attrs={
    :name => "Clothing",
    :product_tax_code => "20010",
    :description => "All human wearing apparel suitable for general use"
  }>,
  #<Taxjar::Category:0x00000a @attrs={
    :name => "Non-Prescription",
    :product_tax_code => "51010",
    :description => "Drugs for human use without a prescription"
  }>
]
[
  <TaxJarCategory {
    'product_tax_code': '31000',
    'name': 'Digital Goods',
    'description': 'Digital products transferred electronically, meaning obtained by the purchaser by means other than tangible storage media.'
  }>,
  <TaxJarCategory {
    'product_tax_code': '20010',
    'name': 'Clothing',
    'description': 'All human wearing apparel suitable for general use'
  }>,
  <TaxJarCategory {
    'product_tax_code': '51010',
    'name': 'Non-Prescription',
    'description': 'Drugs for human use without a prescription'
  }>
]
taxjar.CategoriesResponse{
    Categories: []taxjar.Category{
        {
            Name:           "Digital Goods",
            ProductTaxCode: "31000",
            Description:    "Digital products transferred electronically, meaning obtained by the purchaser by means other than tangible storage media.",
        },
        {
            Name:           "Clothing",
            ProductTaxCode: "20010",
            Description:    "All human wearing apparel suitable for general use",
        },
        {
            Name:           "Non-Prescription",
            ProductTaxCode: "51010",
            Description:    "Drugs for human use without a prescription",
        },
    },
}

Lists all tax categories.

Request

GET https://api.taxjar.com/v2/categories

Response

Returns a categories JSON object with an array of product categories and corresponding tax codes. The following categories are currently supported:

Category Code Countries Description

Attributes

Parameter Type Description
product_tax_code string Tax code of the given product category.
name string Name of the given product category.
description string Description of the given product category.

Taxes

post Calculate sales tax for an order

Definition

client.tax_for_order
client.tax_for_order
client.taxForOrder();
$client->taxForOrder();
client.TaxForOrder();
client.taxForOrder();
client.TaxForOrder()
POST https://api.taxjar.com/v2/taxes

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '92093',
  :from_state => 'CA',
  :from_city => 'La Jolla',
  :from_street => '9500 Gilman Drive',
  :to_country => 'US',
  :to_zip => '90002',
  :to_state => 'CA',
  :to_city => 'Los Angeles',
  :to_street => '1335 E 103rd St',
  :amount => 15,
  :shipping => 1.5,
  :nexus_addresses => [
    {
      :id => 'Main Location',
      :country => 'US',
      :zip => '92093',
      :state => 'CA',
      :city => 'La Jolla',
      :street => '9500 Gilman Drive',
    }
  ],
  :line_items => [
    {
      :id => '1',
      :quantity => 1,
      :product_tax_code => '20010',
      :unit_price => 15,
      :discount => 0
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '92093',
  'from_state': 'CA',
  'from_city': 'La Jolla',
  'from_street': '9500 Gilman Drive',
  'to_country': 'US',
  'to_zip': '90002',
  'to_state': 'CA',
  'to_city': 'Los Angeles',
  'to_street': '1335 E 103rd St',
  'amount': 15,
  'shipping': 1.5,
  'nexus_addresses': [
    {
      'id': 'Main Location',
      'country': 'US',
      'zip': '92093',
      'state': 'CA',
      'city': 'La Jolla',
      'street': '9500 Gilman Drive'
    }
  ],
  'line_items': [
    {
      'id': '1',
      'quantity': 1,
      'product_tax_code': '20010',
      'unit_price': 15,
      'discount': 0
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '92093',
  from_state: 'CA',
  from_city: 'La Jolla',
  from_street: '9500 Gilman Drive',
  to_country: 'US',
  to_zip: '90002',
  to_state: 'CA',
  to_city: 'Los Angeles',
  to_street: '1335 E 103rd St',
  amount: 15,
  shipping: 1.5,
  nexus_addresses: [
    {
      id: 'Main Location',
      country: 'US',
      zip: '92093',
      state: 'CA',
      city: 'La Jolla',
      street: '9500 Gilman Drive'
    }
  ],
  line_items: [
    {
      id: '1',
      quantity: 1,
      product_tax_code: '20010',
      unit_price: 15,
      discount: 0
    }
  ]
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '92093',
  'from_state' => 'CA',
  'from_city' => 'La Jolla',
  'from_street' => '9500 Gilman Drive',
  'to_country' => 'US',
  'to_zip' => '90002',
  'to_state' => 'CA',
  'to_city' => 'Los Angeles',
  'to_street' => '1335 E 103rd St',
  'amount' => 15,
  'shipping' => 1.5,
  'nexus_addresses' => [
    [
      'id' => 'Main Location',
      'country' => 'US',
      'zip' => '92093',
      'state' => 'CA',
      'city' => 'La Jolla',
      'street' => '9500 Gilman Drive',
    ]
  ],
  'line_items' => [
    [
      'id' => '1',
      'quantity' => 1,
      'product_tax_code' => '20010',
      'unit_price' => 15,
      'discount' => 0
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "92093",
  from_state = "CA",
  from_city = "La Jolla",
  from_street = "9500 Gilman Drive",
  to_country = "US",
  to_zip = "90002",
  to_state = "CA",
  to_city = "Los Angeles",
  to_street = "1335 E 103rd St",
  amount = 15,
  shipping = 1.5,
  nexus_addresses = new[] {
    new {
      id = "Main Location",
      country = "US",
      zip = "92093",
      state = "CA",
      city = "La Jolla",
      street = "9500 Gilman Drive",
    }
  },
  line_items = new[] {
    new {
      id = "1",
      quantity = 1,
      product_tax_code = "20010",
      unit_price = 15,
      discount = 0
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "92093");
            params.put("from_state", "CA");
            params.put("from_city", "La Jolla");
            params.put("from_street", "9500 Gilman Drive");
            params.put("to_country", "US");
            params.put("to_zip", "90002");
            params.put("to_state", "CA");
            params.put("to_city", "Los Angeles");
            params.put("to_street", "1335 E 103rd St");
            params.put("amount", 15);
            params.put("shipping", 1.5);

            List<Map> nexusAddresses = new ArrayList();
            Map<String, Object> nexusAddress = new HashMap<>();
            nexusAddress.put("country", "US");
            nexusAddress.put("zip", "92093");
            nexusAddress.put("state", "CA");
            nexusAddress.put("city", "La Jolla");
            nexusAddress.put("street", "9500 Gilman Drive");
            nexusAddresses.add(nexusAddress);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("id", 1);
            lineItem.put("quantity", 1);
            lineItem.put("product_tax_code", "20010");
            lineItem.put("unit_price", 15);
            lineItem.put("discount", 0);
            lineItems.add(lineItem);

            params.put("nexus_addresses", nexusAddresses);
            params.put("line_items", lineItems);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry:    "US",
        FromZip:        "92093",
        FromState:      "CA",
        FromCity:       "La Jolla",
        FromStreet:     "9500 Gilman Drive",
        ToCountry:      "US",
        ToZip:          "90002",
        ToState:        "CA",
        ToCity:         "Los Angeles",
        ToStreet:       "1335 E 103rd St",
        Amount:         15,
        Shipping:       1.5,
        NexusAddresses: []taxjar.NexusAddress {
            {
                ID:      "Main Location",
                Country: "US",
                Zip:     "92093",
                State:   "CA",
                City:    "La Jolla",
                Street:  "9500 Gilman Drive",
            },
        },
        LineItems: []taxjar.TaxLineItem {
            {
                ID:             "1",
                Quantity:       1,
                ProductTaxCode: "20010",
                UnitPrice:      15,
                Discount:       0,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_country": "US",
    "from_zip": "92093",
    "from_state": "CA",
    "from_city": "La Jolla",
    "from_street": "9500 Gilman Drive",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "Los Angeles",
    "to_street": "1335 E 103rd St",
    "amount": 15,
    "shipping": 1.5,
    "nexus_addresses": [
      {
        "id": "Main Location",
        "country": "US",
        "zip": "92093",
        "state": "CA",
        "city": "La Jolla",
        "street": "9500 Gilman Drive"
      }
    ],
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_tax_code": "20010",
        "unit_price": 15,
        "discount": 0
      }
    ]
  }'

Request Scenario: Origin-Based Sourcing Calculate sales tax for origin-based states such as Texas. In origin-based states, sales tax should be collected based on where you, the seller, are located. If shipping from out of state, destination-based sourcing may apply. Review our state guides to learn how to collect sales tax where you have nexus.

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '78701',
  :from_state => 'TX',
  :from_city => 'Austin',
  :from_street => '1100 Congress Ave',
  :to_country => 'US',
  :to_zip => '77058',
  :to_state => 'TX',
  :to_city => 'Houston',
  :to_street => '1601 E NASA Pkwy',
  :amount => 15,
  :shipping => 1.5,
  :nexus_addresses => [
    {
      :id => 'Main Location',
      :country => 'US',
      :zip => '78701',
      :state => 'TX',
      :city => 'Austin',
      :street => '1100 Congress Ave',
    }
  ],
  :line_items => [
    {
      :id => '1',
      :quantity => 1,
      :unit_price => 15,
      :discount => 0
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '78701',
  'from_state': 'TX',
  'from_city': 'Austin',
  'from_street': '1100 Congress Ave',
  'to_country': 'US',
  'to_zip': '77058',
  'to_state': 'TX',
  'to_city': 'Houston',
  'to_street': '1601 E NASA Pkwy',
  'amount': 15,
  'shipping': 1.5,
  'nexus_addresses': [
    {
      'id': 'Main Location',
      'country': 'US',
      'zip': '78701',
      'state': 'TX',
      'city': 'Austin',
      'street': '1100 Congress Ave'
    }
  ],
  'line_items': [
    {
      'id': '1',
      'quantity': 1,
      'unit_price': 15,
      'discount': 0
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '78701',
  from_state: 'TX',
  from_city: 'Austin',
  from_street: '1100 Congress Ave',
  to_country: 'US',
  to_zip: '77058',
  to_state: 'TX',
  to_city: 'Houston',
  to_street: '1601 E NASA Pkwy',
  amount: 15,
  shipping: 1.5,
  nexus_addresses: [
    {
      id: 'Main Location',
      country: 'US',
      zip: '78701',
      state: 'TX',
      city: 'Austin',
      street: '1100 Congress Ave'
    }
  ],
  line_items: [
    {
      id: '1',
      quantity: 1,
      unit_price: 15,
      discount: 0
    }
  ]
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '78701',
  'from_state' => 'TX',
  'from_city' => 'Austin',
  'from_street' => '1100 Congress Ave',
  'to_country' => 'US',
  'to_zip' => '77058',
  'to_state' => 'TX',
  'to_city' => 'Houston',
  'to_street' => '1601 E NASA Pkwy',
  'amount' => 15,
  'shipping' => 1.5,
  'nexus_addresses' => [
    [
      'id' => 'Main Location',
      'country' => 'US',
      'zip' => '78701',
      'state' => 'TX',
      'city' => 'Austin',
      'street' => '1100 Congress Ave',
    ]
  ],
  'line_items' => [
    [
      'id' => '1',
      'quantity' => 1,
      'unit_price' => 15,
      'discount' => 0
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "78701",
  from_state = "TX",
  from_city = "Austin",
  from_street = "1100 Congress Ave",
  to_country = "US",
  to_zip = "77058",
  to_state = "TX",
  to_city = "Houston",
  to_street = "1601 E NASA Pkwy",
  amount = 15,
  shipping = 1.5,
  nexus_addresses = new[] {
    new {
      id = "Main Location",
      country = "US",
      zip = "78701",
      state = "TX",
      city = "Austin",
      street = "1100 Congress Ave",
    }
  },
  line_items = new[] {
    new {
      id = "1",
      quantity = 1,
      unit_price = 15,
      discount = 0
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class OriginBasedSourcingTaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "78701");
            params.put("from_state", "TX");
            params.put("from_city", "Austin");
            params.put("from_street", "1100 Congress Ave");
            params.put("to_country", "US");
            params.put("to_zip", "77058");
            params.put("to_state", "TX");
            params.put("to_city", "Houston");
            params.put("to_street", "1601 E NASA Pkwy");
            params.put("amount", 15);
            params.put("shipping", 1.5);

            List<Map> nexusAddresses = new ArrayList();
            Map<String, Object> nexusAddress = new HashMap<>();
            nexusAddress.put("country", "US");
            nexusAddress.put("zip", "78701");
            nexusAddress.put("state", "TX");
            nexusAddress.put("city", "Austin");
            nexusAddress.put("street", "1100 Congress Ave");
            nexusAddresses.add(nexusAddress);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("id", 1);
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 15);
            lineItem.put("discount", 0);
            lineItems.add(lineItem);

            params.put("nexus_addresses", nexusAddresses);
            params.put("line_items", lineItems);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry:    "US",
        FromZip:        "78701",
        FromState:      "TX",
        FromCity:       "Austin",
        FromStreet:     "1100 Congress Ave",
        ToCountry:      "US",
        ToZip:          "77058",
        ToState:        "TX",
        ToCity:         "Houston",
        ToStreet:       "1601 E NASA Pkwy",
        Amount:         15,
        Shipping:       1.5,
        NexusAddresses: []taxjar.NexusAddress{
            {
                ID:      "Main Location",
                Country: "US",
                Zip:     "78701",
                State:   "TX",
                City:    "Austin",
                Street:  "1100 Congress Ave",
            },
        },
        LineItems: []taxjar.TaxLineItem{
            {
                ID:        "1",
                Quantity:  1,
                UnitPrice: 15,
                Discount:  0,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_country": "US",
    "from_zip": "78701",
    "from_state": "TX",
    "from_city": "Austin",
    "from_street": "1100 Congress Ave",
    "to_country": "US",
    "to_zip": "77058",
    "to_state": "TX",
    "to_city": "Houston",
    "to_street": "1601 E NASA Pkwy",
    "amount": 15,
    "shipping": 1.5,
    "nexus_addresses": [
      {
        "id": "Main Location",
        "country": "US",
        "zip": "78701",
        "state": "TX",
        "city": "Austin",
        "street": "1100 Congress Ave"
      }
    ],
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "unit_price": 15,
        "discount": 0
      }
    ]
  }'

Request Scenario: Shipping Exemptions If separately stated, shipping charges aren’t taxable in states such as California and Massachusetts. They are taxable if you include the charge as part of the price of the item.

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '02110',
  :from_state => 'MA',
  :from_city => 'Boston',
  :from_street => '1 Central Wharf',
  :to_country => 'US',
  :to_zip => '01608',
  :to_state => 'MA',
  :to_city => 'Worcester',
  :to_street => '455 Main St',
  :amount => 15,
  :shipping => 1.5,
  :nexus_addresses => [
    {
      :id => 'Main Location',
      :country => 'US',
      :zip => '02110',
      :state => 'MA',
      :city => 'Boston',
      :street => '1 Central Wharf',
    }
  ],
  :line_items => [
    {
      :id => '1',
      :quantity => 1,
      :unit_price => 15,
      :discount => 0
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '02110',
  'from_state': 'MA',
  'from_city': 'Boston',
  'from_street': '1 Central Wharf',
  'to_country': 'US',
  'to_zip': '01608',
  'to_state': 'MA',
  'to_city': 'Worcester',
  'to_street': '455 Main St',
  'amount': 15,
  'shipping': 1.5,
  'nexus_addresses': [
    {
      'id': 'Main Location',
      'country': 'US',
      'zip': '02110',
      'state': 'MA',
      'city': 'Boston',
      'street': '1 Central Wharf'
    }
  ],
  'line_items': [
    {
      'id': '1',
      'quantity': 1,
      'unit_price': 15,
      'discount': 0
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '02110',
  from_state: 'MA',
  from_city: 'Boston',
  from_street: '1 Central Wharf',
  to_country: 'US',
  to_zip: '01608',
  to_state: 'MA',
  to_city: 'Worcester',
  to_street: '455 Main St',
  amount: 15,
  shipping: 1.5,
  nexus_addresses: [
    {
      id: 'Main Location',
      country: 'US',
      zip: '02110',
      state: 'MA',
      city: 'Boston',
      street: '1 Central Wharf'
    }
  ],
  line_items: [
    {
      id: '1',
      quantity: 1,
      unit_price: 15,
      discount: 0
    }
  ]
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '02110',
  'from_state' => 'MA',
  'from_city' => 'Boston',
  'from_street' => '1 Central Wharf',
  'to_country' => 'US',
  'to_zip' => '01608',
  'to_state' => 'MA',
  'to_city' => 'Worcester',
  'to_street' => '455 Main St',
  'amount' => 15,
  'shipping' => 1.5,
  'nexus_addresses' => [
    [
      'id' => 'Main Location',
      'country' => 'US',
      'zip' => '02110',
      'state' => 'MA',
      'city' => 'Boston',
      'street' => '1 Central Wharf',
    ]
  ],
  'line_items' => [
    [
      'id' => '1',
      'quantity' => 1,
      'unit_price' => 15,
      'discount' => 0
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "02110",
  from_state = "MA",
  from_city = "Boston",
  from_street = "1 Central Wharf",
  to_country = "US",
  to_zip = "01608",
  to_state = "MA",
  to_city = "Worcester",
  to_street = "455 Main St",
  amount = 15,
  shipping = 1.5,
  nexus_addresses = new[] {
    new {
      id = "Main Location",
      country = "US",
      zip = "02110",
      state = "MA",
      city = "Boston",
      street = "1 Central Wharf",
    }
  },
  line_items = new[] {
    new {
      id = "1",
      quantity = 1,
      unit_price = 15,
      discount = 0
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ShippingExemptionTaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "02110");
            params.put("from_state", "MA");
            params.put("from_city", "Boston");
            params.put("from_street", "1 Central Wharf");
            params.put("to_country", "US");
            params.put("to_zip", "01608");
            params.put("to_state", "MA");
            params.put("to_city", "Worcester");
            params.put("to_street", "455 Main St");
            params.put("amount", 15);
            params.put("shipping", 1.5);

            List<Map> nexusAddresses = new ArrayList();
            Map<String, Object> nexusAddress = new HashMap<>();
            nexusAddress.put("country", "US");
            nexusAddress.put("zip", "02110");
            nexusAddress.put("state", "MA");
            nexusAddress.put("city", "Boston");
            nexusAddress.put("street", "1 Central Wharf");
            nexusAddresses.add(nexusAddress);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("id", 1);
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 15);
            lineItem.put("discount", 0);
            lineItems.add(lineItem);

            params.put("nexus_addresses", nexusAddresses);
            params.put("line_items", lineItems);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry:    "US",
        FromZip:        "02110",
        FromState:      "MA",
        FromCity:       "Boston",
        FromStreet:     "1 Central Wharf",
        ToCountry:      "US",
        ToZip:          "01608",
        ToState:        "MA",
        ToCity:         "Worcester",
        ToStreet:       "455 Main St",
        Amount:         15,
        Shipping:       1.5,
        NexusAddresses: []taxjar.NexusAddress{
            {
                ID:      "Main Location",
                Country: "US",
                Zip:     "02110",
                State:   "MA",
                City:    "Boston",
                Street:  "1 Central Wharf",
            }
        },
        LineItems: []taxjar.TaxLineItem{
            {
                ID:        "1",
                Quantity:  1,
                UnitPrice: 15,
                Discount:  0,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_country": "US",
    "from_zip": "02110",
    "from_state": "MA",
    "from_city": "Boston",
    "from_street": "1 Central Wharf",
    "to_country": "US",
    "to_zip": "01608",
    "to_state": "MA",
    "to_city": "Worcester",
    "to_street": "455 Main St",
    "amount": 15,
    "shipping": 1.5,
    "nexus_addresses": [
      {
        "id": "Main Location",
        "country": "US",
        "zip": "02110",
        "state": "MA",
        "city": "Boston",
        "street": "1 Central Wharf"
      }
    ],
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "unit_price": 15,
        "discount": 0
      }
    ]
  }'

Request Scenario: Clothing Exemptions Clothing items sold in New York under $110 are exempt from the state tax rate, but only exempt from county taxes in certain jurisdictions. We also handle clothing exemptions in states such as Pennsylvania and New Jersey.

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '12054',
  :from_state => 'NY',
  :from_city => 'Delmar',
  :to_country => 'US',
  :to_zip => '10541',
  :to_state => 'NY',
  :to_city => 'Mahopac',
  :amount => 29.94,
  :shipping => 7.99,
  :line_items => [
    {
      :quantity => 1,
      :unit_price => 19.99,
      :product_tax_code => '20010'
    },
    {
      :quantity => 1,
      :unit_price => 9.95,
      :product_tax_code => '20010'
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '12044',
  'from_state': 'NY',
  'from_city': 'Delmar',
  'to_country': 'US',
  'to_zip': '10541',
  'to_state': 'NY',
  'to_city': 'Mahopac',
  'amount': 29.94,
  'shipping': 7.99,
  'line_items': [
    {
      'quantity': 1,
      'unit_price': 19.99,
      'product_tax_code': '20010'
    },
    {
      'quantity': 1,
      'unit_price': 9.95,
      'product_tax_code': '20010'
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '12054',
  from_state: 'NY',
  from_city: 'Delmar',
  to_country: 'US',
  to_zip: '10541',
  to_state: 'NY',
  to_city: 'Mahopac',
  amount: 29.94,
  shipping: 7.99,
  line_items: [
    {
      quantity: 1,
      unit_price: 19.99,
      product_tax_code: '20010'
    },
    {
      quantity: 1,
      unit_price: 9.95,
      product_tax_code: '20010'
    }
  ]
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '12054',
  'from_state' => 'NY',
  'from_city' => 'Delmar',
  'to_country' => 'US',
  'to_zip' => '10541',
  'to_state' => 'NY',
  'to_city' => 'Mahopac',
  'amount' => 29.94,
  'shipping' => 7.99,
  'line_items' => [
    [
      'quantity' => 1,
      'unit_price' => 19.99,
      'product_tax_code' => '20010'
    ],
    [
      'quantity' => 1,
      'unit_price' => 9.95,
      'product_tax_code' => '20010'
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "12054",
  from_state = "NY",
  from_city = "Delmar",
  to_country = "US",
  to_zip = "10541",
  to_state = "NY",
  to_city = "Mahopac",
  amount = 29.94,
  shipping = 7.99,
  line_items = new[] {
    new {
      quantity = 1,
      unit_price = 19.99,
      product_tax_code = "20010"
    },
    new {
      quantity = 1,
      unit_price = 9.95,
      product_tax_code = "20010"
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ClothingExemptionTaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "12054");
            params.put("from_state", "NY");
            params.put("from_city", "Delmar");
            params.put("to_country", "US");
            params.put("to_zip", "10541");
            params.put("to_state", "NY");
            params.put("to_city", "Mahopac");
            params.put("amount", 29.94);
            params.put("shipping", 7.99);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 19.99);
            lineItem.put("product_tax_code", "20010");
            lineItems.add(lineItem);
            Map<String, Object> lineItem2 = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 9.95);
            lineItem.put("product_tax_code", "20010");
            lineItems.add(lineItem2);

            params.put("line_items", lineItems);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry: "US",
        FromZip:     "12054",
        FromState:   "NY",
        FromCity:    "Delmar",
        ToCountry:   "US",
        ToZip:       "10541",
        ToState:     "NY",
        ToCity:      "Mahopac",
        Amount:      29.94,
        Shipping:    7.99,
        LineItems:   []taxjar.TaxLineItem{
            {
                Quantity:       1,
                UnitPrice:      19.99,
                ProductTaxCode: "20010",
            },
            {
                Quantity:       1,
                UnitPrice:      9.95,
                ProductTaxCode: "20010",
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_city": "Delmar",
    "from_state": "NY",
    "from_zip": "12054",
    "from_country": "US",
    "to_city": "Mahopac",
    "to_state": "NY",
    "to_zip": "10541",
    "to_country": "US",
    "amount": 29.94,
    "shipping": 7.99,
    "line_items": [
      {
        "quantity": 1,
        "unit_price": 19.99,
        "product_tax_code": "20010"
      },
      {
        "quantity": 1,
        "unit_price": 9.95,
        "product_tax_code": "20010"
      }
    ]
  }'

Request Scenario: Food & Grocery Exemptions Food and grocery items are exempt from all sales tax in states such as California, New York, and Texas.

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '94133',
  :from_state => 'CA',
  :from_city => 'San Francisco',
  :to_country => 'US',
  :to_zip => '90071',
  :to_state => 'CA',
  :to_city => 'Los Angeles',
  :amount => 29.94,
  :shipping => 7.99,
  :line_items => [
    {
      :quantity => 1,
      :unit_price => 19.99,
      :product_tax_code => '40030'
    },
    {
      :quantity => 1,
      :unit_price => 9.95,
      :product_tax_code => '40030'
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '94133',
  'from_state': 'CA',
  'from_city': 'San Francisco',
  'to_country': 'US',
  'to_zip': '90071',
  'to_state': 'CA',
  'to_city': 'Los Angeles',
  'amount': 29.94,
  'shipping': 7.99,
  'line_items': [
    {
      'quantity': 1,
      'unit_price': 19.99,
      'product_tax_code': '40030'
    },
    {
      'quantity': 1,
      'unit_price': 9.95,
      'product_tax_code': '40030'
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '94133',
  from_state: 'CA',
  from_city: 'San Francisco',
  to_country: 'US',
  to_zip: '90071',
  to_state: 'CA',
  to_city: 'Los Angeles',
  amount: 29.94,
  shipping: 7.99,
  line_items: [
    {
      quantity: 1,
      unit_price: 19.99,
      product_tax_code: '40030'
    },
    {
      quantity: 1,
      unit_price: 9.95,
      product_tax_code: '40030'
    }
  ]
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '94133',
  'from_state' => 'CA',
  'from_city' => 'San Francisco',
  'to_country' => 'US',
  'to_zip' => '90071',
  'to_state' => 'CA',
  'to_city' => 'Los Angeles',
  'amount' => 29.94,
  'shipping' => 7.99,
  'line_items' => [
    [
      'quantity' => 1,
      'unit_price' => 19.99,
      'product_tax_code' => '40030'
    ],
    [
      'quantity' => 1,
      'unit_price' => 9.95,
      'product_tax_code' => '40030'
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "94133",
  from_state = "CA",
  from_city = "San Francisco",
  to_country = "US",
  to_zip = "90071",
  to_state = "CA",
  to_city = "Los Angeles",
  amount = 29.94,
  shipping = 7.99,
  line_items = new[] {
    new {
      quantity = 1,
      unit_price = 19.99,
      product_tax_code = "40030"
    },
    new {
      quantity = 1,
      unit_price = 9.95,
      product_tax_code = "40030"
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FoodGroceryExemptionTaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "94133");
            params.put("from_state", "CA");
            params.put("from_city", "San Francisco");
            params.put("to_country", "US");
            params.put("to_zip", "90071");
            params.put("to_state", "CA");
            params.put("to_city", "Los Angeles");
            params.put("amount", 29.94);
            params.put("shipping", 7.99);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 19.99);
            lineItem.put("product_tax_code", "20010");
            lineItems.add(lineItem);
            Map<String, Object> lineItem2 = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("unit_price", 9.95);
            lineItem.put("product_tax_code", "20010");
            lineItems.add(lineItem2);

            params.put("line_items", lineItems);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry: "US",
        FromZip:     "94133",
        FromState:   "CA",
        FromCity:    "San Francisco",
        ToCountry:   "US",
        ToZip:       "90071",
        ToState:     "CA",
        ToCity:      "Los Angeles",
        Amount:      29.94,
        Shipping:    7.99,
        LineItems:   []taxjar.TaxLineItem{
            {
                Quantity:       1,
                UnitPrice:      19.99,
                ProductTaxCode: "40030",
            },
            {
                Quantity:       1,
                UnitPrice:      9.95,
                ProductTaxCode: "40030",
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_city": "San Francisco",
    "from_state": "CA",
    "from_zip": "94133",
    "from_country": "US",
    "to_city": "Los Angeles",
    "to_state": "CA",
    "to_zip": "90071",
    "to_country": "US",
    "amount": 29.94,
    "shipping": 7.99,
    "line_items": [
      {
        "quantity": 1,
        "unit_price": 19.99,
        "product_tax_code": "40030"
      },
      {
        "quantity": 1,
        "unit_price": 9.95,
        "product_tax_code": "40030"
      }
    ]
  }'

Request Scenario: No Nexus For interstate transactions, nexus won’t trigger for the destination state unless you provide the destination state via nexus_addresses[] or have the destination state on file in your TaxJar account.

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.tax_for_order({
  :from_country => 'US',
  :from_zip => '33018',
  :from_state => 'FL',
  :from_city => 'Miami',
  :to_country => 'US',
  :to_zip => '97035',
  :to_state => 'OR',
  :to_city => 'Portland',
  :amount => 15,
  :shipping => 1.5
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.tax_for_order({
  'from_country': 'US',
  'from_zip': '33018',
  'from_state': 'FL',
  'from_city': 'Miami',
  'to_country': 'US',
  'to_zip': '97035',
  'to_state': 'OR',
  'to_city': 'Portland',
  'amount': 15,
  'shipping': 1.5
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.taxForOrder({
  from_country: 'US',
  from_zip: '33018',
  from_state: 'FL',
  from_city: 'Miami',
  to_country: 'US',
  to_zip: '97035',
  to_state: 'OR',
  to_city: 'Portland',
  amount: 15,
  shipping: 1.5
}).then(res => {
  res.tax; // Tax object
  res.tax.amount_to_collect; // Amount to collect
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order_taxes = $client->taxForOrder([
  'from_country' => 'US',
  'from_zip' => '33018',
  'from_state' => 'FL',
  'from_city' => 'Miami',
  'to_country' => 'US',
  'to_zip' => '97035',
  'to_state' => 'OR',
  'to_city' => 'Portland',
  'amount' => 15,
  'shipping' => 1.5
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var rates = client.TaxForOrder(new {
  from_country = "US",
  from_zip = "33018",
  from_state = "FL",
  from_city = "Miami",
  to_country = "US",
  to_zip = "97305",
  to_state = "OR",
  to_city = "Portland",
  amount = 15,
  shipping = 1.5
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.taxes.TaxResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class NoNexusTaxExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("from_country", "US");
            params.put("from_zip", "33018");
            params.put("from_state", "FL");
            params.put("from_city", "Miami");
            params.put("to_country", "US");
            params.put("to_zip", "97305");
            params.put("to_state", "OR");
            params.put("to_city", "Portland");
            params.put("amount", 15);
            params.put("shipping", 1.5);

            TaxResponse res = client.taxForOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.TaxForOrder(taxjar.TaxForOrderParams{
        FromCountry: "US",
        FromZip:     "33018",
        FromState:   "FL",
        FromCity:    "Miami",
        ToCountry:   "US",
        ToZip:       "97305",
        ToState:     "OR",
        ToCity:      "Portland",
        Amount:      15,
        Shipping:    1.5,
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Tax)
    }
}
$ curl https://api.taxjar.com/v2/taxes \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "from_city": "Miami",
    "from_state": "FL",
    "from_zip": "33018",
    "from_country": "US",
    "to_city": "Portland",
    "to_state": "OR",
    "to_zip": "97035",
    "to_country": "US",
    "amount": 15,
    "shipping": 1.5
  }'

Response Example

{
  "tax": {
    "order_total_amount": 16.5,
    "shipping": 1.5,
    "taxable_amount": 15,
    "amount_to_collect": 1.35,
    "rate": 0.09,
    "has_nexus": true,
    "freight_taxable": false,
    "tax_source": "destination",
    "jurisdictions": {
      "country": "US",
      "state": "CA",
      "county": "LOS ANGELES",
      "city": "LOS ANGELES"
    },
    "breakdown": {
      "taxable_amount": 15,
      "tax_collectable": 1.35,
      "combined_tax_rate": 0.09,
      "state_taxable_amount": 15,
      "state_tax_rate": 0.0625,
      "state_tax_collectable": 0.94,
      "county_taxable_amount": 15,
      "county_tax_rate": 0.0025,
      "county_tax_collectable": 0.04,
      "city_taxable_amount": 0,
      "city_tax_rate": 0,
      "city_tax_collectable": 0,
      "special_district_taxable_amount": 15,
      "special_tax_rate": 0.025,
      "special_district_tax_collectable": 0.38,
      "line_items": [
        {
          "id": "1",
          "taxable_amount": 15,
          "tax_collectable": 1.35,
          "combined_tax_rate": 0.09,
          "state_taxable_amount": 15,
          "state_sales_tax_rate": 0.0625,
          "state_amount": 0.94,
          "county_taxable_amount": 15,
          "county_tax_rate": 0.0025,
          "county_amount": 0.04,
          "city_taxable_amount": 0,
          "city_tax_rate": 0,
          "city_amount": 0,
          "special_district_taxable_amount": 15,
          "special_tax_rate": 0.025,
          "special_district_amount": 0.38
        }
      ]
    }
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :order_total_amount => 16.5,
  :shipping => 1.5,
  :taxable_amount => 15.0,
  :amount_to_collect => 1.35,
  :rate => 0.09,
  :has_nexus => true,
  :freight_taxable => false,
  :tax_source => "destination",
  :jurisdictions => #<Taxjar::Jurisdictions:0x00000a @attrs={
    :country => 'US',
    :state => 'CA',
    :county => 'LOS ANGELES',
    :city => 'LOS ANGELES'
  }>,
  :breakdown => #<Taxjar::Breakdown:0x00000a @attrs={
    :taxable_amount => 15.0,
    :tax_collectable => 1.35,
    :combined_tax_rate => 0.09,
    :state_taxable_amount => 15.0,
    :state_tax_rate => 0.0625,
    :state_tax_collectable => 0.94,
    :county_taxable_amount => 15.0,
    :county_tax_rate => 0.0025,
    :county_tax_collectable => 0.04,
    :city_taxable_amount => 0.0,
    :city_tax_rate => 0.0,
    :city_tax_collectable => 0.0,
    :special_district_taxable_amount => 15.0,
    :special_tax_rate => 0.025,
    :special_district_tax_collectable => 0.38,
    :line_items => [
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "1",
        :taxable_amount => 15.0,
        :tax_collectable => 1.35,
        :combined_tax_rate => 0.09,
        :state_taxable_amount => 15.0,
        :state_sales_tax_rate => 0.065,
        :state_amount => 0.94,
        :county_taxable_amount => 15.0,
        :county_tax_rate => 0.0025,
        :county_amount => 0.04,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 15.0,
        :special_tax_rate => 0.025,
        :special_district_amount => 0.38
      }>
    ]
  }>
}>
<TaxJarTax {
  'breakdown': <TaxJarBreakdown {
    'special_district_taxable_amount': 15.0,
    'city_tax_rate': 0.0,
    'county_tax_collectable': 0.15,
    'county_taxable_amount': 15.0,
    'special_district_tax_collectable': 0.23,
    'line_items': [<TaxJarBreakdownLineItem {
      'special_district_taxable_amount': 15.0,
      'city_tax_rate': 0.0,
      'county_taxable_amount': 15.0,
      'special_district_amount': 0.23,
      'state_sales_tax_rate': 0.0625,
      'state_amount': 0.94,
      'city_taxable_amount': 0.0,
      'taxable_amount': 15.0,
      'special_tax_rate': 0.015,
      'state_taxable_amount': 15.0,
      'combined_tax_rate': 0.0875,
      'county_tax_rate': 0.01,
      'city_amount': 0.0,
      'county_amount': 0.15,
      'id': '1',
      'tax_collectable': 1.31
    }>],
    'taxable_amount': 15.0,
    'state_taxable_amount': 15.0,
    'combined_tax_rate': 0.0875,
    'state_tax_collectable': 0.94,
    'state_tax_rate': 0.0625,
    'city_tax_collectable': 0.0,
    'county_tax_rate': 0.01,
    'special_tax_rate': 0.015,
    'city_taxable_amount': 0.0,
    'tax_collectable': 1.31
  }>,
  'jurisdictions': <TaxJarJurisdictions {
    'country': 'US',
    'state': 'CA',
    'county': 'LOS ANGELES',
    'city': 'LOS ANGELES'
  }>,
  'has_nexus': True,
  'tax_source': 'destination',
  'shipping': 1.5,
  'taxable_amount': 15.0,
  'rate': 0.0875,
  'freight_taxable': False,
  'amount_to_collect': 1.31,
  'order_total_amount': 16.5
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        OrderTotalAmount: 16.5,
        Shipping:         1.5,
        TaxableAmount:    15,
        AmountToCollect:  1.35,
        Rate:             0.09,
        HasNexus:         true,
        FreightTaxable:   false,
        TaxSource:        "destination",
        Jurisdictions:    taxjar.Jurisdictions{
            Country: "US",
            State:   "CA",
            County:  "LOS ANGELES",
            City:    "LOS ANGELES",
        },
        Breakdown: taxjar.Breakdown{
            TaxableAmount:                 15,
            TaxCollectable:                1.35,
            CombinedTaxRate:               0.09,
            StateTaxableAmount:            15,
            StateTaxRate:                  0.0625,
            StateTaxCollectable:           0.94,
            CountyTaxableAmount:           15,
            CountyTaxRate:                 0.0025,
            CountyTaxCollectable:          0.04,
            CityTaxableAmount:             0,
            CityTaxRate:                   0,
            CityTaxCollectable:            0,
            SpecialDistrictTaxableAmount:  15,
            SpecialTaxRate:                0.025,
            SpecialDistrictTaxCollectable: 0.38,
            LineItems:                     []taxjar.LineItemBreakdown{
                {
                    ID:                           "1",
                    TaxableAmount:                15,
                    TaxCollectable:               1.35,
                    CombinedTaxRate:              0.09,
                    StateTaxableAmount:           15,
                    StateSalesTaxRate:            0.0625,
                    StateAmount:                  0.94,
                    CountyTaxableAmount:          15,
                    CountyTaxRate:                0.0025,
                    CountyAmount:                 0.04,
                    CityTaxableAmount:            0,
                    CityTaxRate:                  0,
                    CityAmount:                   0,
                    SpecialDistrictTaxableAmount: 15,
                    SpecialTaxRate:               0.025,
                    SpecialDistrictAmount:       0.38,
                },
            },
        },
    },
}

Response Scenario: Origin-Based Sourcing

{
  "tax": {
    "order_total_amount": 16.5,
    "shipping": 1.5,
    "taxable_amount": 16.5,
    "amount_to_collect": 1.36,
    "rate": 0.0825,
    "has_nexus": true,
    "freight_taxable": true,
    "tax_source": "origin",
    "jurisdictions": {
      "country": "US",
      "state": "TX",
      "county": "TRAVIS",
      "city": "AUSTIN"
    },
    "breakdown": {
      "city_tax_collectable": 0.17,
      "city_tax_rate": 0.01,
      "city_taxable_amount": 16.5,
      "combined_tax_rate": 0.0825,
      "county_tax_collectable": 0,
      "county_tax_rate": 0,
      "county_taxable_amount": 0,
      "line_items": [
        {
          "city_amount": 0.15,
          "city_tax_rate": 0.01,
          "city_taxable_amount": 15,
          "combined_tax_rate": 0.0825,
          "county_amount": 0,
          "county_tax_rate": 0,
          "county_taxable_amount": 0,
          "id": "1",
          "special_district_amount": 0.15,
          "special_district_taxable_amount": 15,
          "special_tax_rate": 0.01,
          "state_amount": 0.94,
          "state_sales_tax_rate": 0.0625,
          "state_taxable_amount": 15,
          "tax_collectable": 1.24,
          "taxable_amount": 15
        }
      ],
      "shipping": {
        "city_amount": 0.02,
        "city_tax_rate": 0.01,
        "city_taxable_amount": 1.5,
        "combined_tax_rate": 0.0825,
        "county_amount": 0,
        "county_tax_rate": 0,
        "county_taxable_amount": 0,
        "special_district_amount": 0.02,
        "special_tax_rate": 0.01,
        "special_taxable_amount": 1.5,
        "state_amount": 0.09,
        "state_sales_tax_rate": 0.0625,
        "state_taxable_amount": 1.5,
        "tax_collectable": 0.12,
        "taxable_amount": 1.5
      },
      "special_district_tax_collectable": 0.17,
      "special_district_taxable_amount": 16.5,
      "special_tax_rate": 0.01,
      "state_tax_collectable": 1.03,
      "state_tax_rate": 0.0625,
      "state_taxable_amount": 16.5,
      "tax_collectable": 1.36,
      "taxable_amount": 16.5
    }
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :order_total_amount => 16.5,
  :shipping => 1.5,
  :taxable_amount => 16.5,
  :amount_to_collect => 1.36,
  :rate => 0.0825,
  :has_nexus => true,
  :freight_taxable => true,
  :tax_source => "origin",
  :jurisdictions => #<Taxjar::Jurisdictions:0x00000a @attrs={
    :country => 'US',
    :state => 'TX',
    :county => 'TRAVIS',
    :city => 'AUSTIN'
  }>,
  :breakdown => #<Taxjar::Breakdown:0x00000a @attrs={
    :taxable_amount => 16.5,
    :tax_collectable => 1.36,
    :combined_tax_rate => 0.0825,
    :state_taxable_amount => 16.5,
    :state_tax_rate => 0.0625,
    :state_tax_collectable => 1.03,
    :county_taxable_amount => 0.0,
    :county_tax_rate => 0.0,
    :county_tax_collectable => 0.0,
    :city_taxable_amount => 16.5,
    :city_tax_rate => 0.01,
    :city_tax_collectable => 0.17,
    :special_district_taxable_amount => 16.5,
    :special_tax_rate => 0.01,
    :special_district_tax_collectable => 0.17,
    :shipping => {
      :taxable_amount => 1.5,
      :tax_collectable => 0.12,
      :combined_tax_rate => 0.0825,
      :state_taxable_amount => 1.5,
      :state_sales_tax_rate => 0.0625,
      :state_amount => 0.09,
      :county_taxable_amount => 0.0,
      :county_tax_rate => 0.0,
      :county_amount => 0.0,
      :city_taxable_amount => 1.5,
      :city_tax_rate => 0.01,
      :city_amount => 0.02,
      :special_taxable_amount => 1.5,
      :special_tax_rate => 0.01,
      :special_district_amount => 0.02
    },
    :line_items => [
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "1",
        :taxable_amount => 15.0,
        :tax_collectable => 1.24,
        :combined_tax_rate => 0.0825,
        :state_taxable_amount => 15.0,
        :state_sales_tax_rate => 0.0625,
        :state_amount => 0.94,
        :county_taxable_amount => 0.0,
        :county_tax_rate => 0.0,
        :county_amount => 0.0,
        :city_taxable_amount => 15.0,
        :city_tax_rate => 0.01,
        :city_amount => 0.15,
        :special_district_taxable_amount => 15.0,
        :special_tax_rate => 0.01,
        :special_district_amount => 0.15
      }>
    ]
  }>
}>
<TaxJarTax {
  'breakdown': <TaxJarBreakdown {
    'special_district_taxable_amount': 16.5,
    'city_tax_rate': 0.01,
    'county_tax_collectable': 0.0,
    'county_taxable_amount': 0.0,
    'special_district_tax_collectable': 0.17,
    'line_items': [
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 15.0,
        'city_tax_rate': 0.01,
        'county_taxable_amount': 0.0,
        'special_district_amount': 0.15,
        'state_sales_tax_rate': 0.0625,
        'state_amount': 0.94,
        'city_taxable_amount': 15.0,
        'taxable_amount': 15.0,
        'special_tax_rate': 0.01,
        'state_taxable_amount': 15.0,
        'combined_tax_rate': 0.0825,
        'county_tax_rate': 0.0,
        'city_amount': 0.15,
        'county_amount': 0.0,
        'id': '1',
        'tax_collectable': 1.24
      }>
    ],
    'shipping': {
      'city_tax_rate': 0.01,
      'county_taxable_amount': 0.0,
      'special_district_amount': 0.02,
      'state_sales_tax_rate': 0.0625,
      'state_amount': 0.09,
      'special_taxable_amount': 1.5,
      'city_amount': 0.02,
      'taxable_amount': 1.5,
      'state_taxable_amount': 1.5,
      'combined_tax_rate': 0.0825,
      'county_tax_rate': 0.0,
      'special_tax_rate': 0.01,
      'county_amount': 0.0,
      'city_taxable_amount': 1.5,
      'tax_collectable': 0.12
    },
    'taxable_amount': 16.5,
    'state_taxable_amount': 16.5,
    'combined_tax_rate': 0.0825,
    'state_tax_collectable': 1.03,
    'state_tax_rate': 0.0625,
    'city_tax_collectable': 0.17,
    'county_tax_rate': 0.0,
    'special_tax_rate': 0.01,
    'city_taxable_amount': 16.5,
    'tax_collectable': 1.36
  }>,
  'jurisdictions': <TaxJarJurisdictions {
    'country': 'US',
    'state': 'TX',
    'county': 'TRAVIS',
    'city': 'AUSTIN'
  }>,
  'has_nexus': True,
  'tax_source': 'origin',
  'shipping': 1.5,
  'taxable_amount': 16.5,
  'rate': 0.0825,
  'freight_taxable': True,
  'amount_to_collect': 1.36,
  'order_total_amount': 16.5
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        OrderTotalAmount: 16.5,
        Shipping:         1.5,
        TaxableAmount:    16.5,
        AmountToCollect:  1.36,
        Rate:             0.0825,
        HasNexus:         true,
        FreightTaxable:   true,
        TaxSource:        "origin",
        Jurisdictions: taxjar.Jurisdictions{
            Country: "US",
            State:   "TX",
            County:  "TRAVIS",
            City:    "AUSTIN",
        },
        Breakdown: taxjar.Breakdown{
            TaxableAmount:                 16.5,
            TaxCollectable:                1.36,
            CombinedTaxRate:               0.0825,
            StateTaxableAmount:            16.5,
            StateTaxRate:                  0.0625,
            StateTaxCollectable:           1.03,
            CountyTaxableAmount:           0.0,
            CountyTaxRate:                 0.0,
            CountyTaxCollectable:          0.0,
            CityTaxableAmount:             16.5,
            CityTaxRate:                   0.01,
            CityTaxCollectable:            0.17,
            SpecialDistrictTaxableAmount:  16.5,
            SpecialTaxRate:                0.01,
            SpecialDistrictTaxCollectable: 0.17,
            Shipping: taxjar.Shipping{
                TaxableAmount:         1.5,
                TaxCollectable:        0.12,
                CombinedTaxRate:       0.0825,
                StateTaxableAmount:    1.5,
                StateSalesTaxRate:     0.0625,
                StateAmount:           0.09,
                CountyTaxableAmount:   0.0,
                CountyTaxRate:         0.0,
                CountyAmount:          0.0,
                CityTaxableAmount:     1.5,
                CityTaxRate:           0.01,
                CityAmount:            0.02,
                SpecialTaxableAmount:  1.5,
                SpecialTaxRate:        0.01,
                SpecialDistrictAmount: 0.02,
            },
            LineItems: []taxjar.LineItemBreakdown{
                {
                    ID:                           "1",
                    TaxableAmount:                15.0,
                    TaxCollectable:               1.24,
                    CombinedTaxRate:              0.0825,
                    StateTaxableAmount:           15.0,
                    StateSalesTaxRate:            0.0625,
                    StateAmount:                  0.94,
                    CountyTaxableAmount:          0.0,
                    CountyTaxRate:                0.0,
                    CountyAmount:                 0.0,
                    CityTaxableAmount:            15.0,
                    CityTaxRate:                  0.01,
                    CityAmount:                   0.15,
                    SpecialDistrictTaxableAmount: 15.0,
                    SpecialTaxRate:               0.01,
                    SpecialDistrictAmount:        0.15,
                },
            },
        },
    },
}

Response Scenario: Shipping Exemptions

{
  "tax": {
    "order_total_amount": 16.5,
    "shipping": 1.5,
    "taxable_amount": 15,
    "amount_to_collect": 0.94,
    "rate": 0.0625,
    "has_nexus": true,
    "freight_taxable": false,
    "tax_source": "destination",
    "jurisdictions": {
      "country": "US",
      "state": "MA",
      "county": "WORCESTER",
      "city": "WORCESTER"
    },
    "breakdown": {
      "city_tax_collectable": 0,
      "city_tax_rate": 0,
      "city_taxable_amount": 0,
      "combined_tax_rate": 0.0625,
      "county_tax_collectable": 0,
      "county_tax_rate": 0,
      "county_taxable_amount": 0,
      "line_items": [
        {
          "city_amount": 0,
          "city_tax_rate": 0,
          "city_taxable_amount": 0,
          "combined_tax_rate": 0.0625,
          "county_amount": 0,
          "county_tax_rate": 0,
          "county_taxable_amount": 0,
          "id": "1",
          "special_district_amount": 0,
          "special_district_taxable_amount": 0,
          "special_tax_rate": 0,
          "state_amount": 0.94,
          "state_sales_tax_rate": 0.0625,
          "state_taxable_amount": 15,
          "tax_collectable": 0.94,
          "taxable_amount": 15
        }
      ],
      "special_district_tax_collectable": 0,
      "special_district_taxable_amount": 0,
      "special_tax_rate": 0,
      "state_tax_collectable": 0.94,
      "state_tax_rate": 0.0625,
      "state_taxable_amount": 15,
      "tax_collectable": 0.94,
      "taxable_amount": 15
    }
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :order_total_amount => 16.5,
  :shipping => 1.5,
  :taxable_amount => 15.0,
  :amount_to_collect => 0.94,
  :rate => 0.0625,
  :has_nexus => true,
  :freight_taxable => false,
  :tax_source => "destination",
  :jurisdictions => #<Taxjar::Jurisdictions:0x00000a @attrs={
    :country => 'US',
    :state => 'MA',
    :county => 'WORCESTER',
    :city => 'WORCESTER'
  }>,
  :breakdown => #<Taxjar::Breakdown:0x00000a @attrs={
    :taxable_amount => 15.0,
    :tax_collectable => 0.94,
    :combined_tax_rate => 0.0625,
    :state_taxable_amount => 15.0,
    :state_tax_rate => 0.0625,
    :state_tax_collectable => 0.94,
    :county_taxable_amount => 0.0,
    :county_tax_rate => 0.0,
    :county_tax_collectable => 0.0,
    :city_taxable_amount => 0.0,
    :city_tax_rate => 0.0,
    :city_tax_collectable => 0.0,
    :special_district_taxable_amount => 0.0,
    :special_tax_rate => 0.0,
    :special_district_tax_collectable => 0.0,
    :line_items => [
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "1",
        :taxable_amount => 15.0,
        :tax_collectable => 0.94,
        :combined_tax_rate => 0.0625,
        :state_taxable_amount => 15.0,
        :state_sales_tax_rate => 0.0625,
        :state_amount => 0.94,
        :county_taxable_amount => 0.0,
        :county_tax_rate => 0.0,
        :county_amount => 0.0,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 0.0,
        :special_tax_rate => 0.0,
        :special_district_amount => 0.0
      }>
    ]
  }>
}>
<TaxJarTax {
  'breakdown': <TaxJarBreakdown {
    'special_district_taxable_amount': 0.0,
    'city_tax_rate': 0.0,
    'county_tax_collectable': 0.0,
    'county_taxable_amount': 0.0,
    'special_district_tax_collectable': 0.0,
    'line_items': [
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 0.0,
        'city_tax_rate': 0.0,
        'county_taxable_amount': 0.0,
        'special_district_amount': 0.0,
        'state_sales_tax_rate': 0.0625,
        'state_amount': 0.94,
        'city_taxable_amount': 0.0,
        'taxable_amount': 15.0,
        'special_tax_rate': 0.0,
        'state_taxable_amount': 15.0,
        'combined_tax_rate': 0.0625,
        'county_tax_rate': 0.0,
        'city_amount': 0.0,
        'county_amount': 0.0,
        'id': '1',
        'tax_collectable': 0.94
      }>
    ],
    'taxable_amount': 15.0,
    'state_taxable_amount': 15.0,
    'combined_tax_rate': 0.0625,
    'state_tax_collectable': 0.94,
    'state_tax_rate': 0.0625,
    'city_tax_collectable': 0.0,
    'county_tax_rate': 0.0,
    'special_tax_rate': 0.0,
    'city_taxable_amount': 0.0,
    'tax_collectable': 0.94
  }>,
  'jurisdictions': <TaxJarJurisdictions {
    'country': 'US',
    'state': 'MA',
    'county': 'WORCESTER',
    'city': 'WORCESTER'
  }>,
  'has_nexus': True,
  'tax_source': 'destination',
  'shipping': 1.5,
  'taxable_amount': 15.0,
  'rate': 0.0625,
  'freight_taxable': False,
  'amount_to_collect': 0.94,
  'order_total_amount': 16.5
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        OrderTotalAmount: 16.5,
        Shipping:         1.5,
        TaxableAmount:    15.0,
        AmountToCollect:  0.94,
        Rate:             0.0625,
        HasNexus:         true,
        FreightTaxable:   false,
        TaxSource:        "destination",
        Jurisdictions: taxjar.Jurisdictions{
            Country: "US",
            State:   "MA",
            County:  "WORCESTER",
            City:    "WORCESTER",
        },
        Breakdown: taxjar.Breakdown{
            TaxableAmount:                 15.0,
            TaxCollectable:                0.94,
            CombinedTaxRate:               0.0625,
            StateTaxableAmount:            15.0,
            StateTaxRate:                  0.0625,
            StateTaxCollectable:           0.94,
            CountyTaxableAmount:           0.0,
            CountyTaxRate:                 0.0,
            CountyTaxCollectable:          0.0,
            CityTaxableAmount:             0.0,
            CityTaxRate:                   0.0,
            CityTaxCollectable:            0.0,
            SpecialDistrictTaxableAmount:  0.0,
            SpecialTaxRate:                0.0,
            SpecialDistrictTaxCollectable: 0.0,
            LineItems: []taxjar.LineItemBreakdown{
                {
                    ID:                           "1",
                    TaxableAmount:                15.0,
                    TaxCollectable:               0.94,
                    CombinedTaxRate:              0.0625,
                    StateTaxableAmount:           15.0,
                    StateSalesTaxRate:            0.0625,
                    StateAmount:                  0.94,
                    CountyTaxableAmount:          0.0,
                    CountyTaxRate:                0.0,
                    CountyAmount:                 0.0,
                    CityTaxableAmount:            0.0,
                    CityTaxRate:                  0.0,
                    CityAmount:                   0.0,
                    SpecialDistrictTaxableAmount: 0.0,
                    SpecialTaxRate:               0.0,
                    SpecialDistrictAmount:        0.0,
                },
            },
        },
    },
}

Response Scenario: Clothing Exemptions

{
  "tax": {
    "order_total_amount": 37.93,
    "shipping": 7.99,
    "taxable_amount": 37.93,
    "amount_to_collect": 1.98,
    "rate": 0.05218,
    "has_nexus": true,
    "freight_taxable": true,
    "tax_source": "destination",
    "jurisdictions": {
      "country": "US",
      "state": "NY",
      "county": "PUTNAM",
      "city": "MAHOPAC"
    },
    "breakdown": {
      "city_tax_collectable": 0,
      "city_tax_rate": 0,
      "city_taxable_amount": 0,
      "combined_tax_rate": 0.05218,
      "county_tax_collectable": 1.52,
      "county_tax_rate": 0.04,
      "county_taxable_amount": 37.93,
      "line_items": [
        {
          "city_amount": 0,
          "city_tax_rate": 0,
          "city_taxable_amount": 0,
          "combined_tax_rate": 0.04375,
          "county_amount": 0.8,
          "county_tax_rate": 0.04,
          "county_taxable_amount": 19.99,
          "id": "1",
          "special_district_amount": 0.07,
          "special_district_taxable_amount": 19.99,
          "special_tax_rate": 0.00375,
          "state_amount": 0,
          "state_sales_tax_rate": 0,
          "state_taxable_amount": 0,
          "tax_collectable": 0.87,
          "taxable_amount": 19.99
        },
        {
          "city_amount": 0,
          "city_tax_rate": 0,
          "city_taxable_amount": 0,
          "combined_tax_rate": 0.04375,
          "county_amount": 0.4,
          "county_tax_rate": 0.04,
          "county_taxable_amount": 9.95,
          "id": "2",
          "special_district_amount": 0.04,
          "special_district_taxable_amount": 9.95,
          "special_tax_rate": 0.00375,
          "state_amount": 0,
          "state_sales_tax_rate": 0,
          "state_taxable_amount": 0,
          "tax_collectable": 0.44,
          "taxable_amount": 9.95
        }
      ],
      "shipping": {
        "city_amount": 0,
        "city_tax_rate": 0,
        "city_taxable_amount": 0,
        "combined_tax_rate": 0.08375,
        "county_amount": 0.32,
        "county_tax_rate": 0.04,
        "county_taxable_amount": 7.99,
        "special_district_amount": 0.03,
        "special_tax_rate": 0.00375,
        "special_taxable_amount": 7.99,
        "state_amount": 0.32,
        "state_sales_tax_rate": 0.04,
        "state_taxable_amount": 7.99,
        "tax_collectable": 0.67,
        "taxable_amount": 7.99
      },
      "special_district_tax_collectable": 0.14,
      "special_district_taxable_amount": 37.93,
      "special_tax_rate": 0.00375,
      "state_tax_collectable": 0.32,
      "state_tax_rate": 0.04,
      "state_taxable_amount": 7.99,
      "tax_collectable": 1.98,
      "taxable_amount": 37.93
    }
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :order_total_amount => 37.93,
  :shipping => 7.99,
  :taxable_amount => 37.93,
  :amount_to_collect => 1.98,
  :rate => 0.05218,
  :has_nexus => true,
  :freight_taxable => true,
  :tax_source => "destination",
  :jurisdictions => #<Taxjar::Jurisdictions:0x00000a @attrs={
    :country => 'US',
    :state => 'NY',
    :county => 'PUTNAM',
    :city => 'MAHOPAC'
  }>,
  :breakdown => #<Taxjar::Breakdown:0x00000a @attrs={
    :taxable_amount => 37.93,
    :tax_collectable => 1.98,
    :combined_tax_rate => 0.05218,
    :state_taxable_amount => 7.99,
    :state_tax_rate => 0.04,
    :state_tax_collectable => 0.32,
    :county_taxable_amount => 37.93,
    :county_tax_rate => 0.04,
    :county_tax_collectable => 1.52,
    :city_taxable_amount => 0.0,
    :city_tax_rate => 0.0,
    :city_tax_collectable => 0.0,
    :special_district_taxable_amount => 37.93,
    :special_tax_rate => 0.00375,
    :special_district_tax_collectable => 0.14,
    :shipping => {
      :taxable_amount => 7.99,
      :tax_collectable => 0.67,
      :combined_tax_rate => 0.08375,
      :state_taxable_amount => 7.99,
      :state_sales_tax_rate => 0.04,
      :state_amount => 0.32,
      :county_taxable_amount => 7.99,
      :county_tax_rate => 0.04,
      :county_amount => 0.32,
      :city_taxable_amount => 0.0,
      :city_tax_rate => 0.0,
      :city_amount => 0.0,
      :special_taxable_amount => 7.99,
      :special_tax_rate => 0.00375,
      :special_district_amount => 0.03
    },
    :line_items => [
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "1",
        :taxable_amount => 19.99,
        :tax_collectable => 0.87,
        :combined_tax_rate => 0.04375,
        :state_taxable_amount => 0.0,
        :state_sales_tax_rate => 0.0,
        :state_amount => 0.0,
        :county_taxable_amount => 19.99,
        :county_tax_rate => 0.04,
        :county_amount => 0.8,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 19.99,
        :special_tax_rate => 0.00375,
        :special_district_amount => 0.07
      }>,
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "2",
        :taxable_amount => 9.95,
        :tax_collectable => 0.44,
        :combined_tax_rate => 0.04375,
        :state_taxable_amount => 0.0,
        :state_sales_tax_rate => 0.0,
        :state_amount => 0.0,
        :county_taxable_amount => 9.95,
        :county_tax_rate => 0.04,
        :county_amount => 0.4,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 9.95,
        :special_tax_rate => 0.00375,
        :special_district_amount => 0.04
      }>
    ]
  }>
}>
<TaxJarTax {
  'breakdown': <TaxJarBreakdown {
    'special_district_taxable_amount': 37.93,
    'city_tax_rate': 0.0,
    'county_tax_collectable': 1.52,
    'county_taxable_amount': 37.93,
    'special_district_tax_collectable': 0.14,
    'line_items': [
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 19.99,
        'city_tax_rate': 0.0,
        'county_taxable_amount': 19.99,
        'special_district_amount': 0.07,
        'state_sales_tax_rate': 0.0,
        'state_amount': 0.0,
        'city_taxable_amount': 0.0,
        'taxable_amount': 19.99,
        'special_tax_rate': 0.00375,
        'state_taxable_amount': 0.0,
        'combined_tax_rate': 0.04375,
        'county_tax_rate': 0.04,
        'city_amount': 0.0,
        'county_amount': 0.8,
        'id': '1',
        'tax_collectable': 0.87
      }>,
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 9.95,
        'city_tax_rate': 0.0,
        'county_taxable_amount': 9.95,
        'special_district_amount': 0.04,
        'state_sales_tax_rate': 0.0,
        'state_amount': 0.0,
        'city_taxable_amount': 0.0,
        'taxable_amount': 9.95,
        'special_tax_rate': 0.00375,
        'state_taxable_amount': 0.0,
        'combined_tax_rate': 0.04375,
        'county_tax_rate': 0.04,
        'city_amount': 0.0,
        'county_amount': 0.4,
        'id': '2',
        'tax_collectable': 0.44
      }>
    ],
    'shipping': {
      'city_tax_rate': 0.0,
      'county_taxable_amount': 7.99,
      'special_district_amount': 0.03,
      'state_sales_tax_rate': 0.04,
      'state_amount': 0.32,
      'special_taxable_amount': 7.99,
      'city_amount': 0.0,
      'taxable_amount': 7.99,
      'state_taxable_amount': 7.99,
      'combined_tax_rate': 0.08375,
      'county_tax_rate': 0.04,
      'special_tax_rate': 0.00375,
      'county_amount': 0.32,
      'city_taxable_amount': 0.0,
      'tax_collectable': 0.67
    },
    'taxable_amount': 37.93,
    'state_taxable_amount': 7.99,
    'combined_tax_rate': 0.05218,
    'state_tax_collectable': 0.32,
    'state_tax_rate': 0.04,
    'city_tax_collectable': 0.0,
    'county_tax_rate': 0.04,
    'special_tax_rate': 0.00375,
    'city_taxable_amount': 0.0,
    'tax_collectable': 1.98
  }>,
  'jurisdictions': <TaxJarJurisdictions {
    'country': 'US',
    'state': 'NY',
    'county': 'PUTNAM',
    'city': 'MAHOPAC'
  }>,
  'has_nexus': True,
  'tax_source': 'destination',
  'shipping': 7.99,
  'taxable_amount': 37.93,
  'rate': 0.05218,
  'freight_taxable': True,
  'amount_to_collect': 1.98,
  'order_total_amount': 37.93
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        OrderTotalAmount: 37.93,
        Shipping:         7.99,
        TaxableAmount:    37.93,
        AmountToCollect:  1.98,
        Rate:             0.05218,
        HasNexus:         true,
        FreightTaxable:   true,
        TaxSource:        "destination",
        Jurisdictions: taxjar.Jurisdictions{
            Country: "US",
            State:   "NY",
            County   "PUTNAM",
            City:    "MAHOPAC",
        },
        Breakdown: taxjar.Breakdown{
            TaxableAmount:                 37.93,
            TaxCollectable:                1.98,
            CombinedTaxRate:               0.05218,
            StateTaxableAmount:            7.99,
            StateTaxRate:                  0.04,
            StateTaxCollectable:           0.32,
            CountyTaxableAmount:           37.93,
            CountyTaxRate:                 0.04,
            CountyTaxCollectable:          1.52,
            CityTaxableAmount:             0.0,
            CityTaxRate:                   0.0,
            CityTaxCollectable:            0.0,
            SpecialDistrictTaxableAmount:  37.93,
            SpecialTaxRate:                0.00375,
            SpecialDistrictTaxCollectable: 0.14,
            Shipping: taxjar.Shipping{
                TaxableAmount:         7.99,
                TaxCollectable:        0.67,
                CombinedTaxRate:       0.08375,
                StateTaxableAmount:    7.99,
                StateSalesTaxRate:     0.04,
                StateAmount:           0.32,
                CountyTaxableAmount:   7.99,
                CountyTaxRate:         0.04,
                CountyAmount:          0.32,
                CityTaxableAmount:     0.0,
                CityTaxRate:           0.0,
                CityAmount:            0.0,
                SpecialTaxableAmount:  7.99,
                SpecialTaxRate:        0.00375,
                SpecialDistrictAmount: 0.03,
            },
            LineItems: []taxjar.LineItemBreakdown{
                {
                    ID:                           "1",
                    TaxableAmount:                19.99,
                    TaxCollectable:               0.87,
                    CombinedTaxRate:              0.04375,
                    StateTaxableAmount:           0.0,
                    StateSalesTaxRate:            0.0,
                    StateAmount:                  0.0,
                    CountyTaxableAmount:          19.99,
                    CountyTaxRate:                0.04,
                    CountyAmount:                 0.8,
                    CityTaxableAmount:            0.0,
                    CityTaxRate:                  0.0,
                    CityAmount:                   0.0,
                    SpecialDistrictTaxableAmount: 19.99,
                    SpecialTaxRate:               0.00375,
                    SpecialDistrictAmount:        0.07,
                },
                {
                    ID:                           "2",
                    TaxableAmount:                9.95,
                    TaxCollectable:               0.44,
                    CombinedTaxRate:              0.04375,
                    StateTaxableAmount:           0.0,
                    StateSalesTaxRate:            0.0,
                    StateAmount:                  0.0,
                    CountyTaxableAmount:          9.95,
                    CountyTaxRate:                0.04,
                    CountyAmount:                 0.4,
                    CityTaxableAmount:            0.0,
                    CityTaxRate:                  0.0,
                    CityAmount:                   0.0,
                    SpecialDistrictTaxableAmount: 9.95,
                    SpecialTaxRate:               0.00375,
                    SpecialDistrictAmount:        0.04,
                },
            },
        },
    },
}

Response Scenario: Food & Grocery Exemptions

{
  "tax": {
    "order_total_amount": 37.93,
    "shipping": 7.99,
    "taxable_amount": 0,
    "amount_to_collect": 0,
    "rate": 0,
    "has_nexus": true,
    "freight_taxable": false,
    "tax_source": "destination",
    "jurisdictions": {
      "country": "US",
      "state": "CA",
      "county": "LOS ANGELES",
      "city": "LOS ANGELES"
    },
    "breakdown": {
      "city_tax_collectable": 0,
      "city_tax_rate": 0,
      "city_taxable_amount": 0,
      "combined_tax_rate": 0,
      "county_tax_collectable": 0,
      "county_tax_rate": 0,
      "county_taxable_amount": 0,
      "line_items": [
        {
          "city_amount": 0,
          "city_tax_rate": 0,
          "city_taxable_amount": 0,
          "combined_tax_rate": 0,
          "county_amount": 0,
          "county_tax_rate": 0,
          "county_taxable_amount": 0,
          "id": "1",
          "special_district_amount": 0,
          "special_district_taxable_amount": 0,
          "special_tax_rate": 0,
          "state_amount": 0,
          "state_sales_tax_rate": 0,
          "state_taxable_amount": 0,
          "tax_collectable": 0,
          "taxable_amount": 0
        },
        {
          "city_amount": 0,
          "city_tax_rate": 0,
          "city_taxable_amount": 0,
          "combined_tax_rate": 0,
          "county_amount": 0,
          "county_tax_rate": 0,
          "county_taxable_amount": 0,
          "id": "2",
          "special_district_amount": 0,
          "special_district_taxable_amount": 0,
          "special_tax_rate": 0,
          "state_amount": 0,
          "state_sales_tax_rate": 0,
          "state_taxable_amount": 0,
          "tax_collectable": 0,
          "taxable_amount": 0
        }
      ],
      "special_district_tax_collectable": 0,
      "special_district_taxable_amount": 0,
      "special_tax_rate": 0,
      "state_tax_collectable": 0,
      "state_tax_rate": 0,
      "state_taxable_amount": 0,
      "tax_collectable": 0,
      "taxable_amount": 0
    }
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :order_total_amount => 37.93,
  :shipping => 7.99,
  :taxable_amount => 0.0,
  :amount_to_collect => 0.0,
  :rate => 0.0,
  :has_nexus => true,
  :freight_taxable => false,
  :tax_source => "destination",
  :jurisdictions => #<Taxjar::Jurisdictions:0x00000a @attrs={
    :country => 'US',
    :state => 'CA',
    :county => 'LOS ANGELES',
    :city => 'LOS ANGELES'
  }>,
  :breakdown => #<Taxjar::Breakdown:0x00000a @attrs={
    :taxable_amount => 0.0,
    :tax_collectable => 0.0,
    :combined_tax_rate => 0.0,
    :state_taxable_amount => 0.0,
    :state_tax_rate => 0.0,
    :state_tax_collectable => 0.0,
    :county_taxable_amount => 0.0,
    :county_tax_rate => 0.0,
    :county_tax_collectable => 0.0,
    :city_taxable_amount => 0.0,
    :city_tax_rate => 0.0,
    :city_tax_collectable => 0.0,
    :special_district_taxable_amount => 0.0,
    :special_tax_rate => 0.0,
    :special_district_tax_collectable => 0.0,
    :line_items => [
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "1",
        :taxable_amount => 0.0,
        :tax_collectable => 0.0,
        :combined_tax_rate => 0.0,
        :state_taxable_amount => 0.0,
        :state_sales_tax_rate => 0.0,
        :state_amount => 0.0,
        :county_taxable_amount => 0.0,
        :county_tax_rate => 0.0,
        :county_amount => 0.0,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 0.0,
        :special_tax_rate => 0.0,
        :special_district_amount => 0.0
      }>,
      #<Taxjar::BreakdownLineItem:0x00000a @attrs={
        :id => "2",
        :taxable_amount => 0.0,
        :tax_collectable => 0.0,
        :combined_tax_rate => 0.0,
        :state_taxable_amount => 0.0,
        :state_sales_tax_rate => 0.0,
        :state_amount => 0.0,
        :county_taxable_amount => 0.0,
        :county_tax_rate => 0.0,
        :county_amount => 0.0,
        :city_taxable_amount => 0.0,
        :city_tax_rate => 0.0,
        :city_amount => 0.0,
        :special_district_taxable_amount => 0.0,
        :special_tax_rate => 0.0,
        :special_district_amount => 0.0
      }>
    ]
  }>
}>
<TaxJarTax {
  'breakdown': <TaxJarBreakdown {
    'special_district_taxable_amount': 0.0,
    'city_tax_rate': 0.0,
    'county_tax_collectable': 0.0,
    'county_taxable_amount': 0.0,
    'special_district_tax_collectable': 0.0,
    'line_items': [
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 0.0,
        'city_tax_rate': 0.0,
        'county_taxable_amount': 0.0,
        'special_district_amount': 0.0,
        'state_sales_tax_rate': 0.0,
        'state_amount': 0.0,
        'city_taxable_amount': 0.0,
        'taxable_amount': 0.0,
        'special_tax_rate': 0.0,
        'state_taxable_amount': 0.0,
        'combined_tax_rate': 0.0,
        'county_tax_rate': 0.0,
        'city_amount': 0.0,
        'county_amount': 0.0,
        'id': '1',
        'tax_collectable': 0.0
      }>,
      <TaxJarBreakdownLineItem {
        'special_district_taxable_amount': 0.0,
        'city_tax_rate': 0.0,
        'county_taxable_amount': 0.0,
        'special_district_amount': 0.0,
        'state_sales_tax_rate': 0.0,
        'state_amount': 0.0,
        'city_taxable_amount': 0.0,
        'taxable_amount': 0.0,
        'special_tax_rate': 0.0,
        'state_taxable_amount': 0.0,
        'combined_tax_rate': 0.0,
        'county_tax_rate': 0.0,
        'city_amount': 0.0,
        'county_amount': 0.0,
        'id': '2',
        'tax_collectable': 0.0
      }>
    ],
    'taxable_amount': 0.0,
    'state_taxable_amount': 0.0,
    'combined_tax_rate': 0.0,
    'state_tax_collectable': 0.0,
    'state_tax_rate': 0.0,
    'city_tax_collectable': 0.0,
    'county_tax_rate': 0.0,
    'special_tax_rate': 0.0,
    'city_taxable_amount': 0.0,
    'tax_collectable': 0.0
  }>,
  'jurisdictions': <TaxJarJurisdictions {
    'country': 'US',
    'state': 'CA',
    'county': 'LOS ANGELES',
    'city': 'LOS ANGELES'
  }>,
  'has_nexus': True,
  'tax_source': 'destination',
  'shipping': 7.99,
  'taxable_amount': 0.0,
  'rate': 0.0,
  'freight_taxable': False,
  'amount_to_collect': 0.0,
  'order_total_amount': 37.93
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        OrderTotalAmount: 37.93,
        Shipping:         7.99,
        TaxableAmount:    0.0,
        AmountToCollect:  0.0,
        Rate:             0.0,
        HasNexus:         true,
        FreightTaxable:   false,
        TaxSource:        "destination",
        Jurisdictions: taxjar.Jurisdictions{
            Country: "US",
            State:   "CA",
            County:  "LOS ANGELES",
            City:    "LOS ANGELES",
        },
        Breakdown: taxjar.Breakdown{
            TaxableAmount:                 0.0,
            TaxCollectable:                0.0,
            CombinedTaxRate:               0.0,
            StateTaxableAmount:            0.0,
            StateTaxRate:                  0.0,
            StateTaxCollectable:           0.0,
            CountyTaxableAmount:           0.0,
            CountyTaxRate:                 0.0,
            CountyTaxCollectable:          0.0,
            CityTaxableAmount:             0.0,
            CityTaxRate:                   0.0,
            CityTaxCollectable:            0.0,
            SpecialDistrictTaxableAmount:  0.0,
            SpecialTaxRate:                0.0,
            SpecialDistrictTaxCollectable: 0.0,
            LineItems: []taxjar.LineItemBreakdown{
                {
                    ID:                           "1",
                    TaxableAmount:                0.0,
                    TaxCollectable:               0.0,
                    CombinedTaxRate:              0.0,
                    StateTaxableAmount:           0.0,
                    StateSalesTaxRate:            0.0,
                    StateAmount:                  0.0,
                    CountyTaxableAmount:          0.0,
                    CountyTaxRate:                0.0,
                    CountyAmount:                 0.0,
                    CityTaxableAmount:            0.0,
                    CityTaxRate:                  0.0,
                    CityAmount:                   0.0,
                    SpecialDistrictTaxableAmount: 0.0,
                    SpecialTaxRate:               0.0,
                    SpecialDistrictAmount:        0.0,
                },
                {
                    ID:                           "2",
                    TaxableAmount:                0.0,
                    TaxCollectable:               0.0,
                    CombinedTaxRate:              0.0,
                    StateTaxableAmount:           0.0,
                    StateSalesTaxRate:            0.0,
                    StateAmount:                  0.0,
                    CountyTaxableAmount:          0.0,
                    CountyTaxRate:                0.0,
                    CountyAmount:                 0.0,
                    CityTaxableAmount:            0.0,
                    CityTaxRate:                  0.0,
                    CityAmount:                   0.0,
                    SpecialDistrictTaxableAmount: 0.0,
                    SpecialTaxRate:               0.0,
                    SpecialDistrictAmount:        0.0,
                },
            },
        },
    },
}

Response Scenario: No Nexus

{
  "tax": {
    "amount_to_collect": 0,
    "freight_taxable": false,
    "has_nexus": false,
    "rate": 0,
    "tax_source": null,
    "taxable_amount": 0
  }
}
#<Taxjar::Tax:0x00000a @attrs={
  :taxable_amount => 0.0,
  :amount_to_collect => 0.0,
  :rate => 0.0,
  :has_nexus => false,
  :freight_taxable => false,
  :tax_source => nil
}>
<TaxJarTax {
  'has_nexus': False,
  'taxable_amount': 0.0,
  'rate': 0.0,
  'freight_taxable': False,
  'amount_to_collect': 0.0
}>
taxjar.TaxForOrderResponse{
    Tax: taxjar.Tax{
        TaxableAmount:   0.0,
        AmountToCollect: 0.0,
        Rate:            0.0,
        HasNexus:        false,
        FreightTaxable:  false,
        TaxSource:       "",
    },
}

Shows the sales tax that should be collected for a given order.

Request

POST https://api.taxjar.com/v2/taxes

Parameters

Parameter Type Required Description
from_country string optional Two-letter ISO country code of the country where the order shipped from. View Note
from_zip string optional Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string optional Two-letter ISO state code where the order shipped from.
from_city string optional City where the order shipped from.
from_street string optional Street address where the order shipped from.
to_country string required Two-letter ISO country code of the country where the order shipped to.
to_zip string required Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string required Two-letter ISO state code where the order shipped to.
to_city string optional City where the order shipped to.
to_street string optional Street address where the order shipped to. View Note
amount float optional Total amount of the order, excluding shipping. View Note
shipping float required Total amount of shipping for the order.
customer_id string optional Unique identifier of the given customer for exemptions.
exemption_type string optional Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. View Note
nexus_addresses[][id] string optional Unique identifier of the given nexus address. View Note
nexus_addresses[][country] string conditional Two-letter ISO country code for the nexus address.
nexus_addresses[][zip] string optional Postal code for the nexus address.
nexus_addresses[][state] string conditional Two-letter ISO state code for the nexus address.
nexus_addresses[][city] string optional City for the nexus address.
nexus_addresses[][street] string optional Street address for the nexus address.
line_items[][id] string optional Unique identifier of the given line item. View Note
line_items[][quantity] integer optional Quantity for the item.
line_items[][product_tax_code] string optional Product tax code for the item. If omitted, the item will remain fully taxable.
line_items[][unit_price] float optional Unit price for the item.
line_items[][discount] float optional Total discount (non-unit) for the item.

Notes

  • Either amount or line_items parameters are required to perform tax calculations.

  • The to_zip parameter is required when to_country is ‘US’.

  • The to_state parameter is required when to_country is ‘US’ or ‘CA’.

  • Either an address on file, nexus_addresses parameter, or from_ parameters are required to perform tax calculations. Providing nexus_addresses in API calls will override TaxJar Account ‘State Settings’ configurations.

Response

Returns a tax JSON object with sales tax for a given order. If available, returns a breakdown of rates by jurisdiction at the order, shipping, and line item level.

Attributes

Parameter Type Description
order_total_amount float Total amount of the order.
shipping float Total amount of shipping for the order.
taxable_amount float Amount of the order to be taxed.
amount_to_collect float Amount of sales tax to collect.
rate float Overall sales tax rate of the order (amount_to_collect ÷ taxable_amount).
has_nexus bool Whether or not you have nexus for the order based on an address on file, nexus_addresses parameter, or from_ parameters.
freight_taxable bool Freight taxability for the order.
tax_source string Origin-based or destination-based sales tax collection.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. If no customer_id or exemption_type is provided, no exemption_type is returned in the response.
jurisdictions object Jurisdiction names for the order.
breakdown object Breakdown of rates by jurisdiction for the order, shipping, and individual line items. If has_nexus is false or no line items are provided, no breakdown is returned in the response.

  United States Jurisdiction Attributes

Parameter Type Description
country string Two-letter ISO country code for given location.
state string Postal abbreviated state name for given location.
county string County name for given location.
city string City name for given location.

  United States Breakdown Attributes

Parameter Type Description
taxable_amount float Total amount of the order to be taxed.
tax_collectable float Total amount of sales tax to collect.
combined_tax_rate float Overall sales tax rate of the breakdown which includes state, county, city and district tax for the order and shipping if applicable.
state_taxable_amount float Amount of the order to be taxed at the state tax rate.
state_tax_rate float State sales tax rate for given location.
state_tax_collectable float Amount of sales tax to collect for the state.
county_taxable_amount float Amount of the order to be taxed at the county tax rate.
county_tax_rate float County sales tax rate for given location.
county_tax_collectable float Amount of sales tax to collect for the county.
city_taxable_amount float Amount of the order to be taxed at the city tax rate.
city_tax_rate float City sales tax rate for given location.
city_tax_collectable float Amount of sales tax to collect for the city.
special_district_taxable_amount float Amount of the order to be taxed at the special district tax rate.
special_tax_rate float Special district sales tax rate for given location.
special_district_tax_collectable float Amount of sales tax to collect for the special district.
shipping object Breakdown of shipping rates if applicable.
line_items object Breakdown of rates by line item if applicable.

Transactions

Manage your transactions for automated sales tax reporting and filing in TaxJar. These endpoints only affect orders and refunds created specifically through the API, not transactions from other channels.

We currently support reporting and filing in the United States.

get List order transactions

Definition

client.list_orders
client.list_orders
client.listOrders();
$client->listOrders();
client.ListOrders();
client.listOrders();
client.ListOrders()
GET https://api.taxjar.com/v2/transactions/orders

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

orders = client.list_orders({
  :from_transaction_date => '2015/05/01',
  :to_transaction_date => '2015/05/31'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

orders = client.list_orders({
  'from_transaction_date': '2015/05/01',
  'to_transaction_date': '2015/05/31'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.listOrders({
  from_transaction_date: '2015/05/01',
  to_transaction_date: '2015/05/31'
}).then(res => {
  res.orders; // Array of orders
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$orders = $client->listOrders([
  'from_transaction_date' => '2015/05/01',
  'to_transaction_date' => '2015/05/31'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var orders = client.ListOrders(new {
    from_transaction_date = "2015/05/01",
    to_transaction_date = "2015/05/31"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrdersResponse;
import java.util.HashMap;
import java.util.Map;

public class ListOrdersExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, String> params = new HashMap<>();
            params.put("from_transaction_date", "2015/05/01");
            params.put("to_transaction_date", "2015/05/31");
            OrdersResponse res = client.listOrders(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ListOrders(taxjar.ListOrdersParams{
        FromTransactionDate: "2015/05/01",
        ToTransactionDate:   "2015/05/31",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Orders)
    }
}
$ curl -G https://api.taxjar.com/v2/transactions/orders \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -d from_transaction_date="2015/05/01" \
  -d to_transaction_date="2015/05/31"

Response Example

{
  "orders": [
    "123",
    "456"
  ]
}
["20", "21", "22"]
['20', '21', '22']
taxjar.ListOrdersResponse{
    Orders: []string{"20", "21", "22"}
}

Lists existing order transactions created through the API.

Request

GET https://api.taxjar.com/v2/transactions/orders

Parameters

Parameter Type Required Description
transaction_date date optional The date the transactions were originally recorded. View Note
from_transaction_date date optional Start date of a range for which the transactions were originally recorded.
to_transaction_date date optional End date of a range for which the transactions were originally recorded.
provider string optional Source of where the transactions were originally recorded. Defaults to “api”.

Notes

Use transaction_date to list transactions for a specific date. Otherwise, use from_transaction_date and to_transaction_date for a range of dates.

Response

Returns an orders JSON object with an array of order IDs created through the API.

get Show an order transaction

Definition

client.show_order
client.show_order
client.showOrder();
$client->showOrder();
client.ShowOrder();
client.showOrder();
client.ShowOrder()
GET https://api.taxjar.com/v2/transactions/orders/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.show_order('123')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.show_order('123')
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.showOrder('123').then(res => {
  res.order;
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order = $client->showOrder('123');
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var order = client.ShowOrder("123");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrderResponse;

public class ShowOrderExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            OrderResponse res = client.showOrder("123");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ShowOrder("123")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Order)
    }
}
$ curl https://api.taxjar.com/v2/transactions/orders/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

{
  "order": {
    "transaction_id": "123",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "17.0",
    "shipping": "2.0",
    "sales_tax": "0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-0",
        "description": "Heavy Widget",
        "unit_price": "15.0",
        "discount": "0.0",
        "sales_tax": "0.95"
      }
    ]
  }
}
#<Taxjar::Order:0x00000a @attrs={
  :transaction_id => "123",
  :user_id => 11836,
  :transaction_date => "2015-05-14T00:00:00Z",
  :transaction_reference_id => nil,
  :provider => "api",
  :from_country => "US",
  :from_zip => 93107,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1281 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => 17,
  :shipping => 2,
  :sales_tax => 0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-0",
      :product_tax_code => nil,
      :description => "Heavy Widget",
      :unit_price => 15,
      :discount => 0,
      :sales_tax => 0.95
    }
  ]
}>
<TaxJarOrder {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Heavy Widget',
    'unit_price': 15,
    'discount': 0,
    'product_identifier': '12-34243-0',
    'sales_tax': 0.95,
    'product_tax_code': None,
    'id': 1,
    'quantity': 1
  }>],
  'user_id': 1,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': '93107',
  'to_country': 'US',
  'shipping': 2,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2016-03-10T00:00:00.000Z',
  'transaction_reference_id': None,
  'sales_tax': 0.95,
  'amount': 17,
  'transaction_id': '123',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.ShowOrderResponse{
    Order: taxjar.Order{
        TransactionID:          "123",
        UserID:                 11836,
        TransactionDate:        "2015-05-14T00:00:00Z",
        TransactionReferenceID: "",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93107",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1281 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 17,
        Shipping:               2,
        SalesTax:               0.95,
        LineItems: []taxjar.OrderLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                Description:       "Heavy Widget",
                ProductTaxCode:    "",
                UnitPrice:         15,
                Discount:          0,
                SalesTax:          0.95,
            },
        },
    },
}

Shows an existing order transaction created through the API.

Request

GET https://api.taxjar.com/v2/transactions/orders/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given order transaction.
provider string optional Source of where the transaction was originally recorded. Defaults to “api”, if omitted will scope to a provider of “api”. When looking up a transaction for a different provider, add “?provider=XYZ” to your request.

Response

Returns an order JSON object with details of a given order transaction created through the API.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given order transaction.
user_id integer Unique identifier of the user who created the order transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the order with shipping, excluding sales tax.
shipping float Total amount of shipping for the order.
sales_tax float Total amount of sales tax collected for the order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

post Create an order transaction

Definition

client.create_order
client.create_order
client.createOrder();
$client->createOrder();
client.CreateOrder();
client.createOrder();
client.CreateOrder()
POST https://api.taxjar.com/v2/transactions/orders

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.create_order({
  :transaction_id => '123',
  :transaction_date => '2015/05/14',
  :to_country => 'US',
  :to_zip => '90002',
  :to_state => 'CA',
  :to_city => 'Los Angeles',
  :to_street => '123 Palm Grove Ln',
  :amount => 16.5,
  :shipping => 1.5,
  :sales_tax => 0.95,
  :line_items => [
    {
      :quantity => 1,
      :product_identifier => '12-34243-9',
      :description => 'Fuzzy Widget',
      :unit_price => 15,
      :sales_tax => 0.95
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.create_order({
  'transaction_id': '123',
  'transaction_date': '2015/05/14',
  'to_country': 'US',
  'to_zip': '90002',
  'to_state': 'CA',
  'to_city': 'Los Angeles',
  'to_street': '123 Palm Grove Ln',
  'amount': 16.5,
  'shipping': 1.5,
  'sales_tax': 0.95,
  'line_items': [
    {
      'quantity': 1,
      'product_identifier': '12-34243-9',
      'description': 'Fuzzy Widget',
      'unit_price': 15,
      'sales_tax': 0.95
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.createOrder({
  transaction_id: '123',
  transaction_date: '2015/05/14',
  to_country: 'US',
  to_zip: '90002',
  to_state: 'CA',
  to_city: 'Los Angeles',
  to_street: '123 Palm Grove Ln',
  amount: 16.5,
  shipping: 1.5,
  sales_tax: 0.95,
  line_items: [
    {
      quantity: 1,
      product_identifier: '12-34243-9',
      description: 'Fuzzy Widget',
      unit_price: 15,
      sales_tax: 0.95
    }
  ]
}).then(res => {
  res.order; // Order object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order = $client->createOrder([
  'transaction_id' => '123',
  'transaction_date' => '2015/05/14',
  'to_country' => 'US',
  'to_zip' => '90002',
  'to_state' => 'CA',
  'to_city' => 'Los Angeles',
  'to_street' => '123 Palm Grove Ln',
  'amount' => 16.5,
  'shipping' => 1.5,
  'sales_tax' => 0.95,
  'line_items' => [
    [
      'quantity' => 1,
      'product_identifier' => '12-34243-9',
      'description' => 'Fuzzy Widget',
      'unit_price' => 15,
      'sales_tax' => 0.95
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var order = client.CreateOrder(new {
  transaction_id = "123",
  transaction_date = "2015/05/04",
  to_country = "US",
  to_state = "CA",
  to_zip = "90002",
  to_city = "Los Angeles",
  to_street = "123 Palm Grove Ln",
  amount = 16.5,
  shipping = 1.5,
  sales_tax = 0.95,
  line_items = new[] {
    new {
      quantity = 1,
      product_identifier = "12-34243-0",
      description = "Heavy Widget",
      unit_price = 15,
      sales_tax = 0.95
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrderResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CreateOrderExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("transaction_id", "123");
            params.put("transaction_date", "2015/05/04");
            params.put("to_country", "US");
            params.put("to_zip", "90002");
            params.put("to_city", "Los Angeles");
            params.put("to_street", "123 Palm Grove Ln");
            params.put("amount", 16.5);
            params.put("shipping", 1.5);
            params.put("sales_tax", 0.95);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("product_identifier", "12-34243-0");
            lineItem.put("description", "Heavy Widget");
            lineItem.put("unit_price", 15);
            lineItem.put("sales_tax", 0.95);
            lineItems.add(lineItem);

            params.put("line_items", lineItems);

            OrderResponse res = client.createOrder(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.CreateOrder(taxjar.CreateOrderParams{
        TransactionID:   "123",
        TransactionDate: "2015/05/14",
        ToCountry:       "US",
        ToZip:           "90002",
        ToState:         "CA",
        ToCity:          "Los Angeles",
        ToStreet:        "123 Palm Grove Ln",
        Amount:          16.5,
        Shipping:        1.5,
        SalesTax:        0.95,
        LineItems: []taxjar.OrderLineItem{
            {
                Quantity:          1,
                ProductIdentifier: "12-34243-9",
                Description:       "Fuzzy Widget",
                UnitPrice:         15,
                SalesTax:          0.95,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Order)
    }
}
$ curl https://api.taxjar.com/v2/transactions/orders \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "123",
    "transaction_date": "2015/05/14",
    "to_street": "123 Palm Grove Ln",
    "to_city": "Los Angeles",
    "to_state": "CA",
    "to_zip": "90002",
    "to_country": "US",
    "amount": 16.5,
    "shipping": 1.5,
    "sales_tax": 0.95,
    "line_items": [
      {
        "quantity": 1,
        "product_identifier": "12-34234-9",
        "description": "Fuzzy Widget",
        "unit_price": 15,
        "sales_tax": 0.95
      }
    ]
  }'

Response Example

{
  "order": {
    "transaction_id": "123",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "16.5",
    "shipping": "1.5",
    "sales_tax": "0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-9",
        "description": "Fuzzy Widget",
        "unit_price": "15.0",
        "discount": "0.0",
        "sales_tax": "0.95"
      }
    ]
  }
}
#<Taxjar::Order:0x00000a @attrs={
  :transaction_id => 20,
  :user_id => 11836,
  :transaction_date => "2015-05-14T00:00:00Z",
  :transaction_reference_id => nil,
  :provider => "api",
  :from_country => "US",
  :from_zip => 93101,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1218 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => 16.5,
  :shipping => 1.5,
  :sales_tax => 0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-9",
      :product_tax_code => nil,
      :description => "Fuzzy Widget",
      :unit_price => 15,
      :discount => 0,
      :sales_tax => 0.95
    }
  ]
}>
<TaxJarOrder {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Fuzzy Widget',
    'unit_price': 15,
    'discount': 0,
    'product_identifier': '12-34243-9',
    'sales_tax': 0.95,
    'product_tax_code': None,
    'id': 1,
    'quantity': 1
  }>],
  'user_id': 11836,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': '93101',
  'to_country': 'US',
  'shipping': 1.5,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2015-05-14T00:00:00Z',
  'transaction_reference_id': None,
  'sales_tax': 0.95,
  'amount': 16.5,
  'transaction_id': '20',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.CreateOrderResponse{
    Order: taxjar.Order{
        TransactionID:          "20",
        UserID:                 11836,
        TransactionDate:        "2015-05-14T00:00:00Z",
        TransactionReferenceID: "",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93101",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1218 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 16.5,
        Shipping:               1.5,
        SalesTax:               0.95,
        LineItems: []taxjar.OrderLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-9",
                Description:       "Fuzzy Widget",
                UnitPrice:         15,
                Discount:          0,
                SalesTax:          0.95,
            },
        },
    },
}

Creates a new order transaction.

Request

POST https://api.taxjar.com/v2/transactions/orders

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given order transaction. View Note
transaction_date datetime required The date/time the transaction was originally recorded. View Note
provider string optional Source of where the transaction was originally recorded. Defaults to “api”. View Note
from_country string optional Two-letter ISO country code of the country where the order shipped from. View Note
from_zip string optional Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string optional Two-letter ISO state code where the order shipped from.
from_city string optional City where the order shipped from.
from_street string optional Street address where the order shipped from.
to_country string required Two-letter ISO country code of the country where the order shipped to.
to_zip string required Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string required Two-letter ISO state code where the order shipped to.
to_city string optional City where the order shipped to.
to_street string optional Street address where the order shipped to.
amount float required Total amount of the order with shipping, excluding sales tax in dollars.
shipping float required Total amount of shipping for the order in dollars.
sales_tax float required Total amount of sales tax collected for the order in dollars.
customer_id string optional Unique identifier of the given customer for exemptions.
exemption_type string optional Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. View Note
line_items[][id] string optional Unique identifier of the given line item.
line_items[][quantity] integer optional Quantity for the item.
line_items[][product_identifier] string optional Product identifier for the item.
line_items[][description] string optional Description of the line item (up to 255 characters).
line_items[][product_tax_code] string optional Product tax code for the item. If omitted, the item will remain fully taxable. View Note
line_items[][unit_price] float optional Unit price for the item in dollars.
line_items[][discount] float optional Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float conditional Total sales tax collected (non-unit) for the item in dollars.

Notes

  • Either an address on file or from_ parameters are required to create order transactions.

  • The transaction_id should only include alphanumeric characters, underscores, and dashes.

  • The transaction_date may be a date ‘2015-05-25’, an ISO UTC date/time ‘2015-05-25T13:05:45’, or an ISO date/time with zone offset ‘2015-05-25T13:05:45-05:00’.

  • We recommend passing positive values for monetary amounts when creating or updating order transactions. Values will be signed automatically regardless of what you send in. Do not update existing orders with negative amounts to indicate a refund. Instead, create a refund transaction.

Response

Returns an order JSON object with details of the new order transaction.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given order transaction.
user_id integer Unique identifier of the user who created the order transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the order with shipping, excluding sales tax.
shipping float Total amount of shipping for the order.
sales_tax float Total amount of sales tax collected for the order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

put Update an order transaction

Definition

client.update_order
client.update_order
client.updateOrder();
$client->updateOrder();
client.UpdateOrder();
client.updateOrder();
client.UpdateOrder()
PUT https://api.taxjar.com/v2/transactions/orders/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.update_order({
  :transaction_id => '123',
  :amount => 17,
  :shipping => 2,
  :line_items => [
    {
      :quantity => 1,
      :product_identifier => '12-34243-0',
      :description => 'Heavy Widget',
      :unit_price => 15,
      :discount => 0,
      :sales_tax => 0.95
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

order = client.update_order('123', {
  'transaction_id': '123',
  'amount': 17,
  'shipping': 2,
  'line_items': [
    {
      'quantity': 1,
      'product_identifier': '12-34243-0',
      'description': 'Heavy Widget',
      'unit_price': 15,
      'discount': 0,
      'sales_tax': 0.95
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.updateOrder({
  transaction_id: '123',
  amount: 17,
  shipping: 2,
  line_items: [
    {
      quantity: 1,
      product_identifier: '12-34243-0',
      description: 'Heavy Widget',
      unit_price: 15,
      discount: 0,
      sales_tax: 0.95
    }
  ]
}).then(res => {
  res.order; // Order object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$order = $client->updateOrder([
  'transaction_id' => '123',
  'amount' => 17,
  'shipping' => 2,
  'line_items' => [
    [
      'quantity' => 1,
      'product_identifier' => '12-34243-0',
      'description' => 'Heavy Widget',
      'unit_price' => 15,
      'discount' => 0,
      'sales_tax' => 0.95
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var order = client.UpdateOrder(new
{
  transaction_id = "123",
  amount = 17,
  shipping = 2,
  line_items = new[] {
    new {
      quantity = 1,
      product_identifier = "12-34243-0",
      description = "Heavy Widget",
      unit_price = 15,
      discount = 0,
      sales_tax = 0.95
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrderResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UpdateOrderExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("transaction_id", "123");
            params.put("amount", 17);
            params.put("shipping", 2);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("product_identifier", "12-34243-0");
            lineItem.put("description", "Heavy Widget");
            lineItem.put("unit_price", 15);
            lineItem.put("discount", 0);
            lineItem.put("sales_tax", 0.95);
            lineItems.add(lineItem);

            params.put("line_items", lineItems);

            OrderResponse res = client.updateOrder("123", params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.UpdateOrder(taxjar.UpdateOrderParams{
        TransactionID: "123",
        Amount:        17,
        Shipping:      2,
        LineItems: []taxjar.OrderLineItem{
            {
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                Description:       "Heavy Widget",
                UnitPrice:         15,
                Discount:          0,
                SalesTax:          0.95,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Order)
    }
}
$ curl https://api.taxjar.com/v2/transactions/orders/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "123",
    "amount": 17,
    "shipping": 2,
    "line_items": [
      {
        "quantity": 1,
        "product_identifier": "12-34234-0",
        "unit_price": 15,
        "discount": 0,
        "sales_tax": 0.95
      }
    ]
  }' \
  -X PUT

Response Example

{
  "order": {
    "transaction_id": "123",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "17.0",
    "shipping": "2.0",
    "sales_tax": "0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-0",
        "description": "Heavy Widget",
        "unit_price": "15.0",
        "discount": "0.0",
        "sales_tax": "0.95"
      }
    ]
  }
}
#<Taxjar::Order:0x00000a @attrs={
  :transaction_id => "123",
  :user_id => 11836,
  :transaction_date => "2015-05-14T00:00:00Z",
  :transaction_reference_id => nil,
  :provider => 'api',
  :from_country => "US",
  :from_zip => 93101,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1218 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => 17.0,
  :shipping => 2.0,
  :sales_tax => 0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-0",
      :product_tax_code => nil,
      :description => "Heavy Widget",
      :unit_price => 15,
      :discount => 0,
      :sales_tax => 0.95
    }
  ]
}>
<TaxJarOrder {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Heavy Widget',
    'unit_price': 15,
    'discount': 0,
    'product_identifier': '12-34243-0',
    'sales_tax': 0.95,
    'product_tax_code': None,
    'id': 0,
    'quantity': 1
  }>,
  'user_id': 11836,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': '93101',
  'to_country': 'US',
  'shipping': 2,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2015-05-14T00:00:00Z',
  'transaction_reference_id': None,
  'sales_tax': 0.95,
  'amount': 17,
  'transaction_id': '123',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.UpdateOrderResponse{
    Order: taxjar.Order{
        TransactionID:          "123",
        UserID:                 11836,
        TransactionDate:        "2015-05-14T00:00:00Z",
        TransactionReferenceID: "",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93101",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1218 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 17.0,
        Shipping:               2.0,
        SalesTax:               0.95,
        LineItems: []taxjar.OrderLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                Description:       "Heavy Widget",
                UnitPrice:         15,
                Discount:          0,
                SalesTax:          0.95,
            },
        },
    },
}

Updates an existing order transaction created through the API.

Request

PUT https://api.taxjar.com/v2/transactions/orders/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given order transaction.
transaction_date datetime optional The date/time the transaction was originally recorded. View Note
from_country string optional Two-letter ISO country code of the country where the order shipped from. View Note
from_zip string optional Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string optional Two-letter ISO state code where the order shipped from.
from_city string optional City where the order shipped from.
from_street string optional Street address where the order shipped from.
to_country string optional Two-letter ISO country code of the country where the order shipped to.
to_zip string optional Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string optional Two-letter ISO state code where the order shipped to.
to_city string optional City where the order shipped to.
to_street string optional Street address where the order shipped to.
amount float optional Total amount of the order with shipping, excluding sales tax in dollars.
shipping float optional Total amount of shipping for the order in dollars.
sales_tax float optional Total amount of sales tax collected for the order in dollars.
customer_id string optional Unique identifier of the given customer for exemptions.
exemption_type string optional Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. View Note
line_items[][id] string optional Unique identifier of the given line item.
line_items[][quantity] integer optional Quantity for the item.
line_items[][product_identifier] string optional Product identifier for the item.
line_items[][description] string optional Description of the line item (up to 255 characters).
line_items[][product_tax_code] string optional Product tax code for the item. If omitted, the item will remain fully taxable. View Note
line_items[][unit_price] float optional Unit price for the item in dollars.
line_items[][discount] float optional Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float optional Total sales tax collected (non-unit) for the item in dollars.

Notes

  • Either an address on file or from_ parameters are required to update order transactions.

  • The transaction_date may be a date ‘2015-05-25’, an ISO UTC date/time ‘2015-05-25T13:05:45’, or an ISO date/time with zone offset ‘2015-05-25T13:05:45-05:00’.

Response

Returns an order JSON object with details of the updated order transaction.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given order transaction.
user_id integer Unique identifier of the user who created the order transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the order with shipping, excluding sales tax.
shipping float Total amount of shipping for the order.
sales_tax float Total amount of sales tax collected for the order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

delete Delete an order transaction

Definition

client.delete_order
client.delete_order
client.deleteOrder();
$client->deleteOrder();
client.DeleteOrder();
client.deleteOrder();
client.DeleteOrder()
DELETE https://api.taxjar.com/v2/transactions/orders/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

client.delete_order('123')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

client.delete_order('123')
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.deleteOrder('123').then(res => {
  res.order; // Order object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$client->deleteOrder('123');
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var order = client.DeleteOrder("123");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrderResponse;

public class DeleteOrderExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            OrderResponse res = client.deleteOrder("123");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.DeleteOrder("123")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Order)
    }
}
$ curl https://api.taxjar.com/v2/transactions/orders/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -X DELETE

Response Example

{
  "order": {
    "transaction_id": "123",
    "user_id": 10649,
    "transaction_date": null,
    "transaction_reference_id": null,
    "provider": "api",
    "from_country": null,
    "from_zip": null,
    "from_state": null,
    "from_city": null,
    "from_street": null,
    "to_country": null,
    "to_zip": null,
    "to_state": null,
    "to_city": null,
    "to_street": null,
    "amount": null,
    "shipping": null,
    "sales_tax": null,
    "line_items": []
  }
}
#<Taxjar::Order:0x00000a @attrs={
  :transaction_id => "123",
  :user_id => 10649,
  :transaction_date => nil,
  :transaction_reference_id => nil,
  :provider => "api",
  :from_country => nil,
  :from_zip => nil,
  :from_state => nil,
  :from_city => nil,
  :from_street => nil,
  :to_country => nil,
  :to_zip => nil,
  :to_state => nil,
  :to_city => nil,
  :to_street => nil,
  :amount => nil,
  :shipping => nil,
  :sales_tax => nil,
  :line_items => []
}>
<TaxJarOrder {
  'from_state': None,
  'line_items': [],
  'user_id': 10649,
  'to_zip': None,
  'from_street': None,
  'from_city': None,
  'from_zip': None,
  'to_country': None,
  'shipping': None,
  'from_country': None,
  'to_city': None,
  'to_street': None,
  'transaction_date': None,
  'transaction_reference_id': None,
  'sales_tax': None,
  'amount': None,
  'transaction_id': '123',
  'to_state': None,
  'provider': 'api'
}>
taxjar.DeleteOrderResponse{
    Order: taxjar.Order{
        TransactionID:          "123",
        UserID:                 10649,
        TransactionDate:        "",
        TransactionReferenceID: "",
        Provider:               "api",
        FromCountry:            "",
        FromZip:                "",
        FromState:              "",
        FromCity:               "",
        FromStreet:             "",
        ToCountry:              "",
        ToZip:                  "",
        ToState:                "",
        ToCity:                 "",
        ToStreet:               "",
        Amount:                 0,
        Shipping:               0,
        SalesTax:               0,
        LineItems: []taxjar.OrderLineItem{},
    },
}

Deletes an existing order transaction created through the API.

Request

DELETE https://api.taxjar.com/v2/transactions/orders/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given order transaction.
provider string optional Source of where the transaction was originally recorded. Defaults to “api”.

Response

Returns an order JSON object with the deleted order transaction identifiers.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given order transaction.
user_id integer Unique identifier of the user who created the order transaction.
provider string Source of where the transaction was originally recorded.

get List refund transactions

Definition

client.list_refunds
client.list_refunds
client.listRefunds();
$client->listRefunds();
client.ListRefunds();
client.listRefunds();
client.ListRefunds()
GET https://api.taxjar.com/v2/transactions/refunds

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

refunds = client.list_refunds({
  :from_transaction_date => '2015/05/01',
  :to_transaction_date => '2015/05/31'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

refunds = client.list_refunds({
  'from_transaction_date': '2015/05/01',
  'to_transaction_date': '2015/05/31'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.listRefunds({
  from_transaction_date: '2015/05/01',
  to_transaction_date: '2015/05/31'
}).then(res => {
  res.refunds; // Array of refunds
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$refunds = $client->listRefunds([
  'from_transaction_date' => '2015/05/01',
  'to_transaction_date' => '2015/05/31'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var refunds = client.ListRefunds(new
{
  from_transaction_date = "2015/05/01",
  to_transaction_date = "2015/05/31"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.RefundsResponse;
import java.util.HashMap;
import java.util.Map;

public class ListRefundsExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, String> params = new HashMap<>();
            params.put("from_transaction_date", "2015/05/01");
            params.put("to_transaction_date", "2015/05/31");
            RefundsResponse res = client.listRefunds(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ListRefunds(taxjar.ListRefundsParams{
        FromTransactionDate: "2015/05/01",
        ToTransactionDate:   "2015/05/31",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Refunds)
    }
}
$ curl -G https://api.taxjar.com/v2/transactions/refunds \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -d from_transaction_date="2015/05/01" \
  -d to_transaction_date="2015/05/31"

Response Example

{
  "refunds": [
    "321",
    "654"
  ]
}
["203", "204", "205"]
['203', '204', '205']
taxjar.ListRefundsResponse{
    Refunds: []string{"203", "204", "205"},
}

Lists existing refund transactions created through the API.

Request

GET https://api.taxjar.com/v2/transactions/refunds

Parameters

Parameter Type Required Description
transaction_date date optional The date the transactions were originally recorded. View Note
from_transaction_date date optional The start date of a range for which the transactions were originally recorded.
to_transaction_date date optional The end date of a range for which the transactions were originally recorded.
provider string optional Source of where the transactions were originally recorded. Defaults to “api”.

Notes

Use transaction_date to list transactions for a specific date. Otherwise, use from_transaction_date and to_transaction_date for a range of dates.

Response

Returns a refunds JSON object with an array of refund IDs created through the API.

get Show a refund transaction

Definition

client.show_refund
client.show_refund
client.showRefund();
$client->showRefund();
client.ShowRefund();
client.showRefund();
client.ShowRefund()
GET https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

refund = client.show_refund('321')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

refund = client.show_refund('321')
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.showRefund('321').then(res => {
  res.refund;
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$refund = $client->showRefund('321');
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var refund = client.ShowRefund("321");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.RefundResponse;

public class ShowRefundExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            RefundResponse res = client.showRefund("321");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ShowRefund("321")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Refund)
    }
}
$ curl https://api.taxjar.com/v2/transactions/refunds/321 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

{
  "refund": {
    "transaction_id": "321",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "transaction_reference_id": "123",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "-17.0",
    "shipping": "-2.0",
    "sales_tax": "-0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-0",
        "description": "Heavy Widget",
        "unit_price": "-15.0",
        "discount": "0.0",
        "sales_tax": "-0.95"
      }
    ]
  }
}
#<Taxjar::Refund:0x00000a @attrs={
  :transaction_id => "321",
  :user_id => 11836,
  :transaction_date => "2015-06-14T00:00:00Z",
  :transaction_reference_id => "123",
  :provider => "api",
  :from_country => "US",
  :from_zip => 93107,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1218 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => -17.0,
  :shipping => -2.0,
  :sales_tax => -0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-0",
      :product_tax_code => nil,
      :description => "Heavy Widget",
      :unit_price => -15,
      :discount => 0,
      :sales_tax => -0.95
    }
  ]
}>
<TaxJarRefund {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Heavy Widget',
    'unit_price': -15,
    'discount': 0,
    'product_identifier': '12-34243-0',
    'sales_tax': -0.95,
    'product_tax_code': None,
    'id': 0,
    'quantity': 1
  }>],
  'user_id': 11836,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': 93107,
  'to_country': 'US',
  'shipping': -2,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2015-06-14T00:00:00Z',
  'transaction_reference_id': '123',
  'sales_tax': -0.95,
  'amount': -17,
  'transaction_id': '321',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.ShowRefundResponse{
    Refund: taxjar.Refund{
        TransactionID:          "321",
        UserID:                 11836,
        TransactionDate:        "2015-06-14T00:00:00Z",
        TransactionReferenceID: "123",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93107",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1218 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 -17.0,
        Shipping:               -2.0,
        SalesTax:               -0.95,
        LineItems: []taxjar.RefundLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                ProductTaxCode:    "",
                Description:       "Heavy Widget",
                UnitPrice:         -15,
                Discount:          0,
                SalesTax:          -0.95,
            },
        },
    },
}

Shows an existing refund transaction created through the API.

Request

GET https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given refund transaction.
provider string optional Source of where the transaction was originally recorded. Defaults to “api”.

Response

Returns a refund JSON object with details of a given refund transaction created through the API.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given refund transaction.
user_id integer Unique identifier of the user who created the refund transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the refunded order with shipping, excluding sales tax.
shipping float Total amount of shipping for the refunded order.
sales_tax float Total amount of sales tax collected for the refunded order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

post Create a refund transaction

Definition

client.create_refund
client.create_refund
client.createRefund();
$client->createRefund();
client.CreateRefund();
client.createRefund();
client.CreateRefund()
POST https://api.taxjar.com/v2/transactions/refunds

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

order = client.create_refund({
  :transaction_id => '321',
  :transaction_date => '2015/05/14',
  :transaction_reference_id => '123',
  :to_country => 'US',
  :to_zip => '90002',
  :to_state => 'CA',
  :to_city => 'Los Angeles',
  :to_street => '123 Palm Grove Ln',
  :amount => -16.5,
  :shipping => -1.5,
  :sales_tax => -0.95,
  :line_items => [
    {
      :quantity => 1,
      :product_identifier => '12-34243-9',
      :description => 'Fuzzy Widget',
      :unit_price => -15,
      :sales_tax => -0.95
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

refund = client.create_refund({
  'transaction_id': '321',
  'transaction_date': '2016-05-14',
  'transaction_reference_id': '123',
  'from_state': 'CA',
  'from_city': 'Santa Barbara',
  'from_street': '1218 State St',
  'from_country': 'US',
  'from_zip': '93101',
  'to_country': 'US',
  'to_state': 'CA',
  'to_city': 'Los Angeles',
  'to_street': '123 Palm Grove Ln',
  'to_zip': '90002',
  'amount': -16.5,
  'shipping': -1.5,
  'sales_tax': -0.95,
  'line_items': [
    {
      'quantity': 1,
      'product_identifier': '12-34243-9',
      'description': 'Fuzzy Widget',
      'unit_price': -15,
      'sales_tax': -0.95
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.createRefund({
  transaction_id: '321',
  transaction_date: '2015/05/14',
  transaction_reference_id: '123',
  to_country: 'US',
  to_zip: '90002',
  to_state: 'CA',
  to_city: 'Los Angeles',
  to_street: '123 Palm Grove Ln',
  amount: -16.5,
  shipping: -1.5,
  sales_tax: -0.95,
  line_items: [
    {
      quantity: 1,
      product_identifier: '12-34243-9',
      description: 'Fuzzy Widget',
      unit_price: -15,
      sales_tax: -0.95
    }
  ]
}).then(res => {
  res.refund; // Refund object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$refund = $client->createRefund([
  'transaction_id' => '321',
  'transaction_date' => '2015/05/14',
  'transaction_reference_id' => '123',
  'to_country' => 'US',
  'to_zip' => '90002',
  'to_state' => 'CA',
  'to_city' => 'Los Angeles',
  'to_street' => '123 Palm Grove Ln',
  'amount' => -16.5,
  'shipping' => -1.5,
  'sales_tax' => -0.95,
  'line_items' => [
    [
      'quantity' => 1,
      'product_identifier' => '12-34243-9',
      'description' => 'Fuzzy Widget',
      'unit_price' => -15,
      'sales_tax' => -0.95
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var refund = client.CreateRefund(new
{
  transaction_id = "321",
  transaction_date = "2015/05/04",
  transaction_reference_id = "123",
  to_country = "US",
  to_zip = "90002",
  to_city = "Los Angeles",
  to_street = "123 Palm Grove Ln",
  amount = -16.5,
  shipping = -1.5,
  sales_tax = -0.95,
  line_items = new[] {
    new {
      quantity = 1,
      product_identifier = "12-34243-0",
      description = "Heavy Widget",
      unit_price = -15,
      sales_tax = -0.95
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.RefundResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CreateRefundExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("transaction_id", "321");
            params.put("transaction_date", "2015/05/04");
            params.put("to_country", "US");
            params.put("to_zip", "90002");
            params.put("to_city", "Los Angeles");
            params.put("to_street", "123 Palm Grove Ln");
            params.put("amount", -16.5);
            params.put("shipping", -1.5);
            params.put("sales_tax", -0.95);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("product_identifier", "12-34243-0");
            lineItem.put("description", "Heavy Widget");
            lineItem.put("unit_price", -15);
            lineItem.put("sales_tax", -0.95);
            lineItems.add(lineItem);

            params.put("line_items", lineItems);

            RefundResponse res = client.createRefund(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.CreateRefund(taxjar.CreateRefundParams{
        TransactionID:          "321",
        TransactionDate:        "2015/05/14",
        TransactionReferenceID: "123",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "Los Angeles",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 -16.5,
        Shipping:               -1.5,
        SalesTax:               -0.95,
        LineItems: []taxjar.RefundLineItem{
            {
                Quantity:          1,
                ProductIdentifier: "12-34243-9",
                Description:       "Fuzzy Widget",
                UnitPrice:         -15,
                SalesTax:          -0.95,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Refund)
    }
}
$ curl https://api.taxjar.com/v2/transactions/refunds \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "321",
    "transaction_date": "2015/05/14",
    "transaction_reference_id": "123",
    "to_street": "123 Palm Grove Ln",
    "to_city": "Los Angeles",
    "to_state": "CA",
    "to_zip": "90002",
    "to_country": "US",
    "amount": -16.5,
    "shipping": -1.5,
    "sales_tax": -0.95,
    "line_items": [
      {
        "quantity": 1,
        "product_identifier": "12-34234-9",
        "description": "Fuzzy Widget",
        "unit_price": -15,
        "sales_tax": -0.95
      }
    ]
  }'

Response Example

{
  "refund": {
    "transaction_id": "321",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "transaction_reference_id": "123",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "-16.5",
    "shipping": "-1.5",
    "sales_tax": "-0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-9",
        "description": "Fuzzy Widget",
        "unit_price": "-15.0",
        "discount": "0.0",
        "sales_tax": "-0.95"
      }
    ]
  }
}
#<Taxjar::Refund:0x00000a @attrs={
  :transaction_id => "321",
  :user_id => 11836,
  :transaction_date => "2015-06-14T00:00:00Z",
  :transaction_reference_id => "123",
  :provider => "api",
  :from_country => "US",
  :from_zip => 93107,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1218 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => -16.5,
  :shipping => -1.5,
  :sales_tax => -0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-0",
      :product_tax_code => nil,
      :description => "Heavy Widget",
      :unit_price => -15,
      :discount => 0,
      :sales_tax => -0.95
    }
  ]
}>
<TaxJarRefund {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Heavy Widget',
    'unit_price': -15,
    'discount': 0,
    'product_identifier': '12-34243-0',
    'sales_tax': -0.95,
    'product_tax_code': None,
    'id': 0,
    'quantity': 1
  }>],
  'user_id': 11836,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': 93107,
  'to_country': 'US',
  'shipping': -1.5,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2015-06-14T00:00:00Z',
  'transaction_reference_id': '123',
  'sales_tax': -0.95,
  'amount': -16.5,
  'transaction_id': '321',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.CreateRefundResponse{
    Refund: taxjar.Refund{
        TransactionID:          "321",
        UserID:                 11836,
        TransactionDate:        "2015-06-14T00:00:00Z",
        TransactionReferenceID: "123",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93107",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1218 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 -16.5,
        Shipping:               -1.5,
        SalesTax:               -0.95,
        LineItems: []taxjar.RefundLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                ProductTaxCode:    "",
                Description:       "Heavy Widget",
                UnitPrice:         -15,
                Discount:          0,
                SalesTax:          -0.95,
            },
        },
    },
}

Creates a new refund transaction.

Request

POST https://api.taxjar.com/v2/transactions/refunds

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given refund transaction. View Note
transaction_reference_id string required Unique identifier of the corresponding order transaction for the refund.
transaction_date datetime required The date/time the transaction was originally recorded. View Note
provider string optional Source of where the transaction was originally recorded. Defaults to “api”. View Note
from_country string optional Two-letter ISO country code of the country where the order shipped from. View Note
from_zip string optional Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string optional Two-letter ISO state code where the order shipped from.
from_city string optional City where the order shipped from.
from_street string optional Street address where the order shipped from.
to_country string required Two-letter ISO country code of the country where the order shipped to.
to_zip string required Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string required Two-letter ISO state code where the order shipped to.
to_city string optional City where the order shipped to.
to_street string optional Street address where the order shipped to.
amount float required Total amount of the refunded order with shipping, excluding sales tax in dollars.
shipping float required Total amount of shipping for the refunded order in dollars.
sales_tax float required Total amount of sales tax collected for the refunded order in dollars.
customer_id string optional Unique identifier of the given customer for exemptions.
exemption_type string optional Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. View Note
line_items[][id] string optional Unique identifier of the given line item.
line_items[][quantity] integer optional Quantity for the item.
line_items[][product_identifier] string optional Product identifier for the item.
line_items[][description] string optional Description of the line item (up to 255 characters).
line_items[][product_tax_code] string optional Product tax code for the item. If omitted, the item will remain fully taxable. View Note
line_items[][unit_price] float optional Unit price for the item in dollars.
line_items[][discount] float optional Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float conditional Total sales tax collected (non-unit) for the item in dollars.

Notes

  • Either an address on file or from_ parameters are required to create refund transactions.

  • The transaction_id should only include alphanumeric characters, underscores, and dashes.

  • The transaction_date may be a date ‘2015-05-25’, an ISO UTC date/time ‘2015-05-25T13:05:45’, or an ISO date/time with zone offset ‘2015-05-25T13:05:45-05:00’.

  • We recommend passing negative values for monetary amounts when creating or updating refund transactions. Values will be signed automatically regardless of what you send in.

Response

Returns a refund JSON object with details of the new refund transaction.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given refund transaction.
user_id integer Unique identifier of the user who created the refund transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the refunded order with shipping, excluding sales tax.
shipping float Total amount of shipping for the refunded order.
sales_tax float Total amount of sales tax collected for the refunded order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

put Update a refund transaction

Definition

client.update_refund
client.update_refund
client.updateRefund();
$client->updateRefund();
client.UpdateRefund();
client.updateRefund();
client.UpdateRefund()
PUT https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

refund = client.update_refund({
  :transaction_id => '321',
  :amount => -17,
  :shipping => -2,
  :sales_tax => -0.95,
  :line_items => [
    {
      :quantity => 1,
      :product_identifier => '12-34243-0',
      :description => 'Heavy Widget',
      :unit_price => -15,
      :sales_tax => -0.95
    }
  ]
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

refund = client.update_refund('321', {
  'amount': -17,
  'shipping': -2,
  'sales_tax': -0.95,
  'line_items': [
    {
      'quantity': 1,
      'product_identifier': '12-34243-0',
      'description': 'Heavy Widget',
      'unit_price': -15,
      'sales_tax': -0.95
    }
  ]
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.updateRefund({
  transaction_id: '123',
  amount: -17,
  shipping: -2,
  line_items: [
    {
      quantity: 1,
      product_identifier: '12-34243-0',
      description: 'Heavy Widget',
      unit_price: -15,
      sales_tax: -0.95
    }
  ]
}).then(res => {
  res.refund; // Refund object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$refund = $client->updateRefund([
  'transaction_id' => '321',
  'amount' => -17,
  'shipping' => -2,
  'line_items' => [
    [
      'quantity' => 1,
      'product_identifier' => '12-34243-0',
      'description' => 'Heavy Widget',
      'unit_price' => -15,
      'sales_tax' => -0.95
    ]
  ]
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var refund = client.UpdateRefund(new
{
  transaction_id = "321",
  amount = -17,
  shipping = -2,
  line_items = new[] {
    new {
      quantity = 1,
      product_identifier = "12-34243-0",
      description = "Heavy Widget",
      unit_price = -15,
      discount = 0,
      sales_tax = -0.95
    }
  }
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.RefundResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UpdateRefundExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("transaction_id", "321");
            params.put("amount", -17);
            params.put("shipping", -2);

            List<Map> lineItems = new ArrayList();
            Map<String, Object> lineItem = new HashMap<>();
            lineItem.put("quantity", 1);
            lineItem.put("product_identifier", "12-34243-0");
            lineItem.put("description", "Heavy Widget");
            lineItem.put("unit_price", -15);
            lineItem.put("discount", 0);
            lineItem.put("sales_tax", -0.95);
            lineItems.add(lineItem);

            params.put("line_items", lineItems);

            RefundResponse res = client.updateRefund("321", params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.UpdateRefund(taxjar.UpdateRefundParams{
        TransactionID: "321",
        Amount:        -17,
        Shipping:      -2,
        SalesTax:      -0.95,
        LineItems: []taxjar.RefundLineItem{
            {
                Quantity:          1,
                ProductIdentifier: "12-34243-0",
                Description:       "Heavy Widget",
                UnitPrice:         -15,
                SalesTax:          -0.95,
            },
        },
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Refund)
    }
}
$ curl https://api.taxjar.com/v2/transactions/refunds/321 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "321",
    "amount": -17,
    "shipping": -2,
    "sales_tax": -0.95,
    "line_items": [
      {
        "quantity": 1,
        "product_identifier": "12-34234-0",
        "description": "Heavy Widget",
        "unit_price": -15,
        "sales_tax": -0.95
      }
    ]
  }' \
  -X PUT

Response Example

{
  "refund": {
    "transaction_id": "321",
    "user_id": 10649,
    "transaction_date": "2015-05-14T00:00:00Z",
    "transaction_reference_id": "123",
    "provider": "api",
    "to_country": "US",
    "to_zip": "90002",
    "to_state": "CA",
    "to_city": "LOS ANGELES",
    "to_street": "123 Palm Grove Ln",
    "amount": "-17.0",
    "shipping": "-2.0",
    "sales_tax": "-0.95",
    "line_items": [
      {
        "id": "1",
        "quantity": 1,
        "product_identifier": "12-34243-0",
        "description": "Heavy Widget",
        "unit_price": -15,
        "discount": 0,
        "sales_tax": -0.95
      }
    ]
  }
}
#<Taxjar::Refund:0x00000a @attrs={
  :transaction_id => "321",
  :user_id => 11836,
  :transaction_date => "2015-06-14T00:00:00Z",
  :transaction_reference_id => "123",
  :provider => "api",
  :from_country => "US",
  :from_zip => 93107,
  :from_state => "CA",
  :from_city => "SANTA BARBARA",
  :from_street => "1218 State St",
  :to_country => "US",
  :to_zip => 90002,
  :to_state => "CA",
  :to_city => "LOS ANGELES",
  :to_street => "123 Palm Grove Ln",
  :amount => -17.0,
  :shipping => -2.0,
  :sales_tax => -0.95,
  :line_items => [
    {
      :id => "1",
      :quantity => 1,
      :product_identifier => "12-34243-9",
      :product_tax_code => nil,
      :description => "Heavy Widget",
      :unit_price => -15,
      :discount => 0,
      :sales_tax => -0.95
    }
  ]
}>
<TaxJarRefund {
  'from_state': 'CA',
  'line_items': [<TaxJarLineItem {
    'description': 'Heavy Widget',
    'unit_price': -15,
    'discount': 0,
    'product_identifier': '12-34243-9',
    'sales_tax': -0.95,
    'product_tax_code': None,
    'id': 0,
    'quantity': 1
  }>],
  'user_id': 1,
  'to_zip': '90002',
  'from_street': '1218 State St',
  'from_city': 'SANTA BARBARA',
  'from_zip': 93107,
  'to_country': 'US',
  'shipping': -2,
  'from_country': 'US',
  'to_city': 'LOS ANGELES',
  'to_street': '123 Palm Grove Ln',
  'transaction_date': '2016-03-10T00:00:00.000Z',
  'transaction_reference_id': '123',
  'sales_tax': -0.95,
  'amount': -17,
  'transaction_id': '321',
  'to_state': 'CA',
  'provider': 'api'
}>
taxjar.UpdateRefundResponse{
    Refund: taxjar.Refund{
        TransactionID:          "321",
        UserID:                 11836,
        TransactionDate:        "2015-06-14T00:00:00Z",
        TransactionReferenceID: "123",
        Provider:               "api",
        FromCountry:            "US",
        FromZip:                "93107",
        FromState:              "CA",
        FromCity:               "SANTA BARBARA",
        FromStreet:             "1218 State St",
        ToCountry:              "US",
        ToZip:                  "90002",
        ToState:                "CA",
        ToCity:                 "LOS ANGELES",
        ToStreet:               "123 Palm Grove Ln",
        Amount:                 -17.0,
        Shipping:               -2.0,
        SalesTax:               -0.95,
        LineItems: []taxjar.RefundLineItem{
            {
                ID:                "1",
                Quantity:          1,
                ProductIdentifier: "12-34243-9",
                ProductTaxCode:    "",
                Description:       "Heavy Widget",
                UnitPrice:         -15,
                Discount:          0,
                SalesTax:          -0.95,
            },
        },
    },
}

Updates an existing refund transaction created through the API.

Request

PUT https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given transaction.
transaction_reference_id string required Unique identifier of the corresponding order transaction for the refund.
transaction_date datetime optional The date/time the transaction was originally recorded.
from_country string optional Two-letter ISO country code of the country where the order shipped from. View Note
from_zip string optional Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string optional Two-letter ISO state code where the order shipped from.
from_city string optional City where the order shipped from.
from_street string optional Street address where the order shipped from.
to_country string optional Two-letter ISO country code of the country where the refunded order shipped to.
to_zip string optional Postal code where the refunded order shipped to (5-Digit ZIP or ZIP+4).
to_state string optional Two-letter ISO state code where the refunded order shipped to.
to_city string optional City where the refunded order shipped to.
to_street string optional Street address where the refunded order shipped to.
amount float optional Total amount of the refunded order with shipping, excluding sales tax in dollars.
shipping float optional Total amount of shipping for the refunded order in dollars.
sales_tax float optional Total amount of sales tax collected for the refunded order in dollars.
customer_id string optional Unique identifier of the given customer for exemptions.
exemption_type string optional Type of exemption for the order: wholesale, government, marketplace, other, or non_exempt. View Note
line_items[][id] string optional Unique identifier of the given line item.
line_items[][quantity] integer optional Quantity for the item.
line_items[][product_identifier] string optional Product identifier for the item.
line_items[][description] string optional Description of the line item (up to 255 characters).
line_items[][product_tax_code] string optional Product tax code for the item. If omitted, the item will remain fully taxable. View Note
line_items[][unit_price] float optional Unit price for the item in dollars.
line_items[][discount] float optional Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float optional Total sales tax collected (non-unit) for the item in dollars.

Notes

  • Either an address on file or from_ parameters are required to update refund transactions.

  • The transaction_date may be a date ‘2015-05-25’, an ISO UTC date/time ‘2015-05-25T13:05:45’, or an ISO date/time with zone offset ‘2015-05-25T13:05:45-05:00’.

Response

Returns a refund JSON object with details of the updated refund transaction.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given refund transaction.
user_id integer Unique identifier of the user who created the refund transaction.
transaction_date datetime The date/time the transaction was originally recorded.
provider string Source of where the transaction was originally recorded.
exemption_type string Type of exemption for the order: wholesale, government, marketplace, other, non_exempt, or null. View Note
from_country string Two-letter ISO country code of the country where the order shipped from.
from_zip string Postal code where the order shipped from (5-Digit ZIP or ZIP+4).
from_state string Two-letter ISO state code where the order shipped from.
from_city string City where the order shipped from.
from_street string Street address where the order shipped from.
to_country string Two-letter ISO country code of the country where the order shipped to.
to_zip string Postal code where the order shipped to (5-Digit ZIP or ZIP+4).
to_state string Two-letter ISO state code where the order shipped to.
to_city string City where the order shipped to.
to_street string Street address where the order shipped to.
amount float Total amount of the refunded order with shipping, excluding sales tax.
shipping float Total amount of shipping for the refunded order.
sales_tax float Total amount of sales tax collected for the refunded order.
line_items[][id] string Unique identifier of the given line item.
line_items[][quantity] integer Quantity for the item.
line_items[][product_identifier] string Product identifier for the item.
line_items[][description] string Description of the line item (up to 255 characters).
line_items[][product_tax_code] string Product tax code for the item.
line_items[][unit_price] float Unit price for the item in dollars.
line_items[][discount] float Total discount (non-unit) for the item in dollars.
line_items[][sales_tax] float Total sales tax collected (non-unit) for the item in dollars.

delete Delete a refund transaction

Definition

client.delete_refund
client.delete_refund
client.deleteRefund();
$client->deleteRefund();
client.DeleteRefund();
client.deleteRefund();
client.DeleteRefund()
DELETE https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

client.delete_refund('321')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

client.delete_refund('321')
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.deleteRefund('321').then(res => {

});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$client->deleteRefund('321');
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var refund = client.DeleteRefund("321");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.RefundResponse;

public class DeleteOrderExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            OrderResponse res = client.deleteRefund("321");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.DeleteRefund("321")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Refund)
    }
}
$ curl https://api.taxjar.com/v2/transactions/refunds/321 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -X DELETE

Response Example

{
  "refund": {
    "transaction_id": "321",
    "user_id": 10649,
    "transaction_date": null,
    "transaction_reference_id": null,
    "provider": "api",
    "from_country": null,
    "from_zip": null,
    "from_state": null,
    "from_city": null,
    "from_street": null,
    "to_country": null,
    "to_zip": null,
    "to_state": null,
    "to_city": null,
    "to_street": null,
    "amount": null,
    "shipping": null,
    "sales_tax": null,
    "line_items": []
  }
}
#<Taxjar::Refund:0x00000a @attrs={
  :transaction_id => "321",
  :user_id => 11836,
  :transaction_date => nil,
  :transaction_reference_id => nil,
  :provider => "api",
  :from_country => nil,
  :from_zip => nil,
  :from_state => nil,
  :from_city => nil,
  :from_street => nil,
  :to_country => nil,
  :to_zip => nil,
  :to_state => nil,
  :to_city => nil,
  :to_street => nil,
  :amount => nil,
  :shipping => nil,
  :sales_tax => nil,
  :line_items => []
}>
<TaxJarRefund {
  'from_state': None,
  'line_items': [],
  'user_id': 11836,
  'to_zip': None,
  'from_street': None,
  'from_city': None,
  'from_zip': None,
  'to_country': None,
  'shipping': None,
  'from_country': None,
  'to_city': None,
  'to_street': None,
  'transaction_date': None,
  'transaction_reference_id': None,
  'sales_tax': None,
  'amount': None,
  'transaction_id': '321',
  'to_state': None,
  'provider': 'api'
}>
taxjar.DeleteRefundResponse{
    Refund: taxjar.Refund{
        TransactionID:          "321",
        UserID:                 11836,
        TransactionDate:        "",
        TransactionReferenceID: "",
        Provider:               "api",
        FromCountry:            "",
        FromZip:                "",
        FromState:              "",
        FromCity:               "",
        FromStreet:             "",
        ToCountry:              "",
        ToZip:                  "",
        ToState:                "",
        ToCity:                 "",
        ToStreet:               "",
        Amount:                 0,
        Shipping:               0,
        SalesTax:               0,
        LineItems: []taxjar.RefundLineItem{},
    },
}

Deletes an existing refund transaction created through the API.

Request

DELETE https://api.taxjar.com/v2/transactions/refunds/:transaction_id

Parameters

Parameter Type Required Description
transaction_id string required Unique identifier of the given refund transaction.
provider string optional Source of where the transaction was originally recorded. Defaults to “api”.

Response

Returns a refund JSON object with the deleted refund transaction identifiers.

Attributes

Parameter Type Description
transaction_id string Unique identifier of the given refund transaction.
user_id integer Unique identifier of the user who created the refund transaction.
provider string Source of where the transaction was originally recorded.

Customers

Manage your exempt customers (wholesale, government, etc) for sales tax calculations, reporting, and filing in TaxJar. After creating a new customer, pass in the customer_id to our tax and transaction endpoints to fully exempt them from sales tax.

get List customers

Definition

client.list_customers
client.list_customers
client.listCustomers();
$client->listCustomers();
client.ListCustomers();
client.listCustomers();
client.ListCustomers()
GET https://api.taxjar.com/v2/customers

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

customers = client.list_customers
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

customers = client.list_customers()
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$customers = $client->listCustomers();
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.listCustomers().then(res => {
  res.customers; // Array of customers
});
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var customers = client.ListCustomers();
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.CustomersResponse;
import java.util.HashMap;
import java.util.Map;

public class ListCustomersExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            CustomersResponse res = client.listCustomers();
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ListCustomers()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Customers)
    }
}
$ curl https://api.taxjar.com/v2/customers \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

["123", "124", "125"]
['123', '124', '125']
{
  "customers": [
    "123",
    "456"
  ]
}
taxjar.ListCustomersResponse{
  Customers: []string{
    "123",
    "456",
  },
}

Lists existing customers created through the API.

Request

GET https://api.taxjar.com/v2/customers

Response

Returns a customers JSON object with an array of customer IDs created through the API.

get Show a customer

Definition

client.show_customer
client.show_customer
client.showCustomer();
$client->showCustomer();
client.ShowCustomer();
client.showCustomer();
client.ShowCustomer()
GET https://api.taxjar.com/v2/customers/:customer_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

customer = client.show_customer('123')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

customer = client.show_customer('123')
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$customer = $client->showCustomer('123');
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.showCustomer('123').then(res => {
  res.customer;
});
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var customer = client.ShowCustomer("123");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.CustomerResponse;

public class ShowCustomerExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            CustomerResponse res = client.showCustomer("123");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ShowCustomer("123")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Customer)
    }
}
$ curl https://api.taxjar.com/v2/customers/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

#<Taxjar::Customer @attrs={
  :customer_id => "123",
  :exemption_type => "wholesale",
  :exempt_regions => [
    [0] {
      :country => "US",
      :state => "FL"
    },
    [1] {
      :country => "US",
      :state => "PA"
    }
  ],
  :name => "Dunder Mifflin Paper Company",
  :country => "US",
  :state => "PA",
  :zip => "18504",
  :city => "Scranton",
  :street => "1725 Slough Avenue"
}>
<TaxJarCustomer {
  'customer_id': '123',
  'exemption_type': 'wholesale',
  'exempt_regions': [<TaxJarExemptRegion {
    'country': 'US',
    'state': 'FL'
  }>, <TaxJarExemptRegion {
    'country': 'US',
    'state': 'PA'
  }>],
  'name': 'Dunder Mifflin Paper Company',
  'country': 'US',
  'state': 'PA',
  'zip': '18504',
  'city': 'Scranton',
  'street': '1725 Slough Avenue'
}>
{
  "customer": {
    "customer_id": "123",
    "exemption_type": "wholesale",
    "exempt_regions": [
      {
        "country": "US",
        "state": "FL"
      },
      {
        "country": "US",
        "state": "PA"
      }
    ],
    "name": "Dunder Mifflin Paper Company",
    "country": "US",
    "state": "PA",
    "zip": "18504",
    "city": "Scranton",
    "street": "1725 Slough Avenue"
  }
}
taxjar.ShowCustomerResponse{
    Customer: taxjar.Customer{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "FL",
            },
            {
                Country: "US",
                State:   "PA",
            },
        },
        Name:    "Dunder Mifflin Paper Company",
        Country: "US",
        State:   "PA",
        Zip:     "18504",
        City:    "Scranton",
        Street:  "1725 Slough Avenue",
    },
}

Shows an existing customer created through the API.

Request

GET https://api.taxjar.com/v2/customers/:customer_id

Parameters

Parameter Type Required Description
customer_id string required Unique identifier of the given customer.

Response

Returns a customer JSON object with details of a customer created through the API.

Attributes

Parameter Type Description
customer_id string Unique identifier of the given customer.
exemption_type string Type of customer exemption: wholesale, government, other, or non_exempt.
exempt_regions[][country] string Two-letter ISO country code where the customer is exempt.
exempt_regions[][state] string Two-letter ISO state code where the customer is exempt.
name string Name of the customer.
country string Two-letter ISO country code of the customer’s primary address.
state string Two-letter ISO state code of the customer’s primary address.
zip string Postal code of the customer’s primary address.
city string City of the customer’s primary address.
street string Street address of the customer’s primary address.

post Create a customer

Definition

client.create_customer
client.create_customer
client.createCustomer();
$client->createCustomer();
client.CreateCustomer();
client.createCustomer();
client.CreateCustomer()
POST https://api.taxjar.com/v2/customers

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

customer = client.create_customer({
  :customer_id => '123',
  :exemption_type => 'wholesale',
  :name => 'Dunder Mifflin Paper Company',
  :exempt_regions => [
    {
      :country => 'US',
      :state => 'FL'
    },
    {
      :country => 'US',
      :state => 'PA'
    }
  ],
  :country => 'US',
  :state => 'PA',
  :zip => '18504',
  :city => 'Scranton',
  :street => '1725 Slough Avenue'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

customer = client.create_customer({
  'customer_id': '123',
  'exemption_type': 'wholesale',
  'name': 'Dunder Mifflin Paper Company',
  'exempt_regions': [
    {
      'country': 'US',
      'state': 'FL'
    },
    {
      'country': 'US',
      'state': 'PA'
    }
  ],
  'country': 'US',
  'state': 'PA',
  'zip': '18504',
  'city': 'Scranton',
  'street': '1725 Slough Avenue'
})
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$customer = $client->createCustomer([
  'customer_id' => '123',
  'exemption_type' => 'wholesale',
  'name' => 'Dunder Mifflin Paper Company',
  'exempt_regions' => [
    [
      'country' => 'US',
      'state' => 'FL'
    ],
    [
      'country' => 'US',
      'state' => 'PA'
    ]
  ],
  'country' => 'US',
  'state' => 'PA',
  'zip' => '18504',
  'city' => 'Scranton',
  'street' => '1725 Slough Avenue'
]);
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.createCustomer({
  customer_id: '123',
  exemption_type: 'wholesale',
  name: 'Dunder Mifflin Paper Company',
  exempt_regions: [
    {
      country: 'US',
      state: 'FL'
    },
    {
      country: 'US',
      state: 'PA'
    }
  ],
  country: 'US',
  state: 'PA',
  zip: '18504',
  city: 'Scranton',
  street: '1725 Slough Avenue'
}).then(res => {
  res.customer;
});
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var customer = client.CreateCustomer(new {
  customer_id = "123",
  exemption_type = "wholesale",
  name = "Dunder Mifflin Paper Company",
  exempt_regions = new[] {
    new {
      country = "US",
      state = "FL"
    },
    new {
      country = "US",
      state = "PA"
    }
  },
  country = "US",
  state = "PA",
  zip = "18504",
  city = "Scranton",
  street = "1725 Slough Avenue"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.customers.CustomerResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CreateCustomerExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("customer_id", "123");
            params.put("exemption_type", "wholesale");
            params.put("name", "Dunder Mifflin Paper Company");
            params.put("country", "US");
            params.put("state", "PA");
            params.put("zip", "18504");
            params.put("city", "Scranton");
            params.put("street", "1725 Slough Avenue");

            List<Map> exemptRegions = new ArrayList();

            Map<String, String> exemptRegion = new HashMap<>();
            exemptRegion.put("country", "US");
            exemptRegion.put("state", "FL");

            Map<String, String> exemptRegion2 = new HashMap<>();
            exemptRegion.put("country", "US");
            exemptRegion.put("state", "PA");

            exemptRegions.add(exemptRegion);
            exemptRegions.add(exemptRegion2);

            params.put("exempt_regions", exemptRegions);

            CustomerResponse res = client.createCustomer(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.CreateCustomer(taxjar.CreateCustomerParams{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        Name:          "Dunder Mifflin Paper Company",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "FL",
            },
            {
                Country: "US",
                State:   "PA",
            },
        },
        Country: "US",
        State:   "PA",
        Zip:     "18504",
        City:    "Scranton",
        Street:  "1725 Slough Avenue",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Customer)
    }
}
$ curl https://api.taxjar.com/v2/customers \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "123",
    "exemption_type": "wholesale",
    "name": "Dunder Mifflin Paper Company",
    "exempt_regions": [
      {
        "country": "US",
        "state": "FL"
      },
      {
        "country": "US",
        "state": "PA"
      }
    ],
    "country": "US",
    "state": "PA",
    "zip": "18504",
    "city": "Scranton",
    "street": "1725 Slough Avenue"
  }'

Response Example

#<Taxjar::Customer @attrs={
  :customer_id => "123",
  :exemption_type => "wholesale",
  :exempt_regions => [
    [0] {
      :country => "US",
      :state => "FL"
    },
    [1] {
      :country => "US",
      :state => "PA"
    }
  ],
  :name => "Dunder Mifflin Paper Company",
  :country => "US",
  :state => "PA",
  :zip => "18504",
  :city => "Scranton",
  :street => "1725 Slough Avenue"
}>
<TaxJarCustomer {
  'customer_id': '123',
  'exemption_type': 'wholesale',
  'exempt_regions': [<TaxJarExemptRegion {
    'country': 'US',
    'state': 'FL'
  }>, <TaxJarExemptRegion {
    'country': 'US',
    'state': 'PA'
  }>],
  'name': 'Dunder Mifflin Paper Company',
  'country': 'US',
  'state': 'PA',
  'zip': '18504',
  'city': 'Scranton',
  'street': '1725 Slough Avenue'
}>
{
  "customer": {
    "customer_id": "123",
    "exemption_type": "wholesale",
    "exempt_regions": [
      {
        "country": "US",
        "state": "FL"
      },
      {
        "country": "US",
        "state": "PA"
      }
    ],
    "name": "Dunder Mifflin Paper Company",
    "country": "US",
    "state": "PA",
    "zip": "18504",
    "city": "Scranton",
    "street": "1725 Slough Avenue"
  }
}
taxjar.CreateCustomerResponse{
    Customer: taxjar.Customer{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        Name:          "Dunder Mifflin Paper Company",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "FL",
            },
            {
                Country: "US",
                State:   "PA",
            },
        },
        Country: "US",
        State:   "PA",
        Zip:     "18504",
        City:    "Scranton",
        Street:  "1725 Slough Avenue",
    },
}

Creates a new customer.

Request

POST https://api.taxjar.com/v2/customers

Parameters

Parameter Type Required Description
customer_id string required Unique identifier of the given customer.
exemption_type string required Type of customer exemption: wholesale, government, other, or non_exempt.
name string required Name of the customer.
exempt_regions[][country] string optional Two-letter ISO country code where the customer is exempt. View Note
exempt_regions[][state] string optional Two-letter ISO state code where the customer is exempt.
country string optional Two-letter ISO country code of the customer’s primary address.
state string optional Two-letter ISO state code of the customer’s primary address.
zip string optional Postal code of the customer’s primary address.
city string optional City of the customer’s primary address.
street string optional Street address of the customer’s primary address.

Response

Returns a customer JSON object with details of the new customer.

Attributes

Parameter Type Description
customer_id string Unique identifier of the given customer.
exemption_type string Type of customer exemption: wholesale, government, other, or non_exempt.
exempt_regions[][country] string Two-letter ISO country code where the customer is exempt.
exempt_regions[][state] string Two-letter ISO state code where the customer is exempt.
name string Name of the customer.
country string Two-letter ISO country code of the customer’s primary address.
state string Two-letter ISO state code of the customer’s primary address.
zip string Postal code of the customer’s primary address.
city string City of the customer’s primary address.
street string Street address of the customer’s primary address.

put Update a customer

Definition

client.update_customer
client.update_customer
client.updateCustomer();
$client->updateCustomer();
client.UpdateCustomer();
client.updateCustomer();
client.UpdateCustomer()
PUT https://api.taxjar.com/v2/customers/:customer_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

customer = client.update_customer({
  :customer_id => '123',
  :exemption_type => 'wholesale',
  :name => 'Sterling Cooper',
  :exempt_regions => [
    {
      :country => 'US',
      :state => 'NY'
    }
  ],
  :country => 'US',
  :state => 'NY',
  :zip => '10010',
  :city => 'New York',
  :street => '405 Madison Ave'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

customer = client.update_customer('123', {
  'exemption_type': 'wholesale',
  'name': 'Sterling Cooper',
  'exempt_regions': [
    {
      'country': 'US',
      'state': 'NY'
    }
  ],
  'country': 'US',
  'state': 'NY',
  'zip': '10010',
  'city': 'New York',
  'street': '405 Madison Ave'
})
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$customer = $client->updateCustomer([
  'customer_id' => '123',
  'exemption_type' => 'wholesale',
  'name' => 'Sterling Cooper',
  'exempt_regions' => [
    [
      'country' => 'US',
      'state' => 'NY'
    ]
  ],
  'country' => 'US',
  'state' => 'NY',
  'zip' => '10010',
  'city' => 'New York',
  'street' => '405 Madison Ave'
]);
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.updateCustomer({
  customer_id: '123',
  exemption_type: 'wholesale',
  name: 'Sterling Cooper',
  exempt_regions: [
    {
      country: 'US',
      state: 'NY'
    }
  ],
  country: 'US',
  state: 'NY',
  zip: '10010',
  city: 'New York',
  street: '405 Madison Ave'
}).then(res => {
  res.customer;
});
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var customer = client.UpdateCustomer(new {
  customer_id = "123",
  exemption_type = "wholesale",
  name = "Sterling Cooper",
  exempt_regions = new[] {
    new {
      country = "US",
      state = "NY"
    }
  },
  country = "US",
  state = "NY",
  zip = "10010",
  city = "New York",
  street = "405 Madison Ave"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.customers.CustomerResponse;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UpdateCustomerExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("customer_id", "123");
            params.put("exemption_type", "wholesale");
            params.put("name", "Sterling Cooper");
            params.put("country", "US");
            params.put("state", "NY");
            params.put("zip", "10010");
            params.put("city", "New York");
            params.put("street", "405 Madison Ave");

            List<Map> exemptRegions = new ArrayList();

            Map<String, String> exemptRegion = new HashMap<>();
            exemptRegion.put("country", "US");
            exemptRegion.put("state", "NY");

            exemptRegions.add(exemptRegion);

            params.put("exempt_regions", exemptRegions);

            CustomerResponse res = client.updateCustomer("123", params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.UpdateCustomer(taxjar.UpdateCustomerParams{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        Name:          "Sterling Cooper",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "NY",
            },
        },
        Country: "US",
        State:   "NY",
        Zip:     "10010",
        City:    "New York",
        Street:  "405 Madison Ave",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Customer)
    }
}
$ curl https://api.taxjar.com/v2/customers/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "123",
    "exemption_type": "wholesale",
    "name": "Sterling Cooper",
    "exempt_regions": [
      {
        "country": "US",
        "state": "NY"
      }
    ],
    "country": "US",
    "state": "NY",
    "zip": "10010",
    "city": "New York",
    "street": "405 Madison Ave"
  }' \
  -X PUT

Response Example

#<Taxjar::Customer @attrs={
  :customer_id => "123",
  :exemption_type => "wholesale",
  :exempt_regions => [
    [0] {
      :country => "US",
      :state => "NY"
    }
  ],
  :name => "Sterling Cooper",
  :country => "US",
  :state => "NY",
  :zip => "10010",
  :city => "New York",
  :street => "405 Madison Ave"
}>
<TaxJarCustomer {
  'customer_id': '123',
  'exemption_type': 'wholesale',
  'exempt_regions': [<TaxJarExemptRegion {
    'country': 'US',
    'state': 'NY'
  }>],
  'name': 'Sterling Cooper',
  'country': 'US',
  'state': 'NY',
  'zip': '10010',
  'city': 'New York',
  'street': '405 Madison Ave'
}>
{
  "customer": {
    "customer_id": "123",
    "exemption_type": "wholesale",
    "exempt_regions": [
      {
        "country": "US",
        "state": "NY"
      }
    ],
    "name": "Sterling Cooper",
    "country": "US",
    "state": "NY",
    "zip": "10010",
    "city": "New York",
    "street": "405 Madison Ave"
  }
}
taxjar.UpdateCustomerResponse{
    Customer: taxjar.Customer{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        Name:          "Sterling Cooper",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "NY",
            },
        },
        Country: "US",
        State:   "NY",
        Zip:     "10010",
        City:    "New York",
        Street:  "405 Madison Ave",
    },
}

Updates an existing customer created through the API.

Request

PUT https://api.taxjar.com/v2/customers/:customer_id

Parameters

Parameter Type Required Description
customer_id string required Unique identifier of the given customer.
exemption_type string required Type of customer exemption: wholesale, government, other, or non_exempt.
name string required Name of the customer.
exempt_regions[][country] string optional Two-letter ISO country code where the customer is exempt. View Note
exempt_regions[][state] string optional Two-letter ISO state code where the customer is exempt.
country string optional Two-letter ISO country code of the customer’s primary address.
state string optional Two-letter ISO state code of the customer’s primary address.
zip string optional Postal code of the customer’s primary address.
city string optional City of the customer’s primary address.
street string optional Street address of the customer’s primary address.

Response

Returns a customer JSON object with details of the updated customer.

Attributes

Parameter Type Description
customer_id string Unique identifier of the given customer.
exemption_type string Type of customer exemption: wholesale, government, other, or non_exempt.
exempt_regions[][country] string Two-letter ISO country code where the customer is exempt.
exempt_regions[][state] string Two-letter ISO state code where the customer is exempt.
name string Name of the customer.
country string Two-letter ISO country code of the customer’s primary address.
state string Two-letter ISO state code of the customer’s primary address.
zip string Postal code of the customer’s primary address.
city string City of the customer’s primary address.
street string Street address of the customer’s primary address.

delete Delete a customer

Definition

client.delete_customer
client.delete_customer
client.deleteCustomer();
$client->deleteCustomer();
client.DeleteCustomer();
client.deleteCustomer();
client.DeleteCustomer()
DELETE https://api.taxjar.com/v2/customers/:customer_id

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

customer = client.delete_customer('123')
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

customer = client.delete_customer('123')
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$customer = $client->deleteCustomer('123');
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.deleteCustomer('123').then(res => {
  res.customer;
});
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var customer = client.DeleteCustomer("123");
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.customers.CustomerResponse;

public class DeleteCustomerExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            CustomerResponse res = client.deleteCustomer("123");
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.DeleteCustomer("123")
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Customer)
    }
}
$ curl https://api.taxjar.com/v2/customers/123 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -X DELETE

Response Example

#<Taxjar::Customer @attrs={
  :customer_id => "123",
  :exemption_type => "wholesale",
  :exempt_regions => [
    [0] {
      :country => "US",
      :state => "FL"
    },
    [1] {
      :country => "US",
      :state => "PA"
    }
  ],
  :name => "Dunder Mifflin Paper Company",
  :country => "US",
  :state => "PA",
  :zip => "18504",
  :city => "Scranton",
  :street => "1725 Slough Avenue"
}>
<TaxJarCustomer {
  'customer_id': '123',
  'exemption_type': 'wholesale',
  'exempt_regions': [<TaxJarExemptRegion {
    'country': 'US',
    'state': 'FL'
  }>, <TaxJarExemptRegion {
    'country': 'US',
    'state': 'PA'
  }>],
  'name': 'Dunder Mifflin Paper Company',
  'country': 'US',
  'state': 'PA',
  'zip': '18504',
  'city': 'Scranton',
  'street': '1725 Slough Avenue'
}>
{
  "customer": {
    "customer_id": "123",
    "exemption_type": "wholesale",
    "exempt_regions": [
      {
        "country": "US",
        "state": "FL"
      },
      {
        "country": "US",
        "state": "PA"
      }
    ],
    "name": "Dunder Mifflin Paper Company",
    "country": "US",
    "state": "PA",
    "zip": "18504",
    "city": "Scranton",
    "street": "1725 Slough Avenue"
  }
}
taxjar.DeleteCustomerResponse{
    Customer: taxjar.Customer{
        CustomerID:    "123",
        ExemptionType: "wholesale",
        Name:          "Dunder Mifflin Paper Company",
        ExemptRegions: []taxjar.ExemptRegion{
            {
                Country: "US",
                State:   "FL",
            },
            {
                Country: "US",
                State:   "PA",
            },
        },
        Country: "US",
        State:   "PA",
        Zip:     "18504",
        City:    "Scranton",
        Street:  "1725 Slough Avenue",
    },
}

Deletes an existing customer created through the API.

Request

DELETE https://api.taxjar.com/v2/customers/:customer_id

Parameters

Parameter Type Required Description
customer_id string required Unique identifier of the given customer.

Response

Returns a customer JSON object with the deleted customer identifiers.

Attributes

Parameter Type Description
customer_id string Unique identifier of the given customer.

Rates

get Show tax rates for a location

Definition

client.rates_for_location
client.rates_for_location
client.ratesForLocation();
$client->ratesForLocation();
client.RatesForLocation();
client.ratesForLocation();
client.RatesForLocation()
GET https://api.taxjar.com/v2/rates/:zip

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

# United States (ZIP+4)
rates = client.rates_for_location('90404-3370')

# United States (ZIP w/ Optional Params)
rates = client.rates_for_location('90404', {
  :city => 'Santa Monica',
  :state => 'CA',
  :country => 'US'
})

# United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
rates = client.rates_for_location('05495-2086', {
  :street => '312 Hurricane Lane',
  :city => 'Williston',
  :state => 'VT',
  :country => 'US'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

# United States (ZIP+4)
rates = client.rates_for_location('90404-3370')

# United States (ZIP w/ Optional Params)
rates = client.rates_for_location('90404', {
  'city': 'Santa Monica',
  'state': 'CA',
  'country': 'US'
})

# United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
rates = client.rates_for_location('05495-2086', {
  'street': '312 Hurricane Lane',
  'city': 'Williston',
  'state': 'VT',
  'country': 'US'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

// United States (ZIP+4)
client.ratesForLocation('90404-3370').then(res => {
  res.rate; // Rate object
});

// United States (ZIP w/ Optional Params)
client.ratesForLocation('90404', {
  city: 'Santa Monica',
  state: 'CA',
  country: 'US'
}).then(res => {
  res.rate; // Rate object
});

// United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
client.ratesForLocation('05495-2086', {
  street: '312 Hurricane Lane',
  city: 'Williston',
  state: 'VT',
  country: 'US'
}).then(res => {
  res.rate; // Rate object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

// United States (ZIP+4)
$rates = $client->ratesForLocation('90404-3370');

// United States (ZIP w/ Optional Params)
$rates = $client->ratesForLocation('90404', [
  'city' => 'Santa Monica',
  'state' => 'CA',
  'country' => 'US'
]);

// United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
$rates = $client->ratesForLocation('05495-2086', [
  'street' => '312 Hurricane Lane',
  'city' => 'Williston',
  'state' => 'VT',
  'country' => 'US'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

// United States (ZIP+4)
var rates = client.RatesForLocation("90404-3370");

// United States (ZIP w/ Optional Params)
var rates = client.RatesForLocation("90404", new {
  city = "Santa Monica",
  state = "CA",
  country = "US"
});

// United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
var rates = client.RatesForLocation("05495-2086", new {
  street = "312 Hurricane Lane",
  city = "Williston",
  state = "VT",
  country = "US"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.rates.RateResponse;
import java.util.HashMap;
import java.util.Map;

public class RatesExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            RateResponse res = client.ratesForLocation("90404-3370");

            Map<String, String> params = new HashMap<>();
            params.put("city", "Santa Monica");
            params.put("state", "CA");
            params.put("country", "US");
            RateResponse res = client.ratesForLocation("90404", params);

            Map<String, String> params = new HashMap<>();
            params.put("street", "312 Hurricane Lane");
            params.put("city", "Williston");
            params.put("state", "VT");
            params.put("country", "US");
            RateResponse res = client.ratesForLocation("05495-2086", params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    // United States (ZIP+4)
    res, err := client.RatesForLocation("90404-3370")

    // United States (ZIP w/ Optional Params)
    res, err := client.RatesForLocation("90404", taxjar.RatesForLocationParams{
        City:    "Santa Monica",
        State:   "CA",
        Country: "US",
    })

    // United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
    res, err := client.RatesForLocation("05495-2086", taxjar.RatesForLocationParams{
        Street:  "312 Hurricane Lane",
        City:    "Williston",
        State:   "VT",
        Country: "US",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Rate)
    }
}
# United States (ZIP+4)
$ curl https://api.taxjar.com/v2/rates/90404-3370 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

# United States (ZIP w/ Optional Params)
$ curl -G https://api.taxjar.com/v2/rates/90404 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -d city="Santa%20Monica" \
  -d state="CA" \
  -d country="US"

# United States (ZIP+4 w/ Street Address for Rooftop Accuracy)
$ curl -G https://api.taxjar.com/v2/rates/05495-2086 \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -d street="312 Hurricane Lane" \
  -d city="Williston" \
  -d state="VT" \
  -d country="US"

Response Example

{
  "rate": {
    "zip": "90404",
    "state": "CA",
    "state_rate": "0.0625",
    "county": "LOS ANGELES",
    "county_rate": "0.01",
    "city": "SANTA MONICA",
    "city_rate": "0.0",
    "combined_district_rate": "0.025",
    "combined_rate": "0.0975",
    "freight_taxable": false
  }
}

{
  "rate": {
    "zip": "05495-2086",
    "country": "US",
    "country_rate": "0.0",
    "state": "VT",
    "state_rate": "0.06",
    "county": "CHITTENDEN",
    "county_rate": "0.0",
    "city": "WILLISTON",
    "city_rate": "0.0",
    "combined_district_rate": "0.01",
    "combined_rate": "0.07",
    "freight_taxable": true
  }
}
#<Taxjar::Rate:0x00000a @attrs={
  :zip => "90404",
  :state => "CA",
  :state_rate => 0.065,
  :county => "LOS ANGELES",
  :county_rate => 0.01,
  :city => "SANTA MONICA",
  :city_rate => 0.005,
  :combined_district_rate => 0.015,
  :combined_rate => 0.095,
  :freight_taxable => false
}>

#<Taxjar::Rate:0x00000a @attrs={
  :zip => "05495-2086",
  :country => "US",
  :country_rate => 0,
  :state => "VT",
  :state_rate => 0.06,
  :county => "CHITTENDEN",
  :county_rate => 0,
  :city => "WILLISTON",
  :city_rate => 0,
  :combined_district_rate => 0.01,
  :combined_rate => 0.07,
  :freight_taxable => true
}>
<TaxJarRate {
  'city': 'SANTA MONICA',
  'zip': '90404',
  'combined_district_rate': 0.025,
  'state_rate': 0.0625,
  'city_rate': 0,
  'county': 'LOS ANGELES',
  'state': 'CA',
  'combined_rate': 0.0975,
  'county_rate': 0.01,
  'freight_taxable': False
}>

<TaxJarRate {
  'city': 'WILLISTON',
  'zip': '05495-2086',
  'combined_district_rate': 0.01,
  'state_rate': 0.06,
  'city_rate': 0,
  'country_rate': 0,
  'county': 'CHITTENDEN',
  'state': 'VT',
  'country': 'US',
  'combined_rate': 0.07,
  'county_rate': 0,
  'freight_taxable': True
}>
taxjar.RatesForLocationResponse{
    Rate: taxjar.Rate{
        Zip:                  "90404",
        State:                "CA",
        StateRate:            0.065,
        County:               "LOS ANGELES",
        CountyRate:           0.01,
        City:                 "SANTA MONICA",
        CityRate:             0.005,
        CombinedDistrictRate: 0.015,
        CombinedRate:         0.095,
        FreightTaxable:       false,
    },
}

taxjar.RatesForLocationResponse{
    Rate: taxjar.Rate{
        Zip:                  "05495-2086",
        Country:              "US",
        CountryRate:          0,
        State:                "VT",
        StateRate:            0.06,
        County:               "CHITTENDEN",
        CountyRate:           0,
        City:                 "WILLISTON",
        CityRate:             0,
        CombinedDistrictRate: 0.01,
        CombinedRate:         0.07,
        FreightTaxable:       true,
    },
}

Shows the sales tax rates for a given location.

Please note this endpoint only returns the full combined rate for a given location. It does not support nexus determination, sourcing based on a ship from and ship to address, shipping taxability, product exemptions, customer exemptions, or sales tax holidays. We recommend using our taxes endpoint to accurately calculate sales tax for an order.

Request

GET https://api.taxjar.com/v2/rates/:zip

Parameters

Parameter Type Required Description
country string optional Two-letter ISO country code for given location.
zip string required Postal code for given location (5-Digit ZIP or ZIP+4).
state string optional Two-letter ISO state code for given location.
city string optional City for given location.
street string optional Street address for given location. View Note

Response

Returns a rate JSON object with rates for a given location broken down by state, county, city, and district.

  United States Attributes

Parameter Type Description
zip string Postal code for given location.
country string Country for given location if SST state. View Note
country_rate float Country sales tax rate for given location if SST state. View Note
state string Postal abbreviated state name for given location.
state_rate float State sales tax rate for given location.
county string County name for given location.
county_rate float County sales tax rate for given location.
city string City name for given location.
city_rate float City sales tax rate for given location.
combined_district_rate float Aggregate rate for all city and county sales tax districts effective at the location.
combined_rate float Overall sales tax rate which includes state, county, city and district tax. This rate should be used to determine how much sales tax to collect for an order.
freight_taxable bool Freight taxability for given location.

Nexus

get List nexus regions

Definition

client.nexus_regions
client.nexus_regions
client.nexusRegions();
$client->nexusRegions();
client.NexusRegions();
client.nexusRegions();
client.NexusRegions()
GET https://api.taxjar.com/v2/nexus/regions

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

nexus_regions = client.nexus_regions
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

nexus_regions = client.nexus_regions()
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.nexusRegions().then(res => {
  res.regions; // Array of nexus regions
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$nexus_regions = $client->nexusRegions();
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var nexusRegions = client.NexusRegions();
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.nexus.RegionResponse;

public class NexusRegionsExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            RegionResponse res = client.nexusRegions();
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.NexusRegions()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Regions)
    }
}
$ curl https://api.taxjar.com/v2/nexus/regions \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example

{
  "regions": [
    {
      "country_code": "US",
      "country": "United States",
      "region_code": "CA",
      "region": "California"
    },
    {
      "country_code": "US",
      "country": "United States",
      "region_code": "NY",
      "region": "New York"
    },
    {
      "country_code": "US",
      "country": "United States",
      "region_code": "WA",
      "region": "Washington"
    }
  ]
}
[
  #<Taxjar::NexusRegion:0x00000a @attrs={
    :country_code => "US",
    :country => "United States",
    :region_code => "CA",
    :region => "California"
  }>,
  #<Taxjar::NexusRegion:0x00000a @attrs={
    :country_code => "US",
    :country => "United States",
    :region_code => "NY",
    :region => "New York"
  }>,
  #<Taxjar::NexusRegion:0x00000a @attrs={
    :country_code => "US",
    :country => "United States",
    :region_code => "WA",
    :region => "Washington"
  }>
]
[
  <TaxJarRegion {
    'country_code': 'US',
    'country': 'United States',
    'region_code': 'CA',
    'region': 'California'
  }>,
  <TaxJarRegion {
    'country_code': 'US',
    'country': 'United States',
    'region_code': 'NY',
    'region': 'New York'
  }>,
  <TaxJarRegion {
    'country_code': 'US',
    'country': 'United States',
    'region_code': 'WA',
    'region': 'Washington'
  }>
]
taxjar.NexusRegionsResponse{
    Regions: []taxjar.NexusRegion{
        {
            CountryCode: "US",
            Country:     "United States",
            RegionCode:  "CA",
            Region:      "California",
        },
        {
            CountryCode: "US",
            Country:     "United States",
            RegionCode:  "NY",
            Region:      "New York",
        },
        {
            CountryCode: "US",
            Country:     "United States",
            RegionCode:  "WA",
            Region:      "Washington",
        },
    },
}

Lists existing nexus locations for an existing TaxJar account.

Request

GET https://api.taxjar.com/v2/nexus/regions

Response

Returns a regions JSON object with an array of nexus regions sorted alphabetically.

Attributes

Parameter Type Description
country_code string Two-letter ISO country code for nexus region.
country string Country name for nexus region.
region_code string Two-letter ISO region code for nexus region.
region string Region name for nexus region.

Validations

post Validate an address

Definition

client.validate_address
client.validate_address
client.validateAddress();
$client->validateAddress();
client.ValidateAddress();
client.validateAddress();
client.ValidateAddress()
POST https://api.taxjar.com/v2/addresses/validate

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

addresses = client.validate_address({
  :country => 'US',
  :state => 'AZ',
  :zip => '85297',
  :city => 'Gilbert',
  :street => '3301 South Greenfield Rd'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

addresses = client.validate_address({
  'country': 'US',
  'state': 'AZ',
  'zip': '85297',
  'city': 'Gilbert',
  'street': '3301 South Greenfield Rd'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.validateAddress({
  country: 'US',
  state: 'AZ',
  zip: '85297',
  city: 'Gilbert',
  street: '3301 South Greenfield Rd'
}).then(res => {
  res.addresses; // Addresses object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$addresses = $client->validateAddress([
  'country' => 'US',
  'state' => 'AZ',
  'zip' => '85297',
  'city' => 'Gilbert',
  'street' => '3301 South Greenfield Rd'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var addresses = client.ValidateAddress(new {
  country = "US",
  state = "AZ",
  zip = "85297",
  city = "Gilbert",
  street = "3301 South Greenfield Rd"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.validations.AddressResponse;
import java.util.HashMap;
import java.util.Map;

public class ValidateAddressExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("country", "US");
            params.put("state", "AZ");
            params.put("zip", "85297");
            params.put("city", "Gilbert");
            params.put("street", "3301 South Greenfield Rd");

            AddressResponse res = client.validateAddress(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ValidateAddress(taxjar.ValidateAddressParams{
        Country: "US",
        State:   "AZ",
        Zip:     "85297",
        City:    "Gilbert",
        Street:  "3301 South Greenfield Rd",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Addresses)
    }
}
$ curl https://api.taxjar.com/v2/addresses/validate \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "US",
    "state": "AZ",
    "zip": "85297",
    "city": "Gilbert",
    "street": "3301 South Greenfield Rd"
  }'

Request Scenario: Multiple Address Matches

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

addresses = client.validate_address({
  :state => 'AZ',
  :city => 'Phoenix',
  :street => '1109 9th'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

addresses = client.validate_address({
  'state': 'AZ',
  'city': 'Phoenix',
  'street': '1109 9th'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.validateAddress({
  state: 'AZ',
  city: 'Phoenix',
  street: '1109 9th'
}).then(res => {
  res.addresses; // Addresses object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$addresses = $client->validateAddress([
  'state' => 'AZ',
  'city' => 'Phoenix',
  'street' => '1109 9th'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var addresses = client.ValidateAddress(new {
  state = "AZ",
  city = "Phoenix",
  street = "1109 9th"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.validations.AddressResponse;
import java.util.HashMap;
import java.util.Map;

public class ValidateAddressExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("state", "AZ");
            params.put("city", "Phoenix");
            params.put("street", "1109 9th");

            AddressResponse res = client.validateAddress(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ValidateAddress(taxjar.ValidateAddressParams{
        State:  "AZ",
        City:   "Phoenix",
        Street: "1109 9th",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Addresses)
    }
}
$ curl https://api.taxjar.com/v2/addresses/validate \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "AZ",
    "city": "Phoenix",
    "street": "1109 9th"
  }'

Request Scenario: Zip-Only Address Validation

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

addresses = client.validate_address({
  :zip => '98122'
})
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

addresses = client.validate_address({
  'zip': '98122'
})
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.validateAddress({
  zip: '98122'
}).then(res => {
  res.addresses; // Addresses object
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$addresses = $client->validateAddress([
  'zip' => '98122'
]);
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var addresses = client.ValidateAddress(new {
  zip = "98122"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.validations.AddressResponse;
import java.util.HashMap;
import java.util.Map;

public class ValidateAddressExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("zip", "98122");

            AddressResponse res = client.validateAddress(params);
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.ValidateAddress(taxjar.ValidateAddressParams{
        Zip: "98122",
    })
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.Addresses)
    }
}
$ curl https://api.taxjar.com/v2/addresses/validate \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214" \
  -H "Content-Type: application/json" \
  -d '{
    "zip": "98122"
  }'

Response Example

{
  "addresses": [
    {
      "zip": "85297-2176",
      "street": "3301 S Greenfield Rd",
      "state": "AZ",
      "country": "US",
      "city": "Gilbert"
    }
  ]
}
[
  #<Taxjar::Address:0x00000a @attrs={
    :zip => "85297-2176",
    :street => "3301 S Greenfield Rd",
    :state => "AZ",
    :country => "US",
    :city => "Gilbert"
  }>
]
[
  <TaxJarAddress {
    'zip': '85297-2176',
    'street': '3301 S Greenfield Rd',
    'state': 'AZ',
    'country': 'US',
    'city': 'Gilbert'
  }>
]
taxjar.ValidateAddressResponse{
    Addresses: []taxjar.Address{
        {
            Zip:     "85297-2176",
            Street:  "3301 S Greenfield Rd",
            State:   "AZ",
            Country: "US",
            City:    "Gilbert",
        },
    },
}

Response Scenario: Multiple Address Matches

{
  "addresses": [
    {
      "zip": "85007-3646",
      "street": "1109 S 9th Ave",
      "state": "AZ",
      "country": "US",
      "city": "Phoenix"
    },
    {
      "zip": "85006-2734",
      "street": "1109 N 9th St",
      "state": "AZ",
      "country": "US",
      "city": "Phoenix"
    }
  ]
}
[
  #<Taxjar::Address:0x00000a @attrs={
    :zip => "85007-3646",
    :street => "1109 S 9th Ave",
    :state => "AZ",
    :country => "US",
    :city => "Phoenix"
  }>,
  #<Taxjar::Address:0x00000a @attrs={
    :zip => "85006-2734",
    :street => "1109 N 9th St",
    :state => "AZ",
    :country => "US",
    :city => "Phoenix"
  }>
]
[
  <TaxJarAddress {
    'zip': '85007-3646',
    'street': '1109 S 9th Ave',
    'state': 'AZ',
    'country': 'US',
    'city': 'Phoenix'
  }>,
  <TaxJarAddress {
    'zip': '85006-2734',
    'street': '1109 N 9th St',
    'state': 'AZ',
    'country': 'US',
    'city': 'Phoenix'
  }>
]
taxjar.ValidateAddressResponse{
    Addresses: []taxjar.Address{
        {
            Zip:     "85007-3646",
            Street:  "1109 S 9th Ave",
            State:   "AZ",
            Country: "US",
            City:    "Phoenix",
        },
        {
            Zip:     "85006-2734",
            Street:  "1109 N 9th St",
            State:   "AZ",
            Country: "US",
            City:    "Phoenix",
        },
    },
}

Response Scenario: Zip-Only Address Validation

{
  "addresses": [
    {
      "zip": "98122",
      "state": "WA",
      "country": "US",
      "city": "Seattle"
    }
  ]
}
[
  #<Taxjar::Address:0x00000a @attrs={
    :zip => "98122",
    :state => "WA",
    :country => "US",
    :city => "Seattle"
  }>
]
[
  <TaxJarAddress {
    'zip': '98122',
    'state': 'WA',
    'country': 'US',
    'city': 'Seattle'
  }>
]
taxjar.ValidateAddressResponse{
    Addresses: []taxjar.Address{
        {
            Zip:     "98122",
            State:   "WA",
            Country: "US",
            City:    "Seattle",
        },
    },
}

Validates a customer address and returns back a collection of address matches. Address validation requires a TaxJar Professional or higher subscription.

Request

POST https://api.taxjar.com/v2/addresses/validate

Parameters

Parameter Type Required Description
country string optional Two-letter ISO country code of the customer’s address. At this time only US addresses can be validated.
state string conditional Two-letter ISO state code of the customer’s address.
zip string conditional Postal code of the customer’s address (5-Digit ZIP or ZIP+4).
city string conditional City of the customer’s address.
street string conditional Street address of the customer’s address or the entire address as “freeform” input.

Response

Returns an addresses JSON object with an array of address matches. If no addresses are found, a 404 response is returned.

Full Address Attributes

Parameter Type Description
country string Two-letter ISO country code of the customer’s address.
state string Two-letter ISO state code of the customer’s address.
zip string Postal code of the customer’s address (ZIP+4). View Note
city string City of the customer’s address.
street string Street address of the customer’s address.

Zip-only Address Attributes

Parameter Type Description
country string Two-letter ISO country code of the customer’s address.
state string Two-letter ISO state code of the customer’s address.
zip string Postal code of the customer’s address. View Note
city string City of the customer’s address.

Summarized Rates

get Summarize tax rates for all regions

Definition

client.summary_rates
client.summary_rates
client.summaryRates();
$client->summaryRates();
client.SummaryRates();
client.summaryRates();
client.SummaryRates()
GET https://api.taxjar.com/v2/summary_rates

Request Example

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

summarized_rates = client.summary_rates
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

summarized_rates = client.summary_rates()
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

client.summaryRates().then(res => {
  res.summary_rates; // Array of summarized rates
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

$summarized_rates = $client->summaryRates();
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

var summaryRates = client.SummaryRates();
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.summarized_rates.SummaryRateResponse;

public class SummarizedRatesExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            SummaryRateResponse res = client.summaryRates();
        } catch (TaxjarException e) {
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: "9e0cd62a22f451701f29c3bde214",
    })

    res, err := client.SummaryRates()
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(res.SummaryRates)
    }
}
$ curl https://api.taxjar.com/v2/summary_rates \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

Response Example
Summary response shortened for brevity.

{
  "summary_rates": [
    {
      "country_code": "US",
      "country": "United States",
      "region_code": "CA",
      "region": "California",
      "minimum_rate": {
        "label": "State Tax",
        "rate": 0.065
      },
      "average_rate": {
        "label": "Tax",
        "rate": 0.0827
      }
    }
  ]
}
[
  #<Taxjar::SummaryRate:0x00000a @attrs={
    :country_code => "US",
    :country => "United States",
    :region_code => "CA",
    :region => "California",
    :minimum_rate => {
      :label => "State Tax",
      :rate => 0.065
    },
    :average_rate => {
      :label => "Tax",
      :rate => 0.0827
    }
  }>
]
[
  <TaxJarSummaryRate {
    'average_rate': {
      'rate': 0.0827,
      'label': 'Tax'
    },
    'region_code': 'CA',
    'minimum_rate': {
      'rate': 0.065,
      'label': 'State Tax'
    },
    'country': 'US',
    'region': 'California',
    'country_code': 'US'
  }>
]
taxjar.SummaryRatesResponse{
    SummaryRates: []taxjar.SummaryRate{
        {
            CountryCode: "US",
            Country:     "United States",
            RegionCode:  "CA",
            Region:      "California",
            MinimumRate: taxjar.MinimumRate{
                Label: "State Tax",
                Rate:  0.065,
            },
            AverageRate: taxjar.AverageRate{
                Label: "Tax",
                Rate:  0.0827,
            },
        },
    },
}

Retrieve minimum and average sales tax rates by region as a backup.

Request

GET https://api.taxjar.com/v2/summary_rates

Response

Returns a summary_rates JSON object with an array of summarized rates for each region/state.

Attributes

Parameter Type Description
country_code string Country code for summarized region.
country string Country name for summarized region.
region_code string Region code for summarized region.
region string Region name for summarized region.
minimum_rate object Region/state-only sales tax rate with label.
average_rate object Average rate for region/state and local sales tax across all postal codes in the summarized region with label.

Sandbox Environment

Sandbox Example

require 'taxjar'
client = Taxjar::Client.new(
  api_key: 'YOUR_SANDBOX_API_KEY',
  api_url: Taxjar::API::Request::SANDBOX_API_URL
)
import taxjar
client = taxjar.Client(
  api_key='YOUR_SANDBOX_API_KEY',
  api_url=taxjar.SANDBOX_API_URL
)
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: process.env.TAXJAR_SANDBOX_API_KEY,
  apiUrl: Taxjar.SANDBOX_API_URL
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey($_ENV['TAXJAR_SANDBOX_API_KEY']);
$client->setApiConfig('api_url', TaxJar\Client::SANDBOX_API_URL);
using Taxjar;
var client = new TaxjarApi("YOUR_SANDBOX_API_KEY", new {
  apiUrl = "https://api.sandbox.taxjar.com"
});
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import java.util.HashMap;
import java.util.Map;

public class SandboxExample {

    public static void main(String[] args) {
        Map<String, String> params = new HashMap<>();
        params.put("apiUrl", Taxjar.SANDBOX_API_URL);

        Taxjar client = new Taxjar("YOUR SANDBOX API TOKEN", params);
    }

}
package main

import (
    "os"

    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: os.Getenv("TAXJAR_SANDBOX_API_KEY"),
        APIURL: taxjar.SandboxAPIURL,
    })
}
$ curl https://api.sandbox.taxjar.com/v2/categories \
  -H "Authorization: Bearer 9e0cd62a22f451701f29c3bde214"

TaxJar provides a sandbox environment for automated testing and development on all TaxJar Professional or higher plans. After generating a sandbox API token, point your API client to the sandbox environment:

https://api.sandbox.taxjar.com

For sales tax calculations, you’ll get similar results as you would expect from our production API. These should not be relied upon for accurate rates in all situations, and are meant to validate request and response formatting. Transaction endpoints for orders and refunds return stubbed responses. You can pass transactions to our sandbox to validate your data and ensure it will be accepted by TaxJar.

Some of the production API endpoints are not fully supported in the sandbox environment.

To mock specific error response codes, pass a custom X-TJ-Expected-Response header using the setApiConfig or set_api_config method available in our API clients.

Rate Limiting

We limit API requests to 10,000 per minute for TaxJar Professional plans. Our TaxJar Premium plans include an increased limit of 25,000 per minute.

If you’re exceeding this rate and encountering 429 errors, review the following:

  • Only make calculation requests in states / regions where you have nexus.
  • Cache responses if the order details haven’t changed since the last calculation at checkout.
  • Use our summarized rates endpoint as a fallback to ensure sales tax is collected.

Errors

 

require "taxjar"
client = Taxjar::Client.new(api_key: "9e0cd62a22f451701f29c3bde214")

begin
  # Invalid request
  order = client.create_order({
    :transaction_date => '2015/05/14',
    :to_country => 'US',
    :to_state => 'CA',
    :to_zip => '90002',
    :amount => 17.45,
    :shipping => 1.5,
    :sales_tax => 0.95
  })
rescue Taxjar::Error => e
  # <Taxjar::Error::NotAcceptable: transaction_id is missing>
  puts e.class.name
  puts e.message
end
import taxjar
client = taxjar.Client(api_key='9e0cd62a22f451701f29c3bde214')

try:
  order = client.create_order({
    'transaction_date': '2015/05/14',
    'to_country': 'US',
    'to_state': 'CA',
    'to_zip': '90002',
    'amount': 17.45,
    'shipping': 1.5,
    'sales_tax': 0.95
  })
except taxjar.exceptions.TaxJarConnectionError as err:
  print err
except taxjar.exceptions.TaxJarResponseError as err:
  # 406 Not Acceptable – transaction_id is missing
  print err.full_response
const Taxjar = require('taxjar');

const client = new Taxjar({
  apiKey: '9e0cd62a22f451701f29c3bde214'
});

// Invalid request
client.createOrder({
  transaction_date: '2015/05/14',
  to_country: 'US',
  to_state: 'CA',
  to_zip: '90002',
  amount: 17.45,
  shipping: 1.5,
  sales_tax: 0.95
}).then(res => {
  res.order; // Order object
}).catch(err => {
  err.detail; // Error detail
  err.status; // Error status code
});
require __DIR__ . '/vendor/autoload.php';
$client = TaxJar\Client::withApiKey("9e0cd62a22f451701f29c3bde214");

try {
  // Invalid request
  $order = $client->createOrder([
    'transaction_date' => '2015/05/14',
    'to_country' => 'US',
    'to_zip' => '90002',
    'to_state' => 'CA',
    'amount' => 17.45,
    'shipping' => 1.5,
    'sales_tax' => 0.95
  ]);
} catch (TaxJar\Exception $e) {
  // 406 Not Acceptable – transaction_id is missing
  echo $e->getMessage();

  // 406
  echo $e->getStatusCode();
}
using Taxjar;
var client = new TaxjarApi("9e0cd62a22f451701f29c3bde214");

try
{
  // Invalid request
  var order = client.CreateOrder(new {
    transaction_date = "2015/05/04",
    to_country = "US",
    to_zip = "90002",
    to_state = "CA",
    amount = 17.45,
    shipping = 1.5,
    sales_tax = 0.95
  });
}
catch(TaxjarException e)
{
  // 406 Not Acceptable – transaction_id is missing
  e.TaxjarError.Error;
  e.TaxjarError.Detail;
  e.TaxjarError.StatusCode;
}
import com.taxjar.Taxjar;
import com.taxjar.exception.TaxjarException;
import com.taxjar.model.transactions.OrderResponse;
import java.util.HashMap;
import java.util.Map;

public class ErrorHandlingExample {

    public static void main(String[] args) {
        Taxjar client = new Taxjar("9e0cd62a22f451701f29c3bde214");

        try {
            Map<String, Object> params = new HashMap<>();
            params.put("transaction_date", "2015/05/04");
            params.put("to_country", "US");
            params.put("to_zip", "90002");
            params.put("to_state", "CA");
            params.put("amount", 17.45);
            params.put("shipping", 1.5);
            params.put("sales_tax", 0.95);

            OrderResponse res = client.createOrder(params);
        } catch (TaxjarException e) {
            // 406 Not Acceptable – transaction_id is missing
            e.getMessage();
            e.getStatusCode();
            e.printStackTrace();
        }
    }

}
package main

import (
    "fmt"
    "os"

    "github.com/pkg/errors"
    "github.com/taxjar/taxjar-go"
)

func main() {
    client := taxjar.NewClient(taxjar.Config{
        APIKey: os.Getenv("TAXJAR_API_KEY"),
    })

    res, err := client.CreateOrder(taxjar.CreateOrderParams{
        TransactionDate: "2015/05/04",
        ToCountry:       "US",
        ToZip:           "90002",
        ToState:         "CA",
        Amount:          17.45,
        Shipping:        1.5,
        SalesTax:        0.95,
    })
    if err != nil {
        fmt.Println(err) // taxjar: 406 Not Acceptable - transaction_id is missing
    } else {
        fmt.Println(res.Order)
    }
    // or extract more information by asserting to `*taxjar.Error`
    if err := err.(*taxjar.Error); err != nil {
        fmt.Println(err.Status) // 406
        fmt.Println(err.Err) // Not Acceptable
        fmt.Println(err.Detail) // transaction_id is missing
        fmt.Printf("%+v", errors.Wrap(err, "")) // Stack trace:
        // taxjar: 406 Not Acceptable - transaction_id is missing
        //
        // main.main
        //         /Path/to/your/file.go:185
        // runtime.main
        //         /usr/local/go/src/runtime/proc.go:200
        // runtime.goexit
        //         /usr/local/go/src/runtime/asm_amd64.s:1337
    } else {
        fmt.Println(res.Order)
    }
}

The TaxJar API uses the following error codes:

Code Error Message
400 Bad Request – Your request format is bad.
401 Unauthorized – Your API key is wrong.
403 Forbidden – The resource requested is not authorized for use.
404 Not Found – The specified resource could not be found.
405 Method Not Allowed – You tried to access a resource with an invalid method.
406 Not Acceptable – Your request is not acceptable.
410 Gone – The resource requested has been removed from our servers.
422 Unprocessable Entity – Your request could not be processed.
429 Too Many Requests – You’re requesting too many resources! Slow down!
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – We’re temporarily offline for maintenance. Try again later.

400 Bad Request

If you receive the message “No from address, no nexus address, and no address on file”, we recommend providing from_ or nexus_addresses[] depending on the endpoint’s accepted parameters. Otherwise sign in and provide your business address and locations in TaxJar.

Additionally, we provide specific 400 error messages for invalid data:

  • Invalid ZIP and state combinations for to_zip, to_state and from_zip, from_state

There are additional scenarios in which /v2/taxes may return a 400 error code:

  • No amount or line_items[] are provided
  • Non-unique line_items[][id]‘s
  • Missing to_zip when to_country is "US"
  • Missing to_state when to_country is "US" or "CA"
  • to_zip isn’t a valid postal code code when to_country is "US"
  • Unsupported country codes

Transactions

When using the /v2/transactions endpoints, we return the following error messages:

  • amount param does not equal sum of line_items + shipping
  • line_items[][description] param exceeds limit of 255 characters

401 Unauthorized

Verify your API token is correct and make sure you’re correctly setting the Authorization header.

403 Forbidden

Make sure you have an active API token with TaxJar by reviewing your account. Your trial or subscription may have expired. If you’re still not sure what’s wrong, contact us and we’ll investigate.

406 Not Acceptable

This error occurs most often when posting form-encoded data with parameters such as nexus_addresses[] or line_items[]. If your code looks correct, try submitting the request with a Content-Type: application/json header. Data should always be JSON-encoded.

Additionally, a 406 response will be returned if you provide blank values for required fields when pushing orders or refunds through the /v2/transactions endpoints.

Additional 406 error response reasons:

  • State or country is not a valid two-letter ISO code
  • Shipping or another required field is missing
  • Shipping or another field has an invalid value using an unintended type (e.g., Alphanumeric string instead of a decimal)

422 Unprocessable Entity

If you attempt to create an order or refund transaction that already exists in TaxJar, you’ll receive a 422 error. As a fallback, make a PUT request instead and update the existing transaction.

Note that when creating a refund transaction, the transaction_id must be a unique identifier for the refund and different from the original order transaction_id. The transaction_reference_id is used to reference the original order transaction.

Changelog

Stay on top of new developer-facing features, accuracy improvements, and bug fixes for our sales tax API. Have a request? Encounter an issue? We’d love to hear your feedback.

January 2022

2022-01-24

  • Feature TaxJar API version “2022-01-24” introduced. Provides increased validations on order and refund transaction POST and PUT requests. Product Tax Codes (PTCs) that do not exist will return a 400 error listing the PTCs that are invalid.

January 2021

2021-01-21

  • Feature TaxJar API version “2020-08-07” introduced. Provides increased validations on order and refund transaction POST requests. Verifies math between 'line_items[]' details and 'shipping' to equal the sum of 'amount'.

July 2020

2020-07-14

  • Accuracy 95 new tax categories now available.
    Click to see new tax categories
    CodeCategory
    51241400A0001Acne Treatments
    52161548A0000Audio Turntables
    51241900A0001Baby Oil
    53131649A0001Baby Powder
    53131624A0000Baby Wipes/Cleansing Wipes
    46181704A0003Bicycle Helmets - Adult
    46181704A0002Bicycle Helmets - Youth
    53131509A0000Breath Spray/dissolvable strips
    53121701A0000Briefcases
    53131612A0001Bubble Bath, Bath Salts/Oils/Crystals
    46181501A0002Clothing - Aprons - Household/Kitchen
    53102515A0000Clothing - Button covers
    53102305A0001Clothing - Cloth Diapers
    53102500A0001Clothing - Hair Accessories
    53102513A0000Clothing - Headbands
    53103100A0003Clothing - Hunting Vests
    53102717A0001Clothing - Martial Arts Attire
    53102514A0000Clothing - Pocket protectors
    46182208A0000Clothing - Shoe Inserts/Insoles
    53102607A0000Clothing - Sleep or eye mask
    53102505A0000Clothing - Umbrellas
    53102500A0002Clothing - Wigs, Hairpieces, Hair extensions
    42142100A0003Cold or Hot Therapy Packs - Disposable
    42142100A0004Cold or Hot Therapy Packs - Disposable - Medicated
    42142100A0002Cold or Hot Therapy Packs - Reusable
    53131628A0002Conditioner - Hair
    42142914A0000Contact Lens Disinfecting Solutions
    42142914A0002Contact Lens Lubricating Solutions - For eyes
    42142914A0001Contact Lens Lubricating Solutions - For lens
    42142913A0000Contact Lenses with Prescription
    42142900A0002Corrective Lenses without Prescription
    42142900A0001Corrective Lenses, Eyeglasses with Prescription
    42141500A0001Cotton Balls/Swabs - Sterile
    42141500A0002Cotton Balls/Swabs - Unsterile
    53131504A0000Dental Floss/picks
    53131510A0000Denture creams/adhesives
    53131606A0001Deodorant - Natural or no active ingredients
    53131606A0000Deodorant/Antiperspirant
    51241859A0001Diaper Cream
    45121504A0000Digital Cameras
    52161543A0000Digital Music Players
    52161549A0000Digital Picture Frames
    42132203A0000Disposable Gloves
    51241000A0001Ear Drops - Medicated
    53131615A0001Feminine Cleansing Solutions
    53131615A0002Feminine Cleansing Solutions - Medicated
    51302300A0001Feminine Yeast Treatments
    42172001A0001First Aid Kits - 50% or less medicinal items
    42172001A0002First Aid Kits - 51% or more medicinal items
    51182001A0001Hair Loss Products
    53131623A0000Hair Removal Products
    53131626A0000Hand Sanitizers
    53121600A0000Handbags, Purses
    26111710A0001Hearing Aid Batteries with Prescription
    26111710A0002Hearing Aid Batteries without Prescription
    42211705A0000Hearing Aids with Prescription
    42211705A0001Hearing Aids without Prescription
    42142100A0001Heating Pads
    51473503A0000Hydrogen Peroxide
    51471901A0000Isopropyl (Rubbing) Alcohol
    54100000A0000Jewelry
    53131630A0000Lip Balm
    53131630A0001Lip Balm - Medicated
    53121500A0000Luggage
    42131713A0001Medical Masks
    42182200A0001Medical Thermometers - Disposable
    42182200A0002Medical Thermometers - Reusable
    43191501A0000Mobile Phones
    53131501A0001Mouthwash - Cosmetic
    53131501A0000Mouthwash - Therapeutic
    42312402A0001Nasal Breathing Strips
    51030Over-the-Counter Drugs via Prescription
    53131641A0000Petroleum Jelly
    53131628A0000Shampoo
    53131628A0001Shampoo - medicated (anti-dandruff)
    53131611A0000Shaving Creams
    51241200A0002Skin Care Products
    51241200A0001Skin Care Products- Medicated
    51143218A0000Smoking Cessation Products
    53131608A0001Soaps - Antibacterial
    42142905A0001Sunglasses - Non-Rx
    53131609A0000Sunscreen
    53131615A0000Tampons, menstrual cups, pads, liners
    42151506A0000Teeth Whitening Kits
    14111704A0000Toilet Paper
    53131503A0000Toothbrushes
    53131502A0000Toothpaste
    45121515A0000Video Cameras
    52161557A0000Video Gaming Console - Fixed
    52161558A0000Video Gaming Console - Portable
    53121600A0001Wallets
    54111500A0000Watches
    54111500A0001Watches - Smart
    42311500A0001Wound Care Supplies - Bandages, Dressings, Gauze
    42311514A0000Wound Care Supplies - Bandages, Dressings, Gauze - Medicated

June 2020

2020-06-10

  • Feature Added support for a Facebook provider type on transactions endpoints: 'provider': 'facebook'

  • Accuracy 104 new tax categories now available.

    Click to see new tax categories
    CodeCategory
    40101701A0000Air conditioners - Energy Star
    26111702A0000Alkaline Batteries
    46101600A0001Ammunition
    49181602A0002Archery Accessories
    46101801A0001Archery Cases
    49181602A0001Archery Equipment
    24121512A0000Artificial Ice
    27112005A0000Axes/Hatchets
    52101507A0000Bath Mats/rugs
    52121700A0000Bath towels
    30181702A0001Bathroom Faucets - WaterSense
    52121500A0000Bedding
    40102004A0001Boilers - Energy Star
    53121603A0001Bookbags/Backpacks - Student
    44101807A0000Calculators
    52151605A0001Can opener - manual
    39112604A0001Candles
    46191509A0001Carbon Monoxide Detectors
    40101609A0000Ceiling fans - Energy Star
    27112038A0001Chainsaw accessories
    52141602A0000Clothes drying machine - Energy Star
    52141601A0000Clothes Washing Machine - Energy Star
    39101619A0001Compact Fluorescent Light Bulbs - Energy Star
    26111711A0001Computer Batteries
    43202222A0001Computer Cables
    43201800A0001Computer Drives
    43211706A0000Computer Keyboards
    43211719A0000Computer Microphones
    43211900A0000Computer Monitor/Displays
    43211708A0000Computer Mouse/Pointing Devices
    43212100A0001Computer Printer
    43211607A0000Computer Speakers
    43202000A0000Computer Storage Media
    53131619A0001Cosmetics - Beautifying
    56101804A0001Crib bumpers/liners
    44112004A0001Daily Planners
    40101902A0000Dehumidifier - Energy Star
    55101526A0001Dictionaries/Thesauruses
    52121601A0000Dish towels
    52141505A0000Dishwashers - Energy Star
    43211602A0000Docking Stations
    31201501A0000Duct Tape
    43211519A0000E-Book Readers
    30191501A0001Emergency/rescue ladder
    46191601A0000Fire Extinguishers
    46101506A0001Firearm Accessories
    46101500A0001Firearms
    52152002A0001Food Storage Cooler
    52141506A0000Freezers- Energy Star
    40101805A0000Furnaces - Energy Star
    27112038A0000Garden chainsaw
    60104414A0001Globes - Student
    44101808A0001Graphing Calculators
    31162108A0000Ground Anchor Systems and Tie-down Kits
    46101801A0000Gun Cases
    52161514A0000Headphones/Earbuds
    46181902A0001Hearing Protection Earmuffs
    40101806A0000Heat Pumps - Energy Star
    39101612A0001Incandescent Light Bulbs - Energy Star
    21102503A0001Irrigation Controls - WaterSense
    11121700A0001Landscape Soil, Mulch, Compost - Residential
    39101628A0001LED Bulbs - Energy Star
    60103410A0001Maps - Student
    43191501A0001Mobile Phone Batteries
    43191501A0002Mobile Phone Charging Device/cord
    43222628A0000Modems
    43201513A0000Motherboards
    60130000A0001Musical instruments - Student
    46171501A0001Padlocks - Student
    43211500A0001Personal Computers
    43211603A0000Port Replicators
    24111808A0001Portable Fuel Container
    26111604A0001Portable Generator
    39111610A0000Portable Light Sources
    43191510A0000Portable Radios
    26121636A0000Power cords
    44103105A0000Printer Ink
    14111507A0000Printer Paper
    41112209A0001Programmable Wall Thermostat - Energy Star
    44122106A0000Push pins/tacks
    52141501A0000Refrigerators - Energy Star
    31151500A0000Ropes and Cords
    43222609A0000Routers
    43211711A0000Scanners
    60121200A0001School Art Supplies
    44121600A0001School Supplies
    55101514A0000Sheet music - Student
    30181607A0000Shower Curtain or Liner
    30181801A0000Showerheads - WaterSense
    46191501A0000Smoke Detectors
    43230000A1102Software - Prewritten, Electronic delivery - Non-recreational
    43230000A1101Software - Prewritten, tangible media - Non-recreational
    43201502A0000Sound Cards
    21101803A0001Spray Water Sprinkler Bodies - WaterSense
    44121615A0000Staplers/Staples
    30151801A0001Storm shutters/window protection devices
    24141506A0000Tarpaulins and Weatherproof Sheeting
    30181505A0000Toilets - WaterSense
    30181506A0000Urinals - WaterSense
    43201401A0000Video/Graphics Card
    21102500A0001Water Conserving Products
    40101825A0000Water heater - Energy Star
    24111810A0001Water storage container
    45121520A0000Web Camera

2020-06-09

  • Accuracy 2 new tax categories now available.
CodeCategory
43230000A9201Software - Custom, electronic delivery - Business Use
43230000A9200Software - Prewritten, electronic delivery - Business Use

May 2020

2020-05-12

  • Accuracy 23 new tax categories now available.
    Click to see new tax categories
    CodeCategory
    50201708A0002Bottled coffee - containing milk or milk substitute
    50201708A0001Bottled coffee - no milk - sweetened
    50201708A0000Bottled coffee - no milk - unsweetened
    50201712A0002Bottled tea - carbonated - sweetened
    50201712A0001Bottled tea - carbonated - unsweetened
    50201712A0003Bottled tea - non-carbonated - sweetened
    50201712A0000Bottled tea - non-carbonated - unsweetened
    50202309A0001Energy Beverages - Carbonated - with Supplement Facts Label
    50202309A0000Energy Beverages - Non-Carbonated - with Supplement Facts Label
    50221202A0001Food and Beverage - Granola Bars, Cereal Bars, Energy Bars, Protein Bars containing flour
    50221202A0002Food and Beverage - Granola Bars, Cereal Bars, Energy Bars, Protein Bars containing no flour
    50193400A0000Food/TPP Bundle - with Food 90% or more
    50193400A0001Food/TPP Bundle - with Food 90% or more - Food is all Candy
    50193400A0002Food/TPP Bundle - with Food between 50% and 75%
    50193400A0003Food/TPP Bundle - with Food between 50% and 75% - Food is all Candy
    50193400A0004Food/TPP Bundle - with Food between 76% and 89%
    50193400A0005Food/TPP Bundle - with Food between 76% and 89% - Food is all Candy
    50193400A0006Food/TPP Bundle - with Food less than 50%
    50501703A0001Nutritional Supplement/protein drinks, shakes - contains milk
    50501703A0000Nutritional Supplement/protein drinks, shakes - contains no milk
    50202311A0001Powdered Drink Mixes - to be mixed with milk
    50202311A0000Powdered Drink Mixes - to be mixed with water
    50501703A0002Protein Powder

April 2020

2020-04-22

  • Accuracy 69 tax categories for food & beverages now available.
    Click to see new tax categories
    CodeCategory
    50000000A0000Food and Beverage - Food and Food Ingredients for Home Consumption
    50181700A0000Food and Beverage - Cooking Ingredients
    50171500A0000Food and Beverage - Cooking spices
    90100000A0001Food and Beverage - Foods for Immediate Consumption
    50110000A0000Food and Beverage - Meat and meat products
    50112000A0000Food and Beverage - Meat Sticks, Meat Jerky
    50121500A0000Food and Beverage - Fish and seafood
    50400000A0000Food and Beverage - Vegetables
    50300000A0000Food and Beverage - Fruit
    50320000A0000Food and Beverage - Dried fruit, unsweetened
    50101716A0000Food and Beverage - Nuts and seeds
    50101716A0001Food and Beverage - Processed Nuts and Seeds
    50180000A0000Food and Beverage - Bread and Flour Products
    50192401A0000Food and Beverage - Jams and Jellies
    50221200A0000Food and Beverage - Grains, Rice, Cereal
    50131600A0000Food and Beverage - Eggs and egg products
    50480000A9000Food and Beverage - Nut Butters
    50151500A0000Food and Beverage - Butter, Margarine, Shortening and Cooking Oils
    50161509A0000Food and Beverage - Honey, Maple Syrup
    50131800A0000Food and Beverage - Cheese
    50131800A0001Food and Beverage - Yogurt
    50192303A0000Food and Beverage - Ice Cream, packaged
    50192304A0000Food and Beverage - Ice Cream, sold in container less than one pint
    50161511A0000Food and Beverage - Cocoa and Cocoa products
    50161800A0000Food and Beverage - Candy
    50161800A0001Food and Beverage - Candy containing flour as an ingredient
    50161900A0000Food and Beverage - Sugar and Sugar Substitutes
    50192100A0000Food and Beverage - Snack Foods
    50192404A0000Food and Beverage - Jello and pudding mixes
    42231800A0000Food and Beverage - Baby foods and formulas
    50501500A0000Food and Beverage - Vitamins and Supplements
    50501500A0001Food and Beverage - Vitamins and Supplements - labeled with nutritional facts
    50202302A0000Food and Beverage - Ice cubes
    50202301A0000Bottled Water
    50202301A0001Bottled Water - Flavored
    50202301A0004Bottled Water - Carbonated - Flavored
    50202301A0003Bottled Water - Carbonated Naturally
    50202301A0002Bottled Water - Carbonated Artificially
    50202306A0000Soft Drinks - Carbonated - No fruit or vegetable juice
    50202306A0001Soft Drinks - Carbonated - 1-9% fruit juice
    50202306A0002Soft Drinks - Carbonated - 1 -9% vegetable juice
    50202306A0003Soft Drinks - Carbonated - 10-24% fruit juice
    50202306A0004Soft Drinks - Carbonated - 10-24% vegetable juice
    50202306A0005Soft Drinks - Carbonated - 25-50% fruit juice
    50202306A0006Soft Drinks - Carbonated - 25-50% vegetable juice
    50202306A0007Soft Drinks - Carbonated - 51-69% fruit juice
    50202306A0008Soft Drinks - Carbonated - 51-69% vegetable juice
    50202306A0009Soft Drinks - Carbonated - 70-99% fruit juice
    50202306A0010Soft Drinks - Carbonated - 70-99% vegetable juice
    50202306A0011Soft Drinks - Carbonated - 100% fruit or vegetable juice
    50202304A0001Soft Drinks - Non-Carbonated - No fruit or vegetable juice
    50202304A0002Soft Drinks - Non-Carbonated - 1-9% fruit juice
    50202304A0003Soft Drinks - Non-Carbonated - 1 -9% vegetable juice
    50202304A0004Soft Drinks - Non-Carbonated - 10-24% fruit juice
    50202304A0005Soft Drinks - Non-Carbonated - 10-24% vegetable juice
    50202304A0006Soft Drinks - Non-Carbonated - 25-50% fruit juice
    50202304A0007Soft Drinks - Non-Carbonated - 25-50% vegetable juice
    50202304A0008Soft Drinks - Non-Carbonated - 51-69% fruit juice
    50202304A0009Soft Drinks - Non-Carbonated - 51-69% vegetable juice
    50202304A0010Soft Drinks - Non-Carbonated - 70-99% fruit juice
    50202304A0011Soft Drinks - Non-Carbonated - 70-99% vegetable juice
    50202304A0000Soft Drinks - Non-Carbonated - 100% fruit or vegetable juice
    50131700A0000Food and Beverage - Milk and milk products
    50151515A9000Food and Beverage - Milk Substitutes
    50201700A0000Food and Beverage - Coffee, coffee substitutes and tea
    50202201A0000Food and Beverage - Alcoholic beverages - Beer/Malt Beverages
    50202203A0000Food and Beverage - Wine
    50202206A0000Food and Beverage - Alcoholic beverages - Spirits
    50202300A0001Food and Beverage - Non-Alcoholic Beer, Wine

March 2020

2020-03-09

  • Accuracy 2 more tax categories for digital goods and software now available.
    CodeCategory
    55111500A9210Electronic content bundle - Delivered electronically with permanent rights of usage and streamed
    55111500A9220Electronic content bundle - Delivered electronically with less than permanent rights of usage and streamed

January 2020

2020-01-23

  • Accuracy 12 more tax categories for clothing now available.
    Click to see new tax categories
    CodeCategory
    53101800A0001Clothing - Fur Coat or Jacket
    53102502A0001Clothing - Fur Ear muffs or scarves
    53102503A0001Clothing - Fur Gloves
    53102504A0001Clothing - Fur Hat
    53103100A0001Clothing - Fur Vest
    53101806A0001Clothing - Fur Poncho or Cape
    53101800A0002Clothing - Synthetic Fur Coat or Jacket
    53102502A0002Clothing - Synthetic Fur Ear muffs or scarves
    53102503A0002Clothing - Synthetic Fur Gloves
    53102504A0002Clothing - Synthetic Fur Hat
    53103100A0002Clothing - Synthetic Fur Vest
    53101806A0002Clothing - Synthetic Fur Poncho or Cape

2020-01-10

  • Accuracy Gift Cards tax category now available.

    CodeCategory
    14111803A0001Gift Cards

  • Accuracy 179 tax categories for clothing now available.

    Click to see new tax categories
    CodeCategory
    46181532A0000Clothing - Lab coats
    46181543A0000Clothing - Waterproof jacket or raincoat
    46181546A0000Clothing - Waterproof cap
    46181604A0000Clothing - Safety boots
    46181605A0000Clothing - Safety shoes
    46181607A0000Clothing - Protective clogs
    46181608A0000Clothing - Protective sandals
    46181609A0000Clothing - Protective insole
    46181610A0000Clothing - Insulated cold weather shoe
    46181611A0000Clothing - Waterproof boot
    46181612A0000Clothing - Military boot
    46181613A0000Clothing - Mountain climbing boot
    53101806A0000Clothing - Poncho
    53102301A0000Clothing - Undershirts
    53102302A0000Clothing - Slips
    53102303A0000Clothing - Underpants
    53102304A0000Clothing - Brassieres
    53102305A0000Clothing - Infant diapers
    53102306A0000Clothing - Adult diapers
    53102307A0000Clothing - Body shaping garments
    53102308A0000Clothing - Diaper liners
    53102311A0000Clothing - Disposable youth training pants
    53102401A0000Clothing - Stockings
    53102402A0000Clothing - Socks
    53102403A0000Clothing - Panty hose
    53102404A0000Clothing - Tights
    53102501A0000Clothing - Belts or suspenders
    53102502A0000Clothing - Ties or scarves or mufflers
    53102503A0000Clothing - Hats
    53102504A0000Clothing - Gloves or mittens
    53102508A0000Clothing - Armbands
    53102509A0000Clothing - Garters
    53102511A0000Clothing - Bandannas
    53102516A0000Clothing - Caps
    53102521A0000Clothing - Bib
    53102606A0000Clothing - Bath robes
    53102608A0000Clothing - Infant swaddles or buntings or receiving blankets
    53103201A0000Clothing - Disposable work coat
    53112002A0000Clothing - Shoelaces
    53112003A0000Clothing - Heel pads
    53101500A0000Clothing - Slacks or trousers or shorts
    53101600A0000Clothing - Shirts
    53101700A0000Clothing - Sweaters
    53101800A0000Clothing - Coats or jackets
    53101900A0000Clothing - Suits
    53102000A0000Clothing - Dresses or skirts or saris or kimonos
    53102100A0000Clothing - Overalls or coveralls
    53102200A0000Clothing - Folkloric clothing
    53102600A0000Clothing - Pajamas or nightshirts or robes
    53102900A0000Clothing - Athletic wear
    53103000A0000Clothing - TShirts
    53103100A0000Clothing - Vest or waistcoats
    53111500A0000Clothing - Boots
    53111600A0000Clothing - Shoes
    53111700A0000Clothing - Slippers
    53111800A0000Clothing - Sandals
    53111900A0000Clothing - Athletic footwear
    53112000A0000Clothing - Overshoes
    53102800A0000Clothing - Swimwear
    53102506A0000Clothing - Sweat bands
    53101801A0001Clothing - Tuxedo or Formalwear
    53101801A0002Clothing - Formal Dress
    53101801A0003Clothing - Prom Dress
    53101801A0004Clothing - Bridal Gown
    46181501A0001Clothing - Protective aprons
    46181502A0001Clothing - Bullet proof vests
    46181503A0001Clothing - Protective coveralls
    46181504A0001Clothing - Protective gloves
    46181505A0001Clothing - Protective knee pads
    46181506A0001Clothing - Protective ponchos
    46181507A0001Clothing - Safety vests
    46181508A0001Clothing - Fire retardant apparel
    46181509A0001Clothing - Hazardous material protective apparel
    46181512A0001Clothing - Cleanroom apparel
    46181514A0001Clothing - Elbow protectors
    46181516A0001Clothing - Safety sleeves
    46181517A0001Clothing - Insulated or flotation suits
    46181518A0001Clothing - Heat resistant clothing
    46181520A0001Clothing - Leg protectors
    46181522A0001Clothing - Safety hoods
    46181526A0001Clothing - Protective shirts
    46181527A0001Clothing - Protective pants
    46181528A0001Clothing - Protective frock
    46181529A0001Clothing - Insulated clothing for cold environments
    46181530A0001Clothing - Protective finger cots
    46181531A0001Clothing - Reflective apparel or accessories
    46181533A0001Clothing - Protective coats
    46181534A0001Clothing - Protective wristbands
    46181535A0001Clothing - Protective socks or hosiery
    46181536A0001Clothing - Anti cut gloves
    46181537A0001Clothing - Insulated gloves
    46181538A0001Clothing - Thermal gloves
    46181539A0001Clothing - Anti vibratory gloves
    46181540A0001Clothing - Welder gloves
    46181541A0001Clothing - Chemical resistant gloves
    46181542A0001Clothing - Protective mittens
    46181544A0001Clothing - Waterproof trousers or pants
    46181545A0001Clothing - Waterproof suit
    46181547A0001Clothing - Waterproof cap cover
    46181548A0001Clothing - Welder bib
    46181549A0001Clothing - Neck gaitor
    46181550A0001Clothing - Protective scarf
    46181551A0001Clothing - Protective mesh jacket
    46181553A0001Clothing - Protective wear dispenser
    46181554A0001Clothing - Cooling vest
    46181601A0001Clothing - Fire retardant footwear
    46181602A0001Clothing - Hazardous material protective footwear
    46181603A0001Clothing - Cleanroom footwear
    46181606A0001Clothing - Footwear covers
    46181701A0001Clothing - Hard hats
    46181702A0001Clothing - Facial shields
    46181703A0001Clothing - Welding masks
    46181704A0001Clothing - Safety helmets
    46181705A0001Clothing - Motorcycle helmets
    46181706A0001Clothing - Helmet parts or accessories
    46181707A0001Clothing - Facial shields parts or accessories
    46181708A0001Clothing - Protective hair net
    46181709A0001Clothing - Face protection kit
    46181710A0001Clothing - Protective hood
    46181711A0001Clothing - Welders helmet
    46181802A0001Clothing - Safety glasses
    46181803A0001Clothing - Eye shields
    46181804A0001Clothing - Goggles
    46181808A0001Clothing - Goggle protective covers
    46181809A0001Clothing - Eye shield garters
    46181811A0001Clothing - Protective lens
    49211606A0001Clothing - Baseball batting gloves
    49211606A0002Clothing - Bowling gloves
    49171600A0000Clothing - Boxing gloves
    49211606A0004Clothing - Football receiver gloves
    49141606A0000Clothing - Swim goggles or swim fins
    46161604A0000Clothing - Life vests or preservers
    49151602A0000Clothing - Ice Skates
    49221509A0000Clothing - Roller skates or roller blades
    49161525A0001Clothing - Shin guards
    42152402A0001Clothing - Mouth guards
    46181506A0002Clothing - Shoulder pads for sports
    49141506A0000Clothing - Wetsuit
    49211606A0000Clothing - Golf gloves
    53111900A0001Clothing - Ballet or tap shoes
    53111900A0002Clothing - Cleated or spiked shoes
    53111900A0003Clothing - Bowling shoes
    53111900A0004Clothing - Golf shoes
    53111900A0005Clothing - Ski boots
    49161517A0001Clothing - Athletic supporter
    53102518A0000Clothing - Chevrons
    53102701A0000Clothing - Military uniforms
    53102702A0000Clothing - Customs uniforms
    53102703A0000Clothing - Police uniforms
    53102704A0000Clothing - Institutional food preparation or service attire
    53102705A0000Clothing - School uniforms
    53102706A0000Clothing - Security uniforms
    53102707A0000Clothing - Doctors coat
    53102708A0000Clothing - Nurses uniforms
    53102709A0000Clothing - Ambulance officers uniforms
    53102710A0000Clothing - Corporate uniforms
    53102711A0000Clothing - Salon smocks
    53102712A0000Clothing - Paramedic uniforms
    53102713A0000Clothing - Ushers uniforms
    53102714A0000Clothing - Judicial robe
    53102715A0000Clothing - Prison officer uniform
    53102716A0000Clothing - Prisoner uniform
    53102718A0000Clothing - Firefighter uniform
    53102717A0000Clothing - Sport uniform
    60141401A0000Clothing - Costume
    60122800A0000Clothing - Costume Mask
    53102512A0000Clothing - Handkerchiefs
    53131601A0000Clothing - Shower Cap
    53102519A0000Clothing - Gorgets
    53141503A0000Clothing - Zippers
    53141505A0000Clothing - Buttons
    53141506A0000Clothing - Snaps
    53141507A0000Clothing - Clasps
    11160000A0000Clothing - Fabric for use in clothing
    11151700A0000Clothing - Yarn
    60105810A0000Clothing - Fabric dye
    60123900A0000Clothing - Sequins for use in clothing
    53102501A0001Clothing - Belt Buckle
    53102520A0000Clothing - Shoulder boards or epaulettes

November 2019

2019-11-06

  • Accuracy 8 tax categories for digital goods and software now available.
    Click to see new tax categories
    CodeCategory
    81162100A0000Cloud-based platform as a service (PaaS)
    81162200A0000Cloud-based infrastructure as a service (IaaS)
    81161900A0000Hardware as a service (HaaS)
    81162300A0000Cloud-based business process as a service
    81162100A9000Cloud-based platform as a service (PaaS) - Business Use
    81162200A9000Cloud-based infrastructure as a service (IaaS) - Business Use
    81162300A9000Cloud-based business process as a service - Business Use
    81162000A9000Cloud-based software as a service (SaaS) - Business Use

October 2019

2019-10-30

  • Accuracy 66 tax categories for digital goods and software now available.
    Click to see the new tax categories
    CodeCategory
    43230000A1100Software - Prewritten & delivered on tangible media
    55111601A1100Electronic software documentation or user manuals - For prewritten software & delivered on tangible media
    81111814A0000Co location service
    81112003A0000Data center services
    81112004A0000Disaster recovery services
    81111501A0000Mainframe software applications design
    81111502A0000Personal computer PC application design
    81111503A0000Systems integration design
    81111504A0000Application programming services
    81111505A0000Operating system programming services
    81111506A0000Client or server programming services
    81111507A0000ERP or database applications programming services
    81111508A0000Application implementation services
    81111509A0000Internet or intranet client application development services
    81111510A0000Internet or intranet server application development services
    81111511A0000System or application programming management service
    81111512A0000Computer graphics service
    81111513A0000Internet cloud storage service
    81111600A0000Computer programmers
    81111701A0000Wide area network communications design
    81111702A0000Local area network communications design
    81111703A0000Electronic data interchange EDI design
    81111704A0000Database design
    81111705A0000Systems architecture
    81111706A0000Network planning services
    81111707A0000Systems planning services
    81111709A0000Demining geographical or geospatial information system GIS
    81111710A0000Information management system for mine action IMSMA
    81111801A0000Computer or network or internet security
    81111802A0000Mainframe administration services
    81111803A0000Local area network LAN maintenance or support
    81111804A0000Wide area network WAN maintenance or support
    81111806A0000Database analysis service
    81111808A0000System analysis service
    81111809A0000System installation service
    81111810A0000Software coding service
    81111811A0000Technical support or help desk services
    81111819A0000Quality assurance services
    81111820A0000System usability services
    81111901A0000Database information retrieval
    81111902A0000Online database information retrieval service
    81112001A0000Online data processing service
    81112002A0000Data processing or preparation services
    81112005A0000Document scanning service
    81112006A0000Data storage service
    81112007A0000Content or data standardization services
    81112009A0000Content or data classification services
    81112010A0000Data conversion service
    81112200A1110Software maintenance and support - Mandatory maintenance and support charges for prewritten software including items delivered on tangible media
    81112200A1121Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered on tangible media (includes software updates/upgrades)
    81112200A1122Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered on tangible media (includes support services only - no updates/upgrades)
    81112200A1210Software maintenance and support - Mandatory maintenance and support charges for prewritten software including items delivered electronically
    81112200A1221Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered electronically (includes software updates/upgrades)
    81112200A1222Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered electronically (includes support services only - no updates/upgrades)
    81112200A1310Software maintenance and support - Mandatory maintenance and support charges for prewritten software including items delivered by load and leave
    81112200A1321Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered by load and leave (includes software updates/upgrades)
    81112200A1322Software maintenance and support - Optional maintenance and support charges for prewritten software including items delivered by load and leave (includes support services only - no updates/upgrades)
    81112200A2110Software maintenance and support - Mandatory maintenance and support charges for custom software including items delivered on tangible media
    81112200A2121Software maintenance and support - Optional maintenance and support charges for custom software including items delivered on tangible media (includes software updates/upgrades)
    81112200A2122Software maintenance and support - Optional maintenance and support charges for custom software including items delivered on tangible media (includes support services only - no updates/upgrades)
    81112200A2210Software maintenance and support - Mandatory maintenance and support charges for custom software including items delivered electronically
    81112200A2221Software maintenance and support - Optional maintenance and support charges for custom software including items delivered electronically (includes software updates/upgrades)
    81112200A2222Software maintenance and support - Optional maintenance and support charges for custom software including items delivered electronically (includes support services only - no updates/upgrades)
    81112200A2310Software maintenance and support - Mandatory maintenance and support charges for custom software including items delivered by load and leave
    81112200A2321Software maintenance and support - Optional maintenance and support charges for custom software including items delivered by load and leave (includes software updates/upgrades)
    81112200A2322Software maintenance and support - Optional maintenance and support charges for custom software including items delivered by load and leave (includes support services only - no updates/upgrades)

September 2019

2019-09-20

  • Accuracy 16 tax categories for digital goods and software now available.
    Click to see new tax categories
    CodeCategory
    43230000A1200Software - Prewritten, electronic delivery
    43230000A1300Software - Prewritten, load and leave delivery
    43230000A1400Software - Prewritten, delivered by digital keycode printed on tangible media
    43230000A2100Software - Custom, tangible media
    43230000A2200Software - Custom, electronic delivery
    43230000A2300Software - Custom, load and leave delivery
    55111500A1210Electronic publications and music - Delivered electronically with permanent rights of usage
    55111500A1220Electronic publications and music - Delivered electronically with less than permanent rights of usage
    55111500A1500Electronic publications and music - Streamed
    55111601A1200Electronic software documentation or user manuals - Prewritten, electronic delivery
    55111601A1300Electronic software documentation or user manuals - Prewritten, load and leave delivery
    55111601A2100Electronic software documentation or user manuals - Custom, tangible media
    55111601A2200Electronic software documentation or user manuals - Custom, electronic delivery
    55111601A2300Electronic software documentation or user manuals - Custom, load and leave delivery
    81111805A0000Proprietary or licensed systems maintenance or support
    81162000A0000Cloud-based software as a service (SaaS)

August 2019

2019-08-22

  • Feature Order-level exemption_type param now accepts value marketplace to enable further support for marketplace exemptions.

June 2019

2019-06-26

  • Feature Order-level exemption support now available for transactions submitted through the API via new exemption_type param.

March 2019

2019-03-28

  • Feature Marketplace exemption support now available for Amazon, eBay, Etsy, and Walmart transactions submitted through the API via new provider param.

2019-03-15

December 2018

2018-12-03

  • Accuracy Missouri (MO) now rooftop accurate for street-level calculations.
  • Accuracy New Mexico (NM) now rooftop accurate for street-level calculations.
  • Accuracy Virginia (VA) now rooftop accurate for street-level calculations.

November 2018

2018-11-07

  • Accuracy Arizona (AZ) now rooftop accurate for street-level calculations.
  • Accuracy Hawaii (HI) now rooftop accurate for street-level calculations.
  • Accuracy Idaho (ID) now rooftop accurate for street-level calculations.
  • Accuracy Utah (UT) now rooftop accurate for street-level calculations.

October 2018

2018-10-23

  • Accuracy 11 tax categories for services now available: Installation, General, Advertising, Parking, Admission, Training, Professional, Dry Cleaning, Repair, Hairdressing, and Printing.
  • Accuracy Swimwear tax category for clothing now available.

2018-10-04

  • Accuracy Pennsylvania (PA) now rooftop accurate for street-level calculations.
  • Accuracy West Virginia (WV) now rooftop accurate for street-level calculations.

September 2018

2018-09-19

  • Accuracy Improved Software as a Service (SaaS) exemptions for Texas (TX).

2018-09-13

  • Feature Jurisdiction names now available for taxes endpoint.

2018-09-11

  • Feature Exempt regions now optional for customer endpoints. Exempt customers with no explicit regions will be treated as exempt everywhere.

2018-09-04

  • Accuracy Nevada (NV) now rooftop accurate for street-level calculations.

August 2018

2018-08-05

  • Platform Updated DNS records. The TaxJar API will now redirect traffic from HTTP to HTTPS via 301 redirect. Double slashes in URLs are no longer supported (e.g. “//v2/taxes”).

2018-08-02

  • Accuracy New York (NY) now rooftop accurate for street-level calculations.

July 2018

2018-07-27

  • Accuracy Louisiana (LA) now rooftop accurate for street-level calculations.
  • Accuracy Wyoming (WY) now rooftop accurate for street-level calculations.

June 2018

2018-06-28

  • Bug Fix Fixed Georgia (GA) reduced rates for Food & Grocery in select counties.
  • Bug Fix Fixed Utah (UT) reduced rate for Candy in Utah.

2018-06-26

  • Accuracy Florida (FL) now rooftop accurate for street-level calculations.
  • Accuracy Mississippi (MS) now rooftop accurate for street-level calculations.

2018-06-22

  • Accuracy Minnesota (MN) now rooftop accurate for street-level calculations.
  • Accuracy North Dakota (ND) now rooftop accurate for street-level calculations.

2018-06-08

  • Accuracy California (CA) now rooftop accurate for street-level calculations.

2018-06-05

  • Accuracy Wisconsin (WI) now rooftop accurate for street-level calculations.

2018-06-01

  • Accuracy Georgia (GA) now rooftop accurate for street-level calculations.
  • Bug Fix Fixed Missouri (MO) product exemptions for food categories.

May 2018

2018-05-07

  • Feature Customer exemption endpoints now available.

2018-05-02

  • Accuracy Improved rooftop accuracy for South Carolina (SC).

March 2018

2018-03-30

  • Accuracy Texas (TX) now rooftop accurate for street-level calculations.
  • Accuracy Improved rooftop accuracy for Colorado (CO).
  • Accuracy Improved rooftop accuracy for South Carolina (SC).
  • Accuracy Updated origin sourcing rules for Virginia (VA).

2018-03-28

  • Bug Fix Fixed issue with shipping exemptions on fully exempt orders.

2018-03-21

  • Feature Sandbox environment now available.

2018-03-16

  • Bug Fix Fixed same city, different county sourcing issue for Colorado (CO).

February 2018

2018-02-22

  • Accuracy Updated origin sourcing rules for Texas (TX).

January 2018

2018-01-04

  • Accuracy Updated sourcing rules for Tennessee (TN).

Stay Informed with the Latest Developer News

Get notified about important sales tax API updates as soon as they happen. Subscribe below for the latest developer news from TaxJar: