Sales Tax Real-Time Identification and Computation
SutTax Determination makes adding sales tax a breeze. It automates identification and calculation of sales taxes for transactions associated with all of your salable products. Tax rules and rates are complex and are constantly being updated, and keeping up with them is an exhaustive process. Replace your high-maintenance in-house sales tax with a real-time determination engine with comprehensive support for all jurisdictions and tax procedures.
Overview
Any sales tax determination error can negatively impact your bottom line by decreasing your sales margins, causing liabilities, or racking up potential penalties and fines. The addition of sales tax is a crucial part of every single business transaction, and you can have a more accurate and visible tax determination process using an automated system like SutTax determinations. Get an accurate sales tax determination before closing out each transaction, and you’ll optimize your operations, lower risk, and best of all, lower your cost.Key Features
- Complete Coverage: Get full support in all 50 states including city and county jurisdictions Sales tax for salable products.
- Regular Updates: Continual updated tax rules and rates in real time.
- Data Collecting and Reporting: Get flexible data import capabilities and audit support for all your tax processes.
- Configurable Tax Rules and Reports: Users can custom tax calculation to fit their needs.
- Error Notifications: Get a detail report on tax calculation errors.
- Smooth and Effective Integration: Benefit from seamless integration into ERP or your financial system.
Benefits
By integrating Avior SutTax Determination to manage your sales & use tax filing processes, you’ll be able to:- Accurately ensure compliance with tax rules and rates.
- Reduce costs by eliminating the need for IT software and Tax Accounting services.
- Customize tax rules, rates and get access to easy changes by tax analysts.
- Ensure transparency through identifying data sources and have complete visibility to how calculations are preformed.
Sales 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
Posthttps://www.developer.aviordata.net/1.0/tax/user/login.jsonHeaders: 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
Posthttps://www.developer.aviordata.net/1.0/tax/sut/getHeaders: 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
posthttps://www.developer.aviordata.net/1.0/tax/user/logout.jsonheaders: 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)