Skip to main content

AlcTax Determination

Beverage Alcohol Tax Determination

Now you can automate beverage alcohol tax identification, computation, processing, and filing. Integrates seamlessly with existing back-office systems.
banner

Alcoholic Beverages Excise Tax Real-Time Identification and Computation

Avior Alcoholic Beverages Determination (Avior AlcTax-D) provides automated identification and calculation of indirect taxes for transactions associated with distilled spirit, beer, wine, and other alcoholic beverages products. With tax complexity of ever-changing tax rules and rates, in-house beverage alcohol 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 beverage alcohol 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 beverage alcohol suppliers, distributors, and traders. Sellers can clearly understand tax ramifications before closing a transaction, causing tax optimization, risk reduction, and lower costs.
AlcTax Determination Block Diagram
Determination connects to any back-office accounting system, simplifying and automating the taxes necessary for any beverage alcohol 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, AlcTax 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. AlcTax 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 Support for all major U.S. Jurisdictions - Produces signature-ready tax return from alcoholic beverages transaction data, with electronic or paper-based filing for all federal, state, county, and city jurisdictions, including all alcoholic beverages excise taxes and sales & use returns
  2. Update Automation - Periodic updates of tax rules, rates and forms, for all major U.S. jurisdictions
  3. System Integration - Data adapters for most popular back-office systems
  4. Customized Tax Rules - tax rules can be changed or customized by tax accountants, without software development or IT help
  5. Process Transparency - Clear visibility and notification of tax workflow cycle status, including tax return generation, review, approval, filing, acceptance, and amendment processes
  6. Schedule Query - Generate tax data reports for analysis, audit answers, or customer care
  7. Cloud-based Deployment - Use as service with our highly available and secure software application.

Benefits

By integrating AlcTax Determination to manage your alcoholic beverages tax filing processes, you’ll be able to:
  1. Increase tax filing productivity, and eliminate manual data collection and tax calculation by automating the preparation and filing process
  2. Eliminate tax errors and reduce risk of penalties through automated data validation, comprehensive tax content, and timely content updates and implementation
  3. Greatly reduce development time and cost through built-in system integration, data extract tools, comprehensive jurisdiction support, and flexible workflow based architecture
  4. Ensure business agility by making it effortless to expand quickly to new regions, add new transaction types, or support new customer base
  5. Minimize IT costs by eliminating the need for IT development, maintenance, and support for tax reporting

Alcohol Tax Development

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

Test Excise Tax Alcohol 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 to classify the SKU by alcohol type - Beer, Cider, Liquor, Wine
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 Items : Items per selling unit
Product UOM : Unit of measurement - gallon, liter, milliliter
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, Consumer
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 Volume : Taxable Volume
Currency : USD

Test Excise Tax Alcohol Response

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 Alcohol 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 Alcohol POST Request
{ // transactions
 "company":"Alcohol Dist Inc.",
 "invoice_number":"141826",
 "invoice_date":"20150525",
 "line_items":[
  { 
    "transaction_number":"123",
    "product_category":"liquor",
    "product_upc":"",
    "product_sku":"",
    "product_description":"",
    "product_uom":"gallon",
    "product_items":"20",
    "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 Alcohol Tax Response

{ // transactions
 "company":"Alcohol Dist Inc."
 "invoice_number":"141826",
 "invoice_date":"20150525",
 "line_items":[
  { 
    "transaction_number":"123",
    "product_category":"liquor",
    "product_upc":"",
    "product_sku":"",
    "product_description":"",
    "product_uom":"gallon",
    "product_items":"20",
    "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":"3.30",
              "jur_tax_amount":"30.55"
            }
    ]
  }
 ]
}

Test Excise Alcohol 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/alc/get Production: POST https://www.tax.aviordata.net/1.0/tax/alc/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/alc/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" => "liquor",
    "product_upc" => "",
    "product_sku" => "",
    "product_description" => "",
    "product_uom" => "gallon",
    "product_items" => "20",
    "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",
);

$ArrayOfLineItems = array($ArrayOfLineItem);

$Transaction = array(
   "company" => "Alcohol 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.'alc/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#
ArrayOfLineItem = new
{
    transaction_number = "123",
    product_category = "liquor",
    product_upc = "",
    product_sku = "",
    product_description = "",
    product_uom = "gallon",
    product_items = "20",
    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",
};

ArrayOfLineItems = new[]
{
    ArrayOfLineItem
};

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

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 + "alc/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" => "Alcohol Dist Inc.",
        "invoice_number" => "141826",
        "invoice_date" => "20150525",
        "line_items" => [
            {
                "transaction_number" => "123",
                "product_category" => "liquor",
                "product_upc" => "",
                "product_sku" => "",
                "product_description" => "",
                "product_uom" => "gallon",
                "product_items" => "20",
                "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",
            }
        ]
    }
}.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 + "alc/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)