Skip to main content

TobTax Determination

Tobacco Tax Determination

Now you can ensure compliance, reduce costs, mitigate risks, improve accuracy, and maximize efficiency by using TobTax.

Tobacco Excise Tax Real-Time Identification and Computation

TobTax Determination provides automated identification and calculation of indirect taxes for transactions associated with tobacco products. With tax complexity of ever-changing tax rules and rates, in-house tobacco tax system is hard to maintain and can be easily replaced by its real-time determination engine with comprehensive support for all jurisdictions and tax procedures.

Overview

Excise and Sales & Use taxes are an important part of a tobacco transaction. Any tax determination errors can impact sales margins, cause tax liabilities, and potentially jurisdictions penalties and fines. A more accurate and transparent tax determination engine will greatly benefit tobacco suppliers, distributors, and traders. Sellers can clearly understand tax ramifications before closing a transaction, causing tax optimization, risk reduction, and lower costs.
TobTax Determination Block Diagram
Determination connects to any back-office accounting system, simplifying and automating the taxes necessary for any tobacco transaction like invoices, sales and purchases orders. This has major impact on decreasing IT costs associated with continuous management of custom software and continuously changing jurisdictions tax rules and rates.

Tax analysts can stop spending time on monitoring, implementing, and managing support for new tax rules and jurisdictions. With on-going timely tax rules and rates updates, TobTax Determination guarantees compliance accuracy, relieving tax departments from dealing with the complexity of changing rules and rates. Customer support team will spend less time processing customer inquiries, resulting in great costs reduction. TobTax makes it effortless to clearly understand calculated tax amounts and the rules and rates that used into their determination. With thousands of tax rates and continued rules changes, this tax determination transparency is clearly provides benefits for IT, Tax Accounting, and customers.

Key Features

  1. Comprehensive Coverage - Full support of U.S. Federal and all 50 states including city and county jurisdictions Excise and Sales & Use tax for tobacco products
  2. Tax Updates - Continually updated tax rules and rates
  3. Data Importing and Reporting - Flexible data import capabilities and audit support
  4. User Configurable Tax Rules and Reports - Custom tax calculation
  5. Error Reporting - Detailed tax calculation errors
  6. Seamless Integration - Full integration into ERP or financial system

Benefits

By integrating TobTax Determination to manage your tobacco tax filing processes, you’ll be able to:
  1. Accuracy - Tax accuracy ensures compliance with tax rules and rates
  2. Reduce Costs - Reduce IT software and Tax Accounting costs
  3. Custom Rules and Rates - Tax rules and rates can be easily changed by tax analysts
  4. Gain Transparency - Identify data sources and get complete visibility to how calculation preformed

Tobacco Tax Development

Identification and computation of excise taxes in real-time for financial transactions involving tobacco products.
TobTax Determination integrates with existing financial, billing, e-commerce, or point of sale system to automate the process of identifying and computing indirect taxes on tobacco transactions. It automates the process of completing and electronically filing tobacco returns and schedules. It’s an easy to use, off-the-shelf tax solution for tobacco suppliers, distributors, and traders, with extensive support for both weight-based and valuation taxes, including: excise and sales & use taxes.

Test Excise Tax Tobacco Request

Company : Company name
User Id : Company user id or company code
Invoice number : Invoice number
Invoice Date : Invoice date
Transaction number : Transaction number
Product Category : Predefined Category Code to classify the SKU by product type. "Cigarettes", "Moist Snuff", "Cigars", "Little Cigars", "Roll Your Own", "Chewing Tobacco", "Snuff", "Pipe Tobacco"
Product UPC : Industry standard UPC of the selling unit
Product SKU : Unique item code assigned exclusively for each product by the distributor
Product Description : Detailed description of the SKU. Must contain brand name and attributes of the item
Product Type : "All Natural Leaf", "None Tobacco Filler", "Other"
Product UOM : The unit in which the Item Type is sold such as "case", "pack", "pouch", "carton", "can"
Ship to name : Specific banner name of the customer receiving shipment
Ship to FEIN : Customer FEIN
Ship to address : Ship to address of the customer receiving shipment
Ship to city : City of the customer receiving shipment 
Ship to county : County of the customer receiving shipment 
Ship to state : State of the customer receiving shipment 
Ship to zip code : Zip code of the customer receiving shipment 
Ship to country : Country of the customer receiving shipment "US"
Ship to class of trade : Retailer, Distributor, Wholesaler,Consumer,Tribal,Military
Ship to permit number : Customer license number
Ship to tax number : Customer Tax identification
Ship to account number : Customer account number issued by jurisdiction like state, county, or city
Quantity : Total number of selling units
Unit price : Dollar amount charged for a particular SKU to a customer.
Taxable : Taxable amount
Currency : USD

