Skip to main content

SutTax Determination

Sales & Use Tax Determination

Get comprehensive coverage needed to tackle the complexity of ever-changing tax rules and rates related to sales & use taxes for all jurisdictions.
banner

Sales Tax Real-Time Identification and Computation

SutTax Determination provides automated identification and calculation of sales taxes for transactions associated with salable products. With tax complexity of ever-changing tax rules and rates, in-house sales 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

Sales taxes are an important part of a sales 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 retailers and other filers. Sellers can clearly understand tax ramifications before closing a transaction, causing tax optimization, risk reduction, and lower costs.
SutTax Determination Block Diagram
Determination connects to any back-office accounting system, simplifying and automating the taxes necessary for any 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, SutTax 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. SutTax 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

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

Benefits

By integrating SutTax Determination to manage your sales & use 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

Sales & Use Tax Development

Identification and computation of sales taxes in real-time for financial transactions involving taxable products.
SutTax Determination integrates with existing financial, billing, e-commerce, or point of sale system to automate the process of identifying and computing sales taxes on taxable transactions. It automates the process of completing and electronically filing sales & use tax returns and schedules. It’s an easy to use, off-the-shelf tax solution for retailers, distributors, and other sellers, with extensive support for sales & use taxes.

Test Sales Tax Request

Company : Company name
User Id : Company user id or company code
Transaction number : Invoice number
Transaction Date : Invoice date
Street : Address of origin/destination
City : City of origin/destination 
County : County of origin/destination 
State : State of origin/destination 
Zip code : Zip code of origin/destination 
Zip plus : Zip extension of origin/destination
SKU : Unique item code assigned exclusively for each product by the distributor
Amount : Dollar amount charged for a particular SKU to a customer.
Discount : Discount amount
Shipping : Shipping amount for the order

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

Test Sales Tax 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 Sales Tax POST Request
  {
    "company":"Product Dist Inc.",
    "transaction_number":"123",
    "transaction_date":"20160623",
    "origin_street":"5904 N. MacArthur",
    "origin_city":"Irving",
    "origin_county":"Dallas",
    "origin_state":"TX",
    "origin_zip":"75038",
    "origin_plus":"1234",
    "destination_address":"123 Palm Grove Ln",
    "destination_city":"Los Angeles",
    "destination_county":"Los Angeles",
    "destination_state":"CA",
    "destination_zip":"90002",
    "destination_zip_plus":"1234",
    "shipping":"4.50",
    "line_items":[
       {
          "number":"123",
          "sku":"12345",
          "tax_code":"20070",
          "amount":"11.50",
          "discount":"0.50",
       }
    ]
  }


Test Sales Tax Response

{ // transactions
"company":"Product Dist Inc."
"invoice_number":"141826",
"invoice_date":"20150525",
"line_items":[
  {
    "transaction_date":"20150523",
    "transaction_number":"123",
    "origin_street":"5904 N. MacArthur",
    "origin_city":"Irving",
    "origin_county":"Dallas",
    "origin_state":"TX",
    "origin_zip":"75038",
    "origin_zip_plus":"5001",
    "destination_address":"123 Palm Grove Ln",
    "destination_city":"Los Angeles",
    "destination_county":"Los Angeles",
    "destination_state":"CA",
    "destination_zip":"90002",
    "destination_zip_plus":"1234",
    "shipping":"4.50",
    "line_items":[
       {
          "sku":"12345",
          "tax_code":"20070",
          "amount":"11.50",
          "discount":"0.50",
          "result_type":"Success",
          "taxibility_code":"Taxable",
          "result_code":"Success",
          "tax_results":[ 
            {
              "jurisdiction":"state",
              "jur_name":"CA",
              "jur_tax_type":"sales",
              "juris_tax_rate":"9.0",
              "jur_tax_amount":'0.99"
            }
          ]
       }
    ]
  }
]
}

Test Sales 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/sut/get Production: POST https://www.tax.aviordata.net/1.0/tax/sut/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/sut/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",
    "sku" => "1234",
    "tax_code" => "0",
    "amount" => "11.50",
    "discount" => "1.50",
);
    
$ArrayOfLineItems = array($ArrayOfLineItem);

$Transaction = array(
   "company" => "Product Dist Inc.",
   "transaction_number" => "141826",
   "transaction_date" => "20160525",
   "origin_street" => "5904 N. MacArthur",
   "origin_city" => "Irving",
   "origin_county" => "Dallas",
   "origin_state" => "TX",
   "origin_zip" => "75038",
   "origin_plus" => "5001",
   "destination_address" => "123 Palm Grove Ln",
   "destination_city" => "los angeles",
   "destination_county" => "los angeles",
   "destination_state" => "CA",
   "destination_zip" => "90002",
   "destination_zip_plus" => "1234",
   "shipping" => "4.50",
   "line_items" => $ArrayOfLineItems
);

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

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

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

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.'sut/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
{
    number = "123",
    sku = "1234",
    tax_code = "0",
    amount = "11.50",
    discount = "1.50",
};

var ArrayOfLineItems = new[]
{
    ArrayOfLineItem
};

var Transaction = new
{
   company = "Product Dist Inc.",
   transaction_number = "141826",
   transaction_date = "20160525",
   origin_street = "5904 N. MacArthur",
   origin_city = "Irving",
   origin_county = "Dallas",
   origin_state = "TX",
   origin_zip = "75038",
   origin_plus = "5001",
   destination_address = "123 Palm Grove Ln",
   destination_city = "los angeles",
   destination_county = "los angeles",
   destination_state = "CA",
   destination_zip = "90002",
   destination_zip_plus = "1234",
   shipping = "4.50",
   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 + "sut/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" => "Product Dist Inc.",
        "transaction_number' => "141826",
        "transaction_date" => "20160525",
        "origin_street" => "5904 N. MacArthur",
        "origin_city" => "Irving",
        "origin_county" => "Dallas",
        "origin_state" => "TX",
        "origin_zip" => "75038",
        "origin_plus" => "5001",
        "destination_address" => "123 Palm Grove Ln",
        "destination_city" => "los angeles",
        "destination_county" => "los angeles",
        "destination_state" => "CA",
        "destination_zip" => "90002",
        "destination_zip_plus" => "1234",
        "shipping" => "4.50",
        line_items => [
            {
               "number" => "123",
               "sku" => "1234",
               "tax_code" => "0",
               "amount" => "11.50",
               "discount" => "1.50",

            }
        ]
     }
}.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 + "sut/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)