Documentation

Introduction

By providing as little as a zip code, we can determine the sales tax rates for your customers in their specific geographical area. In most states, sales tax rates change many times throughout the year. Our service provides you with a method to get this information quickly and easily and with no maintenance. The ZipTax team is dedicated to providing you with the critical up-to-date information you need so you can focus on the important parts of your business.

Our Zip-Tax.com API is designed to allow programmers to submit a request to our servers from a website or application and retrieve response data from our databases. The format of the response can be returned as JSON or XML. Simply pass the desired format as part of the request. Zip-Tax.com works by submitting geographic information such as city, state, and zip code from your application or website. This data is used determine the correct sales tax information matching the provided location. Our service then returns that information to your application or website.


Getting Started

The Zip-Tax.com sales tax API uses standard Representational State Transfer (REST) principles for maximum flexibility with a wide range of program languages.

To get started, simply follow this documentation to build a reuqest using the Zip-Tax.com Request URL, parse the API Response to validate the response codes, and use the API results in your application.


API Subscription Types

Core Level API

The general Zip-Tax.com sales tax API allows jurisdiction lookups using any combination of zip code, city, and state. This API level does not provide full address level lookup and only provides county data via response. For full address level lookups, please see the Geo API section below. Note when using this method, multiple response values may be returned where multiple tax jurisdictions match the query inputs.

Geo Level API (address level)

The GEO API version of Zip-Tax.com allows queries with full address lookup. This method returns only a single response with the corresponding sales tax jurisdiction data. This is the recommended subscription type for use with our API.


Request

The API request URL is used to form your request to the API from your application.

The base request URL consists of three parts.

Subdomain Action Version
api.zip-tax.com /request /v40
HTTP Request Base URL Example
curl --header "Accept:application/json" https://api.zip-tax.com/request/v40
Core Plan Level API Request

The Core API can be used with all subscription types. The API supports multiple address parameters specified in the table below.

Query Parameters
Parameter Required? Description
key yes Your API key
postalcode yes U.S. jurisdiction postal code (zip code)
state optional two letter state code i.e. CA = California
city optional full city name
format optional Default = json or specify xml
Core Plan Request Example
curl --header "Accept:application/json" https://api.zip-tax.com/request/v40?key=1234567890&postalcode=90264
Geo Plan Level API Request

The Geo API requires an active GEO subscription. The API supports valid U.S addresses passed in as a single parameter, or split into multiple address parameters.

Query Parameters
Parameter Required? Description
key yes Your API key
address yes Full U.S. street level address
Geo Plan Request Example
curl --header "Accept:application/json" https://api.zip-tax.com/request/v40?key=1234567890&address=1111%20S%20Figueroa%20St,%20Los%20Angeles,%20CA%2090015

Response Results

Name Description Version
geoPostalCode Requested postal code all
geoCity City all
geoCounty County all
geoState State all
taxSales Total sales tax all
taxUse Total use tax all
txbService Taxable service (values: null,Y,N,L) all
txbFreight Taxable freight (values: null,Y,N) all
stateSalesTax Portion of total sales tax from the state level v20+ only
stateUseTax Portion of total use tax from the state level v20+ only
citySalesTax Portion of total sales tax from the city level v20+ only
cityUseTax Portion of total use tax from the city level v20+ only
cityTaxCode Applicable city tax code v20+ only
countySalesTax Portion of total sales tax from the county level v20+ only
countyUseTax Portion of total use tax from the county level v20+ only
countyTaxCode Applicable county tax code v20+ only
districtSalesTax Portion of total sales tax from the district level v20+ only
districtUseTax Portion of total use tax from the district level v20+ only
district1Code District 1 tax code v40+ only
district1SalesTax Portion of total sales tax from district 1 level v40+ only
district1UseTax Portion of total use tax from district 1 level v40+ only
district2Code District 2 tax code v40+ only
district2SalesTax Portion of total sales tax from district 2 level v40+ only
district2UseTax Portion of total use tax from district 2 level v40+ only
district3Code District 3 tax code v40+ only
district3SalesTax Portion of total sales tax from district 3 level v40+ only
district3UseTax Portion of total use tax from district 3 level v40+ only
district4Code District 4 tax code v40+ only
district4SalesTax Portion of total sales tax from district 4 level v40+ only
district4UseTax Portion of total use tax from district 4 level v40+ only
district5Code District 5 tax code v40+ only
district5SalesTax Portion of total sales tax from district 5 level v40+ only
district5UseTax Portion of total use tax from district 5 level v40+ only
originDestination Location where a sale is taxed origin/destination (values: null,D,O) v40+ only
Sample JSON Response
{
  "version": "v40",
  "rCode": 100,
  "results": [
    {
      "geoPostalCode": "90264",
      "geoCity": "MALIBU",
      "geoCounty": "LOS ANGELES",
      "geoState": "CA",
      "taxSales": 0.095,
      "taxUse": 0.095,
      "txbService": "N",
      "txbFreight": "N",
      "stateSalesTax": 0.06,
      "stateUseTax": 0.06,
      "citySalesTax": 0,
      "cityUseTax": 0,
      "cityTaxCode": "",
      "countySalesTax": 0.0025,
      "countyUseTax": 0.0025,
      "countyTaxCode": "19",
      "districtSalesTax": 0.0325,
      "districtUseTax": 0.0325,
      "district1Code": "218",
      "district1SalesTax": 0,
      "district1UseTax": 0,
      "district2Code": "594",
      "district2SalesTax": 0.0225,
      "district2UseTax": 0.0225,
      "district3Code": "",
      "district3SalesTax": 0,
      "district3UseTax": 0,
      "district4Code": "19",
      "district4SalesTax": 0.01,
      "district4UseTax": 0.01,
      "district5Code": "",
      "district5SalesTax": 0,
      "district5UseTax": 0,
      "originDestination": "D"
    }
  ]
}

Response Codes

The Zip-Tax.com API returns the following response codes based on request results.

Code Reason Description
100 SUCCESS Successful API Requet
101 INVALID_KEY Key format is not valid
102 INVALID_STATE State format is not valid
103 INVALID_CITY City format is not valid
104 INVALID_POSTAL_CODE Postal code format is not valid
105 INVALID_FORMAT Query string format is not valid
106 API_ERROR Api error
107 FEATURE_NOT_ENABLED Requested feature or version not enabled
108 REQUEST_LIMIT_MET Api request limit met
109 ADDRESS_INCOMPLETE Missing address parameters

Support

For questions or comments please contact us via email at: support@zip-tax.com.