Test Excise Tax Tobacco Response Success
Result code : Success
Jurisdiction : Jurisdiction type "state", "county", "city"
Jurisdiction name : Jurisdiction name "TX"
Jurisdiction tax rate : Jurisdiction tax rate "1.25"
Jurisdiction tax amount : Jurisdiction tax amount "3.35"

Test Excise Tax Tobacco Response Error
Result code : "Error, Warning, Exception"
Summary : "State unavailable or incorrect format"
Details : "State must be two character state abbreviation"
Refer to field : "ship_to_state"
Severity : "Error, Warning, Exception"

REST JSON API V1.5

Test Excise Tax Tobacco POST Request
{ // transactions
 "company":"Tobacco Dist Inc.",
 "invoice_number":"141826",
 "invoice_date":"20150525",
 "line_items":[
  { 
    "transaction_number":"123",
    "product_category":"Cigars",
    "product_upc":"",
    "product_sku":"",
    "product_description":"",
    "product_type":"",
    "product_uom":"case",
    "ship_to_name":"Cash & Carry",
    "ship_to_fein":"123456789",
    "ship_to_address":"123 Palm Grove Ln",
    "ship_to_city":"Los Angeles",
    "ship_to_county":"Orange",
    "ship_to_state":"CA",
    "ship_to_zip":"90002",
    "ship_to_country":"USA",
    "ship_to_class_of_trade":"Wholesaler",
    "ship_to_permit_number":"LIC-960",
    "ship_to_tax_number":"123",
    "ship_to_account_number":"123",
    "quantity":"20",
    "unit_price":"3.99",
    "taxable":"3.99",
    "currency":"USD",
  }
 ]
}

Test Excise Tobacco Tax Response

{ // transactions
 "company":"Tobacco Dist Inc."
 "invoice_number":"141826",
 "invoice_date":"20150525",
 "line_items":[
  { 
    "transaction_number":"123",
    "product_category":"Cigars",
    "product_upc":"",
    "product_sku":"",
    "product_description":"",
    "product_type":"",
    "product_uom":"case",
    "ship_to_name":"Cash & Carry",
    "ship_to_fein":"123456789",
    "ship_to_address":"123 Palm Grove Ln",
    "ship_to_city":"Los Angeles",
    "ship_to_county":"Orange",
    "ship_to_state":"CA",
    "ship_to_zip":"90002",
    "ship_to_country":"USA",
    "ship_to_class_of_trade":"Wholesaler",
    "ship_to_permit_number":"LIC-960",
    "ship_to_tax_number":"123",
    "ship_to_account_number":"123",
    "quantity":"20",
    "unit_price":"3.99",
    "taxable":"3.99",
    "currency":"USD",
    "result_code":"Success",
    "tax_results":[ 
            {
              "jurisdiction":"state",
              "jur_name":"CA",
              "jur_tax_rate":"27.3",
              "jur_tax_amount":"21.78"
            }
    ]
  }
 ]
}

Test Excise Tobacco Tax Error Messages

{
    "result_code":"Error",
    "messages":[
        {
            "summary":"State unavailable or incorrect format",
            "details":"State must be two character state abbreviation",
            "refer_to_field":"ship_to_state",
            "severity":"Error"
        }
    ]
}

End Point

URL AND METHOD
Development:
POST https://www.developer.aviordata.net/1.0/tax/tob/get
Production:
POST https://www.tax.aviordata.net/1.0/tax/tob/get

LOGIN

Post
https://www.developer.aviordata.net/1.0/tax/user/login.json
Headers: Accept:application/json Content-type: application/json Body: {"username":"avior", "password":"1234"} RESPONSE: {'session_name': 'SSESS15015b0cac82dbe973e0c259d028a34f', 'sessid': u'INa40aCVAbcBKvF1ODyPJXulhrvPa4-sqqKZOAdTnzo', 'token': u'u3FNNRkQRV_prmo5Cc3w3agfOyOhgWa0wyozltzwngE'}

REQUEST

