Appendixes
Appendix A - Implementation Examples
For development and testing, please use the following URL:
https://testapi.taxrating.net/Services/V07/SureTax.asmx
PHP
Request using cURL
// Web Request Header
$header["ClientNumber"] = "000000000";
$header["BusinessUnit"] = "My Biz Unit";
$header["ValidationKey"] = "13290031-F004-4F00-BMN3-E979D6749B88";
$header["DataYear"] = "2011"
$header["DataMonth"] = "9";
$header["TotalRevenue"] = 100.00;
$header["ReturnFileCode"] = "0";
$header["ClientTracking"] = "1234";
$header["ResponseGroup"] = "00";
$header["ResponseType"] = "D";
// Input Record 1
$datarecord["LineNumber"] = "1";
$datarecord["InvoiceNumber"] = "112233";
$datarecord["CustomerNumber"] = "000000001";
$datarecord["OrigNumber"] = "2122102100";
$datarecord["TermNumber"] = "2122102100";
$datarecord["BillToNumber"]= "2122102100";
$datarecord["Zipcode"] = "";
$datarecord["Plus4"] = "";
$datarecord["TransDate"] = "2011-09-01";
$datarecord["Revenue"] = 100.00;
$datarecord["Units"] = 1;
$datarecord["UnitType"] = "";
$datarecord["TaxIncludedCode"] = "0";
$datarecord["TaxSitusRule"] = "01";
$datarecord["TransTypeCode"] = "010101";
$datarecord["SalesTypeCode"] = "R";
$datarecord["RegulatoryCode"] = "01"; $datarecord["TaxExemptionCodeList"] = array( "00");
// $post_type determines what encoding type – either XML or JSON
if( $post_type == 'xml' ) {
$xmlclass = 'Request';
$url1 = "http://www.w3.org/2001/XMLSchema-instance";
$url2 = "http://www.w3.org/2001/XMLSchema";
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= "<" . $xmlclass . ' xmlns:xsi="' .$url1 .'" ';
$xml .= ' xmlns:xsd="' .$url2 .'">';
foreach( $header as $x => $y) {
$xml .= "<$x>".htmlentities( strval($y) ) . "</$x>";
}
// Create the items (transactions)
$xml .= "<ItemList>";
$xml .= "<Item>";
foreach( $datarecord as $x => $y) {
$xml .= "<$x>".htmlentities( strval($y) );
if ( $x == 'TaxExemptionCodeList' ) {
$xml .= "<string>00</string><string>00</string>";
}
$xml .= "</$x>";
}
$xml .= "</Item>";
$xml .= "</ItemList>";
$xml .= "</" . $xmlclass . ">";
$my_data = $xml;
} else {
// JSON
$json = json_encode($header);
$json = substr($json,0,strlen($json)-1);
$json .= ',"ItemList": [';
$json .= json_encode( $datarecord );
$json .= ']}';
$my_data = $json;
}
// SureTax web request API URL
$suretax_url = "https://testapi.taxrating.net/Services/V07/SureTax.asmx/PostRequest"
// Initiate cURL request
$ch = curl_init();
// Set Headers
curl_setopt($ch, CURLOPT_POSTFIELDS, "request=$my_data" );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt($ch, CURLOPT_URL, $suretax_url );
curl_setopt($ch, CURLOPT_TIMEOUT, 10 ); // 10 second timeout option
$response = curl_exec( $ch ); curl_close( $ch );
Note
No HTTP header should be provided (no need to supply the cURL CURLOPT_HTTPHEADER option).
Response
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">JSON or XML string</string>
Note
For JSON implementation, the leading and trailing tags must be removed before calling the PHP json_decode() function. This can be accomplished via the following routine: $response = substr( substr( $response, 76 ), 0, -9);
Alternate PHP with cURL implementation for JSON This alternate cURL implementation for JSON, enables the response to be returned wrapped in a “d” object. For more information on the specifics of this alternative approach, please see the following article: http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/#comment-34045
// Using the same initial assignment of the $json variable from the previous example above…
// Add request object to the JSON string
$my_data = '{"request":' ."'";
$my_data.= $json . "'" ;
$my_data.= '}';
// SureTax web request API URL
$suretax_url = " https://testapi.taxrating.net/Services/V07/SureTax.asmx?op=PostRequest"
// Initiate cURL request
$ch = curl_init();
// Set Headers for JSON curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' .
strlen($my_data)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $my_data );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt($ch, CURLOPT_URL, $suretax_url );
curl_setopt($ch, CURLOPT_TIMEOUT, 10 ); // 10 second timeout option
$response = curl_exec( $ch ); curl_close( $ch );
SOAP request using cURL
// Web Request Header
$header["ClientNumber"] = "000000000";
$header["BusinessUnit"] = "My Biz Unit";
$header["ValidationKey"] = "13290031-F004-4F00-BMN3-E979D6749B88";
$header["DataYear"] = "2011"
$header["DataMonth"] = "9";
$header["TotalRevenue"] = 100.00;
$header["ReturnFileCode"] = "0";
$header["ClientTracking"] = "1234";
$header["ResponseGroup"] = "00";
$header["ResponseType"] = "D";
// Input Record 1
$datarecord["LineNumber"] = "1";
$datarecord["InvoiceNumber"] = "112233";
$datarecord["CustomerNumber"] = "000000001";
$datarecord["OrigNumber"] = "2122102100";
$datarecord["TermNumber"] = "2122102100";
$datarecord["BillToNumber"]= "2122102100";
$datarecord["Zipcode"] = "";
$datarecord["Plus4"] = "";
$datarecord["TransDate"] = "2011-09-01";
$datarecord["Revenue"] = 100.00;
$datarecord["Units"] = 1;
$datarecord["UnitType"] = "";
$datarecord["TaxIncludedCode"] = "0";
$datarecord["TaxSitusRule"] = "01";
$datarecord["TransTypeCode"] = "010101";
$datarecord["SalesTypeCode"] = "R";
$datarecord["RegulatoryCode"] = "01";
$datarecord["TaxExemptionCodeList"] = array( "00");
$url1 = "http://www.w3.org/2001/XMLSchema-instance"; $url2 = "http://www.w3.org/2001/XMLSchema";
$url3 = "http://schemas.xmlsoap.org/soap/envelope/";
$xml = '<?xml version="1.0" encoding="utf-8"?>';
$xml .= '<soap:Envelope' . ' xmlns:xsi="' .$url1 .'" ';
$xml .= ' xmlns:xsd="' .$url2 .'"';
$xml .= ' xmlns:soap="' .$url3 .'">';
$xml .= '<soap:Body>';
$xml .= '<SoapRequest xmlns="http://tempuri.org/">';
$xml .= '<request>';
foreach( $header as $x => $y) {
$xml .= "<$x>".htmlentities( strval($y) ) . "</$x>";
}
// Create the items (transactions)
$xml .= "<ItemList>";
$xml .= "<Item>";
foreach( $datarecord as $x => $y) {
$xml .= "<$x>".htmlentities( strval($y) );
if( $x == 'TaxExemptionCodeList' ) {
$xml .= "<string>00</string><string>00</string>"; }
$xml .= "</$x>";
}
$xml .= "</Item>";
$xml .= "</ItemList>";
foreach( $trailer as $x => $y) {
$xml .= "<$x>".htmlentities( strval($y) ) . "</$x>";
}
$xml .= '</request></SoapRequest></soap:Body></soap:Envelope>';
$my_data = $xml;
// SureTax web request API URL
$suretax_url = "https://testapi.taxrating.net/Services/V07/SureTax.asmx"
// Initiate cURL request
$ch = curl_init();
// Set cURL Headers
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($my_data), 'SOAPAction: "http://tempuri.org/SoapRequest"' ));
curl_setopt($ch, CURLOPT_POSTFIELDS, $my_data );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0 );
curl_setopt($ch, CURLOPT_URL, $suretax_url );
curl_setopt($ch, CURLOPT_TIMEOUT, 15 );
$response = curl_exec( $ch ); curl_close( $ch );
Microsft .NET
Follow these steps to configure the CCH SureTax web service:
- Browse to the documentation API and log in using your login credentials (available upon request). https://testapi.taxrating.net/Documentation/V07/SureTax.asmx
Note
WSDL can also be found at: https://testapi.taxrating.net/Documentation/V07/SureTax.asmx?WSDL (requires valid login credentials).
Click on the Service Description to display the WSDL
Right click on the WSDL and select view source. Save the source file as SureTax.wsdl
In Visual Studio, select “Add Web Reference” and paste the path to the SureTax.wsdl you saved earlier in for the URL. Name the web reference SureTax.
The SureTax Web Service should now be available for use in the code
To run the web service, you must change the connection setting in the web.config file by updating entry from “Documentation” to “Services”
From:
<applicationSettings>
<WebRatingClient.Properties.Settings>
<setting name="WebRatingClient_SureTax_SureTax" serializeAs="String">
<value>https://testapi.taxrating.net/Documentation/V07/SureTax.asmx</value>
</setting>
</WebRatingClient.Properties.Settings>
</applicationSettings>
To:
<applicationSettings>
<WebRatingClient.Properties.Settings>
<setting name="WebRatingClient_SureTax_SureTax" serializeAs="String">
<value>https://testapi.taxrating.net/Services/V07/SureTax.asmx</value>
</setting>
</WebRatingClient.Properties.Settings>
</applicationSettings>
.NET Examples
Request
POST URL Services/V07/SureTax.asmx/PostRequest HTTP/1.1
Host: testapi.taxrating.net
Content-Type: application/x-www-form-urlencoded
Content-Length: length request=string
Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">string</string>
SOAP format with sample data
This sample assumes a web reference has been established.
// Create and populate request
Request request = new Request();
request.BusinessUnit = "BizUnit";
request.ClientNumber = "0000000";
request.ClientTracking = "TrackThis";
request.DataMonth = "9";
request.DataYear = "2011";
request.IndustryExemption = "";
request.ResponseType = "S";
request.ResponseGroup = "00";
request.ReturnFileCode = "0";
request.TotalRevenue = 40.00M;
request.ValidationKey = "13290031-F004-4F00-BMN3-E979D6749B88";
// Create and populate item
Item item = new Item();
item.BillToNumber = "8585260000";
item.CustomerNumber = "01";
item.InvoiceNumber = "1";
item.LineNumber = "1";
item.OrigNumber = "8585260000";
item.P2PPlus4 = string.Empty;
item.P2PZipcode = string.Empty;
item.Plus4 = string.Empty;
item.RegulatoryCode = "99";
item.Revenue = 40.00M;
item.SalesTypeCode = "R";
item.TaxExemptionCodeList = new string[0];
item.TaxIncludedCode = "0";
item.TaxSitusOverrideCode = "";
item.TaxSitusRule = "01";
item.TermNumber = "8585260000";
item.TransTypeCode = "010101";
item.TransDate = "1/1/2000";
item.Units = 1;
item.UnitType = "00";
item.Zipcode = string.Empty;
// Add item to request
request.ItemList = new Item[1];
request.ItemList[0] = item;
// Create service proxy and call Process method. Capture call results
SureTax rateInvoice = new SureTax();
Response response = rateInvoice.SoapRequest(request);
// Access response results
foreach (var group in response.GroupList)
{
foreach (var tax in group.TaxList)
{
string taxAmount = tax.TaxAmount;
string taxTypeCode = tax.TaxTypeCode;
string taxTypeDesc = tax.TaxTypeDesc;
}
}
Using GZIP Compression
CCH SureTax supports GZIP compression for web requests and responses. For requests that have a large number of items (transactions), the use of GZIP compression can be very advantageous as it reduces the size of the payload being transmitted. The performance impact of the compression activities is negligible.
To enable GZIP compression with CCH SureTax, the following header attribute must be submitted in the web request: "Accept-Encoding: gzipped"
See Section 5.1 for detailed implementation examples.
GZIP .NET Example
var post = "request=< ADD XML HERE > ";
// gzip the POST data
var bigRequestStream = new MemoryStream(Encoding.UTF8.GetBytes(post));
var tinyRequestStream = new System.IO.MemoryStream();
using (var gzipStream = new GZipStream(tinyRequestStream, CompressionMode.Compress, true))
{
bigRequestStream.CopyTo(gzipStream);
}
tinyRequestStream.Position = 0;
// create the request to SureTax
var request = (HttpWebRequest)WebRequest.Create("https://testapi.taxrating.net/Services/V07/SureTax.asmx/PostRequest");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = tinyRequestStream.Length;
// Add gzip indicator
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzipped");
// add gzip POST data
Stream dataStream = request.GetRequestStream();
tinyRequestStream.WriteTo(dataStream);
dataStream.Close();
// submit, receive gzip response and decompress
var tinyResponseStream = ((HttpWebResponse)request.GetResponse()).GetResponseStream();
var bigResponseStream = new System.IO.MemoryStream();
using (var gzipStream = new GZipStream(tinyResponseStream, CompressionMode.Decompress, true))
{
gzipStream.CopyTo(bigResponseStream);
}
// display decompressed response to validate
bigResponseStream.Position = 0;
Console.WriteLine(new StreamReader(bigResponseStream).ReadToEnd());
GZIP PHP Example
// SureTax web request API URL
$suretax_url = "https://testapi.taxrating.net/Services/V07/SureTax.asmx/PostRequest"
// Initiate cURL request
$ch = curl_init();
$my_data = "*** JSON STRING ***";
// Set Headers
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding: gzipped') );
curl_setopt($ch, CURLOPT_ENCODING , 'gzip');
$post_string = gzencode("request=$my_data");
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $suretax_url );
curl_setopt($ch, CURLOPT_TIMEOUT, 10 );
$response = curl_exec( $ch ); curl_close( $ch );
// Uncompress GZIP response
$response = gzinflate(substr($response, 10, -8)); // Note: Or use gzdecode() with PHP v5.4 or greater
Appendix B - Transaction Type Codes
The most current CCH SureTax Transaction Type Code list including their CCH ZipComm Group/Item corresponding values is available as an addendum to this API document. For additional information on these codes and their specific definitions, please see the Energy Mapping Guide.
Appendix C - Provider Type (Regulatory) Codes
The following table lists the Provider Type (Regulatory) codes used in the calculation process.
Type | Regulatory Code | Description |
---|---|---|
Default | 99 | Default value if Provider Type is unknown. |
Energy | 50 | Regulated Distributor |
Energy | 52 | Regulated Distributor/Supplier |
Energy | 53 | Non-Regulated Reseller |
Energy | 54 | Non-Regulated Suwither With a Regulated Distributor |
Energy | 55 | Custom - Utilities |
Energy | 56 | Regulated Pipeline Company |
Energy | 57 | Renewable Energy |
Retail | 70 | Retail |
Appendix D - Tax Exemption Record Indicators
Exemption Indicator | Exemption Description | Tax Types Exempted | Tax Authority Levels Exempted | Detail Description |
---|---|---|---|---|
00 | No Exemptions | None | n/a | No tax exemptions apply |
01 | Federal Excise Tax Exempt | 00 | 0 - Federal | |
02 | State Taxes Exempt | All State | 1- State | |
03 | Federal Excise Tax and State Taxes Exempt | 00 All State | 1 - State | |
04 | Local Taxes Exempt | All | 2 - County 3 - City 4 - Local 5 - Reporting Agency |
All tax types are exempted for the "local" tax authority levels |
05 | Federal Excise Tax and Local Taxes Exempt | 00 All Local | 2 - County 3 - City 4 - Local |
|
06 | State and Local Taxes Exempt | All | 1 - State 2 - County 3 - City 4 - Local 5- Reporting Agency |
|
07 | Federal Excise Tax and State and Local Taxes Exempt | 00 All State All Local |
1 - State 2 - County 3 - City 4 - Local 5- Reporting Agency |
|
09 | All Federal Level Taxes Exempt | 00 35 60 |
0 - Federal | |
10 | All Unit Based Taxes Exempt | See note | See note | All tax types are exempted for the "Federal" tax authority (i.e. FET, FUSF, FTRS) |
11 | Unit based E911 Exempt | 06 33 |
Any level | Exempts state and local unit based E911 fees. |
12 | Only apply Unit Based Fees | See note | See note | This exemption type excludes all tax types at all tax authority levels that are not listed as a unit based fee. |
13 | Local Right of Way Fees (ROW) Exempt | 24 | 2 - County 3 - City 4 - Local |
|
14 | All State and Local E911s Exempt | 06 33 |
Any level | Exempts state and local E911 fees - both unit based and percentage of revenue. |
20 | All PUC Fees Exempt | 08 | Any level | |
21 | All State and Local Gross Receipts Tax (GRT) Exempt | 28 32 |
Any level | |
23 | State Gross Receipts Tax and Universal Service Fund Exempt |
26 28 32 |
Any level | |
26 | State Excise Tax Exempt (includes FL CST) | 27 | 1 - State | |
31 | State Level Sales Tax Exempt | 01 | 1 - State | |
32 | State and Local Sales Tax Exempt | 01 02 03 04 05 |
Any level | |
36 | Value Added Tax (VAT) | 51 | Any level | This for any international VAT transaction (not including Canada as they have separate tax types). |
37 | Canadian Provincial Service Taxes (PST) Exempt | 42 | Any level | |
38 | Canadian Harmonized Service Taxes (HST) Exempt | 41 | Any level | |
39 | Canadian Goods and Services Taxes (GST) Exempt | 40 | Any level | |
41 | Local Utility Users Tax Exempt | 16 | Any level | |
42 | State Excise Tax Exempt and Local Surcharge Exempt | 17 27 |
1 - State 4 - Local |
This is primarily used for exempting the NY State Excise and local MTA Surcharge on Excise tax. |
44 | City Level Taxes Exempt | All | 3- City | |
45 | State Franchise Fee | 23 | 1 - State | |
46 | Local Franchise Fee | 36 | 2 - County 3 - City 4 - Local 5 - Reporting Agency |
|
47 | County Level Taxes Exempt | All | 2 - County | |
97 | Reserved | |||
98 | Reserved | |||
99 | All Taxes Exempt - Apply no tax or fees | All | All | All tax types for all levels are exempted. |
Specialty Exemptions
In addition to the Tax Exemptions provided above, CCH SureTax provides for specialty customer exemptions. These exemptions are provided from the CCH Customer Exemptions Smart Charts and will disable all taxes for customers belonging to one of these classifications. Like the Tax Exemption Record Indicators, these codes are submitted to CCH SureTax as part of the request in the TaxExemptionCodeList field. Please contact CCH SureTax for information about these codes.
Appendix E - Exemption Reason Codes
Exemption Reason Code | Exemption Reason Description |
---|---|
01 | Federal government |
02 | State or local governemnt |
03 | Tribal government |
04 | Foreign diplomat |
05 | Charitable organization |
06 | Religious or educational organization |
07 | Resale |
08 | Agricultural production |
09 | Industrial production/manufacturing |
10 | Direct pay permit |
11 | Direct mail |
12 | Other |
Appendix F - Unit Type Codes
Type | Unit Type Code | Description |
---|---|---|
Default | 00 | Default value services. |
Energy | 03 | kWh |
Energy | 04 | THERM |
Energy | 06 | Meter |
Energy | 07 | BCF (1 Billion Cubic Feet) |
Energy | 08 | dTh (dekatherm |
Energy | 09 | mWh (1000 kWh) |
Energy | 10 | kW (Kilowatts) |
Energy | 11 | mW (Megawatts) |
Energy | 12 | CCF (100 Cubic Feet) |
Energy | 14 | MCF (1000 Cubic Feet) |
Energy | 18 | Canadian THERMS |
Energy | 21 | Per Liter |
Energy | 22 | Per Gallon |
Apendix G - Tax Type Codes
The following table lists the tax type codes used in the calculation processes. These codes will be displayed on the tax reports and outputs generated from the system. Please note the first digit actually refers to the tax "level" - fed, state, etc. See the list provided in Appendix H.
Tax Type Code | Tax Type Description | Tax Authority |
---|---|---|
000 | Federal Excise Tax | Federal |
040 | Goods And Services Tax (GST) | Federal |
051 | Value Added Tax (VAT) | Federal |
101 | State Sales Tax | State |
107 | Poison Control | State |
108 | PUC Fee | State |
110 | State License Tax | State |
111 | State Consumption Tax | State |
117 | Misc. Surcharge 1 | State |
118 | Misc. Surcharge 2 | State |
119 | Misc. Surcharge 3 | State |
120 | Misc. Surcharge 4 | State |
123 | State Franchise Fee | State |
124 | Local Right-Of-Way Fee | State |
126 | Universal Service Fund | State |
127 | State Excise Tax | State |
128 | State Gross Receipts Tax | State |
129 | State Infrastructure Maintenance Fee | State |
142 | Provincial Sales Tax (PST) | State |
144 | State Lease/Rental Tax | State |
149 | State Utility Tax | State |
150 | State Business And Occupation Tax | State |
202 | County Sales Tax | County |
203 | County Local Sales Tax | County |
204 | City Sales Tax | County |
216 | Local Utility Users Tax | County |
224 | Local Right-Of-Way Fee | County |
238 | Local License Tax | County |
245 | County Lease/Rental Tax | County |
302 | County Sales Tax | City |
304 | City Sales Tax | City |
305 | City Local Sales Tax | City |
316 | Local Utility Users Tax | City |
324 | Local Right-Of-Way Fee | City |
331 | Local Business And Occupation Tax | City |
332 | Local Gross Receipts Tax | City |
336 | Local Franchise Fee | City |
338 | Local License Tax | City |
343 | Local Franchise Agreement | City |
347 | City Lease/Rental Tax | City |
348 | City Local Lease/Rental Tax | City |
403 | County Local Sales Tax | Local |
404 | City Sales Tax | Local |
405 | City Local Sales Tax | Local |
416 | Local Utility Users Tax | Local |
417 | Misc. Surcharge 1 | Local |
418 | Misc. Surcharge 2 | Local |
5C2 | User defined Pass-through Tax | Reporting Agency |
Appendix H - Tax Authority Level Codes
The following table lists the tax type authority codes used in the calculation processes. These codes will be displayed on the tax reports and outputs generated from the system. These values are the same as the first character of the Tax Type Codes listed in Appendix C.
Tax Authority Code | Tax Authority Description |
---|---|
0 | Federal |
1 | State |
2 | County |
3 | City |
4 | Local |
5 | Reporting Agency |
Appendix I - Response Code and Messages
The following table lists the message codes used when a Web Request fails. Web Requests with header failures will fail on first failure detected and will return the associated message. For Item Level failures, SureTax will process all items, successful and unsuccessful, returning applicable response codes for erroneous items.
Note
Before specific data elements of a web request are validated, the CCH SureTax serializer checks for proper formatting/encoding across the entire request. Should an error occur in this process, an 1101 error code will be retruned with a header message such as "Failure - There was an error deserializing the object of type...".
Header Level Response Codes
Message Code | Message Code Description |
---|---|
1000 | Failure - STAN already processed |
1100 | Failure - General Failure |
1101 | Failure - There is a format error in the web request - Input string was not in a correct format. |
1110 | Failure - Data Month Required |
1120 | Failure - Data Year Required |
1121 | Failure - Invalid Data Year/Month - Must be a published Data Year/Month |
1130 | Failure - Client Number Required |
1131 | Failure - Invalid Client Number |
1141 | Failure - Invalid Business Unit |
1150 | Failure - Validation Key Required |
1151 | Failure - Invalid Validation Key |
1171 | Failure - Invalid Client Tracking Code |
1190 | Failure - Response Group Code Required |
1191 | Failure - Invalid Response Group Code |
1200 | Failure - Response Type Required |
1201 | Failure - Invalid Response Type |
1210 | Failure - Return File Code Required |
1211 | Failure - Invalid Return File Code |
1220 | Failure - Item List Required |
1510 | Failure - Transaction is more than 60 days old (generated from Cancel Request method) |
9001 | Success with Item Errors (see table 9.2) |
9999 | Success |
Item Level Response Codes
Message Code | Message Code Description |
---|---|
9100 | Invalid Invoice Number - Must be Alphanumeric |
9101 | Invalid Invoice Number - Exceeds Character Limit (20) |
9110 | Invalid Customer Number - Must be Numeric |
9111 | Invalid Customer Number - Exceeds Character Limit (10) |
9151 | Invalid ShipTo Zip Code = Zip Code not found |
9153 | Invalid Country Code - Must be 2 characters |
9155 | Invalid Geocode - cannot be null |
9160 | Invalid Billing Zip Code Extension - Must be a 4 digit number |
9170 | Invalid Secondary Zip Code - cannot be null |
9171 | Invalid Secondary Zip Code = CAN - Must be a 6 character Alpha-Numeric |
9172 | Invalid Secondary Zip Code = Zip Code not found |
9180 | Invalid Secondary Zip Code Extension - Must be a 4 digit number |
9190 | Invalid BillingPeriodEndDate or BillingPeriodStartDate - cannot be null |
9200 | Invalid Line Number - Exceeds Character Limit (20) |
9220 | Invalid Unit Type - cannot be null |
9240 | Invalid Tax Included Code - cannot be null |
9250 | Invalid Tax Situs Rule Code |
9260 | Invalid Transaction Type Code |
9270 | Invalid Sales Type Code - cannot be null |
9280 | Invalid Regulatory Code - cannot be null |
9290 | AuxRevenueType Required |
9410 | Transaction is already cancelled (generated from Cancel Request method) |