Post
https://www.developer.aviordata.net/1.0/tax/tob/get
Headers: Accept:application/json Content-type: application/json application/json cookie: SSESS15015b0cac82dbe973e0c259d028a34f=u'INa40aCVAbcBKvF1ODyPJXulhrvPa4- sqqKZOAdTnzo x-csrf-token: u3FNNRkQRV_prmo5Cc3w3agfOyOhgWa0wyozltzwngE Body: {"Transaction":{ //transactions ...}} RESPONSE: {"Transaction":{ //transactions ,"result_code":"Success", "tax_results":[ {...} ] }} or {"Transaction":{ //transactions ,"result_code":"Error", "messages":[ {...} ] }}

LOGOUT

post
https://www.developer.aviordata.net/1.0/tax/user/logout.json
headers: Accept:application/json Content-type: application/json application/json cookie: SSESS15015b0cac82dbe973e0c259d028a34f=u'INa40aCVAbcBKvF1ODyPJXulhrvPa4- sqqKZOAdTnzo x-csrf-token: u3FNNRkQRV_prmo5Cc3w3agfOyOhgWa0wyozltzwngE response body: [true]

Client Sample

PHP
 "123",
    "product_category" => "Cigars",
    "product_upc" => "681000",
    "product_sku" => "681000",
    "product_description" => "",
    "product_type" => "",
    "product_uom" => "case",
    "ship_to_name" => "Cash & Carry",
    "ship_to_fein" => "123456789",
    "ship_to_address" => "123 Palm Grove Ln",
    "ship_to_city" => "Los Angeles",
    "ship_to_county" => "Orange",
    "ship_to_state" => "CA",
    "ship_to_zip" => "90002",
    "ship_to_country" => "USA",
    "ship_to_class_of_trade" => "Wholesaler",
    "ship_to_permit_number" => "LIC-960",
    "ship_to_tax_number" => "123",
    "ship_to_account_number" => "123",
    "carrier_name" => "DESERT REFINED",
    "carrier_fein" => "860634977",
    "manufacturer" => "",
    "manufacturer_address" => "",	
    "quantity" => "20",
    "unit_price" => "3.99",
    "taxable" => "3.99",
    "currency" => "USD"
);
$ArrayOfLineItems = array($ArrayOfLineItem);

$Transaction = array(
   "company" => "Tobacco Dist Inc.",
   "invoice_number" => "141826",
   "invoice_date" => "20150525",
   "line_items" => $ArrayOfLineItems
);

$data = array("transaction" => $Transaction);

$url = 'https://www.developer.aviordata.net/1.0/tax/';

//Initiate cURL.
$ch = curl_init($url.'user/login.json');
curl_setopt($ch, CURLOPT_VERBOSE, true);

// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$jsonData = array(
    'username' => 'avior',
    'password' => '1234'
);

//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);
 
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
 
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
 
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','accept:application/json','Connection: keep-alive'));
 
//Execute the request
$result = curl_exec($ch);
$resp = json_decode($result, true);

curl_setopt($ch, CURLOPT_URL, $url.'tob/get');
$DataEncoded = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $DataEncoded);
$session_name = $resp['session_name'];
$sessid = $resp['sessid'];
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','accept:application/json','Connection: keep-alive','X-CSRFToken: '.$resp['token'],'Cookie: '.$session_name.'='.$sessid));

$result = curl_exec($ch);
print_r($result);
?>

Client Sample

C#
var ArrayOfLineItem = new
{
    transaction_number = "123",
    product_category = "Cigars",
    product_upc = "681000",
    product_sku = "681000",
    product_description = "",
    product_type = "",
    product_uom = "case",
    ship_to_name = "Cash & Carry",
    ship_to_fein = "123456789",
    ship_to_address = "123 Palm Grove Ln",
    ship_to_city = "Los Angeles",
    ship_to_county = "Orange",
    ship_to_state = "CA",
    ship_to_zip = "90002",
    ship_to_country = "USA",
    ship_to_class_of_trade = "Wholesaler",
    ship_to_permit_number = "LIC-960",
    ship_to_tax_number = "123",
    ship_to_account_number = "123",
    carrier_name = "DESERT REFINED",
    carrier_fein = "860634977",
    manufacturer = "",
    manufacturer_address = "",
    quantity = "20",
    unit_price = "3.99",
    taxable = "3.99",
    currency = "USD"
};

var ArrayOfLineItems = new[]
{
    ArrayOfLineItem
};

var Transaction = new
{
    company = "Tobacco Dist Inc.",
    invoice_number = "141826",
    invoice_date = "20150525",
    line_items = ArrayOfLineItems
};

var data = new
{
    transaction = Transaction,
};

// login request
var login = new
{
    username = "avior",
    password = "1234"
};
var api_url = "https://www.developer.aviordata.net/1.0/tax/"

var request = (HttpWebRequest)WebRequest.Create(api_url + "user/login.json");
request.ContentType = "application/json";
request.Accept = "application/json";
request.Method = "POST";

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
    string json = new JavaScriptSerializer().Serialize(login);
    streamWriter.Write(json);
}

// login response
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
    var jss = new JavaScriptSerializer();
    var resp = jss.Deserialize>(result);
}

var token = resp["token"].ToString();
var session_name = resp["session_name"].ToString();
var sessid = resp["sessid"].ToString();

// tax request
var request = (HttpWebRequest)WebRequest.Create(api_url + "tob/get");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["x-csrf-token"] = token;
request.Headers["cookie"] = session_name + "=" + session_id;

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
    string json = new JavaScriptSerializer().Serialize(data);
    streamWriter.Write(json);
}

// tax response
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
    var jss = new JavaScriptSerializer();
    var resp = jss.Deserialize>(result);
}
var result_code = resp["transaction"]["line_items"][0]["result_code"].ToString();
if (result_code == "Success")
{
    Console.WriteLine(result_code);
}

// logout
var logout = new
{
};

var request = (HttpWebRequest)WebRequest.Create(api_url + "user/logout.json");
request.ContentType = "application/json";
request.Method = "POST";
request.Headers["x-csrf-token"] = token;
request.Headers["cookie"] = session_name + "=" + session_id;

using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
    string json = new JavaScriptSerializer().Serialize(data);
    streamWriter.Write(json);
}

Client Sample

Ruby
require 'net/http'
require 'json'
require 'uri'

data = {
    "transaction" => {
        "company" => "Tobacco Dist Inc.",
        "invoice_number" => "141826",
        "invoice_date" => "20150525",
        "line_items" => [
            {
                "transaction_number" => "123",
                "product_category" => "cigars",
                "product_upc" => "681000",
                "product_sku" => "681000",
                "product_description" => "",
                "product_weight" => "2.0",
                "product_type" => "",
                "product_uom" => "case",
                "product_cost" => "2.90",
                "product_items" => "10",
                "ship_to_name" => "Cash & Carry",
                "ship_to_fein" => "123456789",
                "ship_to_address" => "123 Palm Grove Ln",
                "ship_to_city" => "Los Angeles",
                "ship_to_county" => "Orange",
                "ship_to_state" => "CA",
                "ship_to_zip" => "90002",
                "ship_to_country" => "USA",
                "ship_to_class_of_trade" => "Wholesaler",
                "ship_to_permit_number" => "LIC-960",
                "ship_to_tax_number" => "123",
                "ship_to_account_number" => "123",
                "carrier_name" => "DESERT REFINED",
                "carrier_fein" => "860634977",
                "manufacturer" => "",
                "manufacturer_address" => "",
                "quantity" => "20",
                "unit_price" => "3.99",
                "taxable" => "3.99",
                "currency" => "USD"
            }
        ]
    }
}.to_json


login = {
    "username" => "avior",
    "password" => "1234"
}.to_json

logout = {
}.to_json

api_url = "https://www.developer.aviordata.net/1.0/tax/"

# login request
uri = URI.parse(api_url + "user/login.json")
http = Net::HTTP.new(uri.host, uri.port)
header = {
    'Content-Type' => 'application/json',
    'Accept' => 'application/json'
};
request = Net::HTTP::Post.new(
                              uri.request_uri,
                              header
)
request.body = json
response = http.request(request)

# login response
resp = response.body
puts(resp)
rdata = JSON.parse(resp)
token = rdata['token']
session_name = rdata['session_name']
sessid = rdata['sessid']

# tax request
uri = URI.parse(api_url + "tob/get")
http = Net::HTTP.new(uri.host, uri.port)
header['x-csrf-token'] = token;
header['cookie'] = cookie;
request = Net::HTTP::Post.new(
                              uri.request_uri,
                              header
)
request.body = json
response = http.request(request)

# tax response
resp = response.body
puts(resp)
rdata = JSON.parse(resp)
result_code = rdata["transaction"]["line_items"][0]["result_code"]
if result_code == 'Success'
    puts 'result: '+result_code
end

# logout request
uri = URI.parse(api_url + "user/logout.json")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(
                              uri.request_uri,
                              header
)
request.body = json
response = http.request(request)

Client Sample

Python
#!/usr/bin/python

import requests
import json
import logging

try:
    import http.client as http_client
except ImportError:
    # Python 2
    import httplib as http_client


http_client.HTTPConnection.debuglevel = 1
logging.basicConfig() 
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

#--------------------------------------------------------------------
# class

class ApiClient():
    api_url = 'https://www.developer.aviordata.net/1.0/tax'
    session = requests.Session()
    
    def __init__(self, username, password):
        self.username = username
        self.password = password

        try:
            self.login()
        except requests.HTTPError:
            sys.exit('Username-password invalid')
        self.session.headers.update({'X-CSRF-Token': self.token,
                                    'cookie': self.cookie})

    def login(self):
        print 'n--- login '+self.api_url+' ---n'
        headers = {'content-type': 'application/json'}
        payload = {
            'username': self.username,
            'password': self.password
        }
        r = requests.post(self.api_url + '/user/login.json',
                          data=json.dumps(payload),
                          headers=headers)

        r.raise_for_status()
      
        payload_dec = json.loads(r.content)
        print payload_dec
        self.token = payload_dec['token']
        self.cookie = payload_dec['session_name']+'='+payload_dec['sessid']

    def test_post(self, state = 'CA', category = 'cigars'):
        print 'n--- Post ---n'
        payload = self.setpayload(state, category)
        
        ''' get tax '''
        self.session.headers.update({
                                    'content-type': 'application/json',
                                    'accept':'application/json'})
        
        # send post
        response = self.session.post(self.api_url+'/tob/get',
                                     data=json.dumps(payload))
        
        # decode received data
        print 'n--- Response ---n'
        payload_dec = json.loads(response.content)
        result_code = payload_dec["transaction"]["line_items"][0]["result_code"]
        print result_code
        if result_code == 'Success':
            print payload_dec["transaction"]["line_items"][0]["tax_results"]

 
    def setpayload(self, state = 'CA', category = 'cigars'):
        ''' set payload '''
        ArrayOfLineItem = dict(
                               transaction_number = "123",
                               product_category = category,
                               product_upc = "681000",
                               product_sku = "681000",
                               product_description = "",
                               product_weight = "2.0",
                               product_type = "",
                               product_uom = "case",
                               product_cost = "2.90",
                               product_items = "10",
                               ship_to_name = "Cash & Carry",
                               ship_to_fein = "123456789",
                               ship_to_address = "123 Palm Grove Ln",
                               ship_to_city = "Los Angeles",
                               ship_to_county = "Orange",
                               ship_to_state = state.upper(),
                               ship_to_zip = "90002",
                               ship_to_country = "USA",
                               ship_to_class_of_trade = "Wholesaler",
                               ship_to_permit_number = "LIC-960",
                               ship_to_tax_number = "123",
                               ship_to_account_number = "123",
                               carrier_name = "DESERT REFINED",
                               carrier_fein = "860634977",
                               manufacturer = "",
                               manufacturer_address = "",
                               quantity = "20",
                               unit_price = "3.99",
                               taxable = "3.99",
                               currency = "USD"
                               )
        ArrayOfLineItems = [ArrayOfLineItem]
       
        Transaction = dict(
                          company = "Tobacco Dist Inc.",
                          invoice_number = "141826",
                          invoice_date = "20190525",
                          line_items = ArrayOfLineItems
                          )
           
        data = dict(transaction = Transaction)
        return data

#--------------------------------------------------------------------
api = ApiClient('username', 'password')
api.test_post()

$ python test_tax_tob_post.py

--- login https://www.developer.aviordata.net/1.0/tax ---

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): www.developer.aviordata.net
send: 'POST /1.0/tax/user/login.json HTTP/1.1rnHost: www.developer.aviordata.netrnConnection: keep-alivernAccept-Encoding: gzip, deflaternAccept: */*rnUser-Agent: python-requests/2.10.0rncontent-type: application/jsonrnContent-Length: 43rnrn{"username": "username", "password": "password"}'
reply: 'HTTP/1.1 200 OKrn'
header: Date:  Wed, 11 Dec 2019 15:03:03 GMT
header: Server: Apache/2.2.22 (Ubuntu)
header: X-Powered-By: PHP/5.3.10-1ubuntu3.23
header: Expires: Sun, 19 Nov 1978 05:00:00 GMT
header: Cache-Control: no-cache, must-revalidate
header: X-Content-Type-Options: nosniff
header: Set-Cookie: SSESS15015b0cac82dbe973e0c259d028a34f=Yjib26_M2i32uVtvYGMhVFc-a82wVNLC8UeBpHi_eeM; expires=Fri, 03-Jan-2020 18:36:24 GMT; path=/; domain=.developer.aviordata.net; secure; HttpOnly
header: Content-Length: 734
header: Keep-Alive: timeout=5, max=100
header: Connection: Keep-Alive
header: Content-Type: application/json
DEBUG:requests.packages.urllib3.connectionpool:"POST /1.0/tax/user/login.json HTTP/1.1" 200 734
{u'session_name': u'SSESS15015b0cac82dbe973e0c259d028a34f', u'sessid': u'Yjib26_M2i32uVtvYGMhVFc-a82wVNLC8UeBpHi_eeM', u'token': u'jOHYhNu2PxFHqUJGoF4Ycs8VCFS5Fux1rTsJRuOdmFE', u'user': {u'status': u'1', u'picture': None, u'rdf_mapping': {u'url': {u'predicates': [u'schema:url'], u'type': u'rel'}, u'homepage': {u'predicates': [u'foaf:page'], u'type': u'rel'}, u'name': {u'predicates': [u'schema:name']}, u'rdftype': [u'schema:Person', u'sioc:UserAccount']}, u'uid': u'578', u'language': u'', u'created': u'1404741913', u'og_user_node': [], u'timezone': u'', u'access': u'1597244158', u'theme': u'', u'roles': {u'2': u'authenticated user'}, u'signature': u'', u'signature_format': u'', u'mail': u'support3@aviordata.com', u'login': 1597244583, u'data': {u'form_build_id': u'form-9c596eb08615ea04bace6519d474bc56', u'contact': 0}, u'name': u'avior'}}

--- Post ---

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): www.developer.aviordata.net
send: 'POST /1.0/tax/tob/get HTTP/1.1rnHost: www.developer.aviordata.netrnConnection: keep-alivernAccept-Encoding: gzip, deflaternaccept: application/jsonrnUser-Agent: python-requests/2.10.0rncookie: SSESS15015b0cac82dbe973e0c259d028a34f=Yjib26_M2i32uVtvYGMhVFc-a82wVNLC8UeBpHi_eeMrnX-CSRF-Token: jOHYhNu2PxFHqUJGoF4Ycs8VCFS5Fux1rTsJRuOdmFErncontent-type: application/jsonrnContent-Length: 934rnrn{"transaction": {"line_items": [{"ship_to_address": "123 Palm Grove Ln", "ship_to_county": "Orange", "product_uom": "case", "product_category": "cigars", "ship_to_country": "USA", "product_description": "", "currency": "USD", "ship_to_tax_number": "123", "product_upc": "681000", "ship_to_zip": "90002", "product_sku": "681000", "ship_to_permit_number": "LIC-960", "carrier_name": "DESERT REFINED", "product_weight": "2.0", "manufacturer": "", "product_type": "", "product_items": "10", "ship_to_name": "Cash & Carry", "ship_to_account_number": "123", "product_cost": "2.90", "ship_to_city": "Los Angeles", "ship_to_state": "CA", "unit_price": "3.99", "taxable": "3.99", "ship_to_class_of_trade": "Wholesaler", "transaction_number": "123", "manufacturer_address": "", "ship_to_fein": "123456789", "carrier_fein": "860634977", "quantity": "20"}], "company": "Tobacco Dist Inc.", "invoice_date": "20190525", "invoice_number": "141826"}}'
reply: 'HTTP/1.1 200 OKrn'
header: Date:  Wed, 11 Dec 2019 15:03:04 GMT
header: Server: Apache/2.2.22 (Ubuntu)
header: X-Powered-By: PHP/5.3.10-1ubuntu3.23
header: Expires: Sun, 19 Nov 1978 05:00:00 GMT
header: Cache-Control: no-cache, must-revalidate
header: X-Content-Type-Options: nosniff
header: Vary: Accept
header: Content-Length: 938
header: Keep-Alive: timeout=5, max=100
header: Connection: Keep-Alive
header: Content-Type: application/json
DEBUG:requests.packages.urllib3.connectionpool:"POST /1.0/tax/tob/get HTTP/1.1" 200 938

--- Response ---

Success
[{u'jur_tax_type': u'excise', u'jur_name': u'CA', u'jurisdiction': u'state', u'jur_tax_amount': u'33.02', u'jur_tax_rate': u'56.93'}]