Purpose: The Avalara AvaTax Interface provides a bridge between Order Management System and the Avalara AvaTax system to calculate the tax information on your orders at strategic points:
• order entry
• order maintenance
• pick slip preparation
• billing
Order Management System communicates with AvaTax files to determine the appropriate tax rate at each stage of the order's life cycle. AvaTax determines the appropriate tax rate based on the “ship-from” and “ship-to” addresses on the order.
The AvaTax system stores the tax rates for each taxing jurisdiction in the United States and Canada, and provides the necessary reporting for each jurisdiction in which you sell or operate.
If you use the AvaTax interface, you don't need to keep current with the tax rates and reporting requirements of each taxing jurisdiction, and you no longer have to maintain these rates on Order Management System. Also, the system does not consider any item tax exemptions set up through Working with Item Tax Exemptions (WITX) or Working with GST Tax Exemption Status (MGTX). Instead, you should use AvaTax to set up any tax exemptions for items.
Note: You cannot use both AvaTax and tax-inclusive pricing (VAT) in the same company; you must use separate companies for regular tax and VAT. See Tax Included in Price (E70) for more information on VAT.
Compatibility: Order Management System version 17.0 or later is compatible with Avalara AvaTax REST API v2.
For more information: See Avalara AvaTax Setup for information on setting up Order Management System to support communication with AvaTax. Also, see your AvaTax documentation for detailed information on setup requirements within AvaTax.
In this chapter:
• Tax Calculation Processing Overview
- Tax Overrides, Customer Exemptions, and Item or Class Exceptions
- Tax Interface Request Message > AvaTax Request Message
- AvaTax Response > Tax Interface Response Message
- CWTaxRequest: Sample Message
- AvaTax Request: Sample Message
- AvaTax Response: Sample Message
- CWTaxResponse: Sample Message
Tax Calculation Processing Overview
Overview: The AvaTax Interface passes order and tax information between Order Management System and AvaTax at various points in the order cycle (from order entry to billing).
AvaTax evaluates and calculates the tax amount on the order at each phase and updates transactions appropriately.
Communication between Order Management System and AvaTax: When Order Management System needs tax information during order entry or maintenance, pick slip preparation, or billing, it sends a tax request message to AvaTax using web services. The TAX_INT integration layer job defines the wsdl (Web Services Definition Language) file that controls the integration.
For troubleshooting purposes, Order Management System writes the tax request message to the Trace Log. Additional processing is logged to the Application Log.
For more information: See Avalara AvaTax Setup for more information on configuring the integration.
What is taxed? Based on its current data on tax rules for the shipping address on the order and the additional rules that you define for customer or item exceptions, AvaTax indicates the tax amounts for merchandise, freight (order-level or line-level), handling charges, duty, shipper-item charges, and additional freight.
Tax Overrides, Customer Exemptions, and Item or Class Exceptions
Tax override: You can set the Tax override flag in the Order Detail table to Y when you create an order through the generic order API. If this flag is set to Y, AvaTax does not calculate the tax amount for the item at any point in the order cycle and just uses the specified tax override amount; however, if there are any line-level freight, handling, or gift wrap charges, these charges may be subject to tax even if the order detail line has a tax override.
Similarly, you can override tax on freight through the order API by specifying a freight_tax_amount and setting the freight_tax_override to Y.
Note:
• There is no way to set the Tax override flag through interactive order entry.
• The system does not set the Tax override flag in the Order Detail table unless there is a tax amount specified in the inbound order message. As a result, you cannot use this setting to create an order line with no tax amount in interactive order entry. The only way to exempt an order line from tax is to set up an item exception in Working with Tax Product Code Cross References (WTPC).
For more information: See the Send Tax to Tax Interface as Quote Not Invoice (L11) system control value for a discussion on how the system sends different request types to AvaTax based on the setting of this system control value and whether the tax is overridden.
Customer tax exemptions: If a customer is flagged as tax exempt in Order Management System and has a tax-exempt certificate number, the merchandise and charges on the customer’s orders are not taxable. Order Management System passes the exemption certificate number to AvaTax. Although Order Management System does not pass the customer’s tax exempt expiry date, order entry does not let you create an order flagged as tax-exempt if the customer’s expiry date has passed.
Item or item class exceptions: When you use AvaTax, you need to set up item exceptions in Working with Tax Product Code Cross References (WTPC). For example, if you have two item classes that are not normally taxable, you can map these item classes to tax product codes in AvaTax.
Note: Even if an item on an order is not subject to tax, AvaTax still calculates tax for any freight, handling charges, and gift wrap charges if the order is otherwise subject to tax.
When Order Management System needs to calculate tax for an order and you are using the AvaTax interface, the system uses the AvaTax REST API v2 web service to communicate with the AvaTax system via HTTP POST.
1. Order Management System generates a Tax Request Message (CWTaxRequest), maps the information in the Tax Request message to the AvaTax Request message, and sends the AvaTax Request message to AvaTax for tax calculation.
2. AvaTax calculates the tax and sends an AvaTax Response message to Order Management System.
3. Order Management System maps the information in the AvaTax Response message to the Tax Response Message (CWTaxResponse) and uses the information in the Tax Response message to apply tax to the order.
Order Management System maps the generic tax messages (Tax Request Message (CWTaxRequest) and Tax Response Message (CWTaxResponse)) to the AvaTax message format to pass tax information to and from AvaTax.
Reviewing messages: You can review the messages passed between Order Management System and AvaTax in the Trace Log if its Logging Level is set to DEBUG or ALL. Use this log to help troubleshoot the AvaTax integration.
License key authentication: The AvaTax integration uses RESTful web services and supports basic HTTP authentication, passing the account and license defined in the AvaTax Values by Company Properties File to AvaTax.
For more information: See:
Tax Calculation Processing Overview for an overview of the AvaTax process.
Generic Tax API for more information on the generic tax API, including information on the Tax Request Message (CWTaxRequest) and Tax Response Message (CWTaxResponse).
Tax Interface Request Message > AvaTax Request Message
The tax request message is used to send order and tax information to AvaTax. AvaTax uses this information to calculate the tax to assign to the order.
Generated when? Order Management System generates the Tax Request Message (CWTaxRequest) when tax needs to be calculated on an order during order entry, order maintenance, pick slip preparation, and billing.
The system maps the information in the Tax Request message to the AvaTax Request message and sends the AvaTax Request message to AvaTax.
Information included:
CWTaxRequest Message |
AvaTax |
Comments |
|
Source Field/Table |
In Message |
In Message |
|
entity_999_child_company in AvaTax Values by Company Properties File (where 999 is the entity associated with the order) or default_company field in AvaTax Values by Company Properties File or Company in Order Ship To table |
companyCode |
The company code associated with the transaction. The system uses the following hierarchy to determine the company code: 1. Use the value defined in the entity_999_child_company field in the AvaTax Values by Company Properties File, where 999 is the entity associated with the order. 2. If the entity_999_child_company field is blank, use the value defined in the default_company field in the AvaTax Values by Company Properties File. 3. If the default_company field is blank, use the actual Order Management System company code. |
|
N/A |
customerCode |
OROMS defaults. |
|
customer_usage_type_CC in AvaTax Values by Company Properties File where CC is the Customer Class in Customer Sold To table |
customerUsageType |
Identifies the customer within a group and is used to mark a customer as fully or partially exempt. The AvaTax system provides pre-populated customer taxability profiles with rules for the United States and Canada. From the customer_usage_type_CC in the AvaTax Values by Company Properties File where CC is the sold to customer class. |
|
Resale Exempt # in Order Ship To table |
exemptionNo |
|
|
Company + Order # + Ship To # in Order Ship To table |
code |
The code assigned to the transaction, made up of company code + order number + ship to number. For example, if the company code is 76, the order number is 160, the ship to number is 1, the code is 07600000160001. |
|
N/A |
date |
The date the transaction took place, in YYYY-MM-DDTHH:MM:SS format. |
|
N/A |
commit |
true = The request_type in the Tax Request message is QUOTATION. false = The request_type in the Tax Request message is INVOICE or DISTRIBUTETAX. |
|
N/A |
type |
Identifies the type of transaction. Valid values are: SalesOrder = Tax request for a sales transaction. From request_type in the Tax Request message when its value is QUOTATION. SalesInvoice = Tax request for a debit invoice transaction. ReturnOrder = Tax request for a return transaction. ReturnInvoice = Tax request for a credit invoice transaction. |
|
|
lines |
||
Line # in Order Detail table |
number |
The transaction line number. |
|
Item Class + LSD Class + LSD Department in the Item table + Long SKU Division in Long SKU Department table or line_handling_tax_code in AvaTax Values by Company Properties File or line_freight_tax_code in AvaTax Values by Company Properties File or line_duty_tax_code in AvaTax Values by Company Properties File or additional_freight_tax_code in AvaTax Values by Company Properties File or order_freight_tax_code in AvaTax Values by Company Properties File |
taxCode |
The tax code defined for the transaction line. Line merchandise tax (LM): the system uses the item class + long SKU class + long SKU department + long SKU division combination to find a tax code in the Tax Product Code Cross Reference table (Working with Tax Product Code Cross References (WTPC)). Line handling tax (LH): from the line_handling_tax_code in the AvaTax Values by Company Properties File. Note: If the S/H exclude tax? flag is selected for an additional charge code, then a line that uses this additional charge code for special handling is not subject to order line handling (LH) tax. Line freight tax (LF): from the line_freight_tax_code in the AvaTax Values by Company Properties File. Line duty tax (LD): from the line_duty_tax_code in the AvaTax Values by Company Properties File. Additional freight and shipper item charges tax (AF): from the additional_freight_tax_code in the AvaTax Values by Company Properties File. Order freight tax (OF): from the order_freight_tax_code in the AvaTax Values by Company Properties File. |
|
ODT qty ordered in Order Detail table |
quantity |
The quantity of the item on the order line. 1 defaults if the tax_code is OF (order freight), LH (line handling), LF (line freight), LD (line duty), or AF (additional freight and shipper item charges). |
|
|
taxOverride |
||
ODT future use Y/N 1 in Order Detail table |
type |
Identifies the type of tax override. Valid values are: none accruedTaxAmount deriveTaxable exemption taxAmount = the odt_tax_override in the Tax Interface Request message is Y. taxDate = the odt_tax_override in the Tax Interface Request message is N or blank. |
|
Tax in Order Detail table |
taxAmount |
The tax override amount. This value is populated only if the odt_tax_override in the Tax Request is Y. |
|
ODT arrival date in Order Detail table |
odt_arrival_date or order_date |
taxDate |
The date to use for the tax override, in YYYY-MM-DDTHH:MM:SS format. If the tax_date in the AvaTax Values by Company Properties File is I (Invoice), the system uses the arrival date. For QUOTATIONS, the arrival date represents the order date and for INVOICE/DISTRIBUTETAX, the arrival date represents the invoice date. If the tax_date in the AvaTax Values by Company Properties File is O (Order), the system uses the order date. This value is populated only if the odt_tax_override in the Tax Request is N or blank. |
ODT future use Y/N 1 in Order Detail table |
reason |
The reason for the tax override. taxOverride defaults if the odt_tax_override in the Tax Request is Y. taxDate defaults if the odt_tax_override in the Tax Request is N or blank. |
|
ITM number in Order Detail table |
description |
A description of the item. |
|
N/A |
ref1 |
Identifies the type of tax. Valid values are: LM = Line merchandise. LH = Line handling. LF = Line freight. LD = Line duty. AF = Additional freight and shipper item charges. OF = Order freight. |
|
N/A |
amount |
The amount of tax. |
|
|
|
ref2 |
|
ITM number + SKU code in Order Detail table |
or |
itemCode |
If the odt_line_item_type is LM, this is the item number and SKU code of the item on the line. If the odt_line_item_type is a value other than LM, this is the line item type code. |
Description in Item table |
description |
A description of the item. |
|
|
addresses |
||
CustomerShipTo |
shipTo |
||
Order ship to: NAM city in Order Ship To Address table Permanent ship to: NAM city in Customer Ship To table Recipient sold to: NAM city in Customer Sold To table |
city |
The city of the ship to address on the order. |
|
Order ship to: RPR country in Order Ship To Address table Permanent ship to: RPR country in Customer Ship To table Recipient sold to: RPR country in Customer Sold To table |
country |
The country of the ship to address on the order. |
|
Order ship to: NAM street address in Order Ship To Address table Permanent ship to: NAM street address in Customer Ship To table Recipient sold to: NAM street address in Customer Sold To table |
line1 |
The street address of the ship to address on the order. |
|
Order ship to: NAM address line 2 in Order Ship To Address table Permanent ship to: NAM address line 2 in Customer Ship To table Recipient sold to: NAM address line 2 in Customer Sold To table |
line2 |
The second address line of the ship to address on the order. |
|
Order ship to: Address line 3 in Order Ship To Address table Permanent ship to: Address line 3 in Customer Ship To Extended table Recipient sold to: Address line 3 in Customer Sold To Extended table |
line3 |
The third address line of the ship to address on the order. |
|
Order ship to: NAM zip in Order Ship To Address table Permanent ship to: NAM zip in Customer Ship To table Recipient sold to: NAM zip in Customer Sold To table |
postalCode |
The postal code of the ship to address on the order. |
|
Order ship to: NAM state in Order Ship To Address table Permanent ship to: NAM state in Customer Ship To table Recipient sold to: NAM state in Customer Sold To table |
region |
The state or province code of the ship to address on the order. |
|
ShipFromWarehouse |
shipFrom |
||
Warehouse: City in Warehouse table Sold to: NAM city in Customer Sold To table or default_warehouse_city in AvaTax Values by Company Properties File |
city |
The city of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_city in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_city in the AvaTax Values by Company Properties File. |
|
Warehouse: RPR country in Warehouse table Sold to: RPR country in Customer Sold To table or default_warehouse_country in AvaTax Values by Company Properties File |
country |
The country of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_country in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_country in the AvaTax Values by Company Properties File. |
|
Warehouse: Address in Warehouse table Sold to: NAM street address in Customer Sold To table or default_warehouse_line1 in AvaTax Values by Company Properties File |
line1 |
The street address of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_addr1 in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_line1 in the AvaTax Values by Company Properties File. |
|
Warehouse: Address line 2 in Warehouse table Sold to: NAM address line 2 in Customer Sold To table or default_warehouse_line2 in AvaTax Values by Company Properties File |
line2 |
The second address line of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_addr2 in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_line2 in the AvaTax Values by Company Properties File. |
|
Warehouse: Address line 3 in Warehouse table Sold to: NAM address line 3 in Customer Sold To table or default_warehouse_line3 in AvaTax Values by Company Properties File |
line3 |
The third address line of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_addr3 in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_line3 in the AvaTax Values by Company Properties File. |
|
Warehouse: Zip Code in Warehouse table Sold to: NAM zip in Customer Sold To table or default_warehouse_postalcode in AvaTax Values by Company Properties File |
postalCode |
The postal code of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_postal in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_postalcode in the AvaTax Values by Company Properties File. |
|
Warehouse: State in Warehouse table Sold to: NAM state in Customer Sold To table or default_warehouse_state in AvaTax Values by Company Properties File |
region |
The state or province code of the sold to address on the order. If the ship_from_warehouse in the Tax Request message contains a value, from the ship_from_state in the Tax Request message; otherwise, if the ship_from_warehouse is 0 or blank, from the default_warehouse_state in the AvaTax Values by Company Properties File. |
|
|
pointOfOrderAcceptance |
||
call_center_city in AvaTax Values by Company Properties File |
N/A |
city |
The city of the call center address. From the call_center_city in the AvaTax Values by Company Properties File. |
call_center_country in AvaTax Values by Company Properties File |
N/A |
country |
The country of the call center address. From the call_center_country in the AvaTax Values by Company Properties File. |
call_center_line1 in AvaTax Values by Company Properties File |
N/A |
line1 |
The street address of the call center address. From the call_center_line1 in the AvaTax Values by Company Properties File. |
call_center_line2 in AvaTax Values by Company Properties File |
N/A |
line2 |
The second address line of the call center address. From the call_center_line2 in the AvaTax Values by Company Properties File. |
call_center_line3 in AvaTax Values by Company Properties File |
N/A |
line3 |
The third address line of the call center address. From the call_center_line3 in the AvaTax Values by Company Properties File. |
call_center_postalcode in AvaTax Values by Company Properties File |
N/A |
postalCode |
The postal code of the call center address. From the call_center_postalcode in the AvaTax Values by Company Properties File. |
call_center_state in AvaTax Values by Company Properties File |
N/A |
region |
The state or province code of the call center address. From the call_center_state in the AvaTax Values by Company Properties File. |
AvaTax Response > Tax Interface Response Message
The tax response message is used to send tax information to Order Management System. Order Management System uses this information to apply tax to an order.
Generated when? AvaTax generates a tax response message when it receives an Tax Interface Request Message > AvaTax Request Message from Order Management System.
The system maps the information in the AvaTax Response message to the Tax Interface Response message.
Information included:
AvaTax |
CWTaxResponse Message |
Comments |
|
In Message |
In Message |
Target Field/Table |
|
|
Message |
|
|
date |
N/A |
The date when the response was generated in Day Mon DD HH:MM:TT YYYY format; for example: Thu Sep 14 00:00:00 PDT 2017. |
|
N/A |
N/A |
CWTaxResponse defaults. |
|
N/A |
N/A |
OROMS defaults. |
|
N/A |
N/A |
Avalara defaults. |
|
|
TaxInterfaceResponse |
||
type |
N/A |
The type of transaction. Valid values are: • SalesOrder • SalesInvoice • ReturnOrder • ReturnInvoice |
|
N/A |
order_shipto_nbr |
Ship To # in Order Ship To table |
From the order_shipto_nbr in the corresponding Tax Request Message (CWTaxRequest). |
N/A |
order_nbr |
Order # in Order Ship To table |
From the order_nbr in the corresponding Tax Request Message (CWTaxRequest). |
N/A |
entity |
Entity Number in Division table |
From the entity in the corresponding Tax Request Message (CWTaxRequest). |
N/A |
Company in Order Ship To table |
From the company in the corresponding Tax Request Message (CWTaxRequest). |
|
type |
N/A |
Valid values are: QUOTATION = tax requested during order creation and pick slip generation. This value defaults if the AvaTax status is Temporary and the type is SalesOrder or ReturnOrder. INVOICE = tax requested during billing. This value defaults if the AvaTax status is Committed and the type is SalesInvoice or ReturnInvoice. |
|
|
OrderDetail |
|
|
rate |
N/A |
|
|
totalTax |
Tax in Order Detail table |
|
|
itemCode |
N/A |
|
|
lineNumber |
Line # in Order Detail table |
|
|
|
JurisdictionLevel |
|
|
rate |
N/A |
|
|
tax |
N/A |
|
|
jurisType |
N/A |
|
|
jurisType |
N/A |
Valid values are: • Country • Composite • State • Country • City • Special |
• CWTaxRequest: Sample Message
• AvaTax Request: Sample Message
• AvaTax Response: Sample Message
• CWTaxResponse: Sample Message
A sample of the Tax Request Message (CWTaxRequest) is presented below.
<Message time_created="05:56:38" date_created="2017-09-14" type=" " target="CWIntegrate" source="CWDirect">
<TaxInterfaceRequest sold_to_cust_class="" order_date="2017-09-14" order_shipto_nbr="001" order_nbr="00000270" company="076" request_type="QUOTATION">
<CustomerShipTo ship_to_country="US" ship_to_postal="01581" ship_to_state="MA" ship_to_city="WESTBORO" ship_to_addr1="1800 WEST PARK DRIVE"/>
<OrderDetails>
<OrderDetail odt_extended_price="000000500" odt_tax_override_amt="0000000000" odt_price="0000500" odt_qty="00000" odt_item_class="OF" odt_arrival_date="2017-09-14" odt_line_item_type="OF" odt_line_nbr="00001">
<ShipFromWarehouse ship_from_country="US" ship_from_postal="01701" ship_from_state="MA" ship_from_city="FRAMINGHAM" ship_from_addr1="100 MAIN STREET" ship_from_warehouse="001"/>
</OrderDetail>
</OrderDetails>
</TaxInterfaceRequest>
</Message>
AvaTax Request: Sample Message
A sample of the AvaTax Request message is presented below.
{
"companyCode" : "RGBU",
"customerCode" : "OROMS",
"code" : "07600000270001",
"date" : "2017-09-14T05:56:38",
"type" : "SalesOrder",
"lines" : [ {
"number" : "1",
"taxCode" : "P0000000",
"quantity" : 1,
"taxOverride" : {
"type" : "TaxDate",
"taxAmount" : 0,
"taxDate" : "2017-09-14T00:00:00",
"reason" : "TaxDate"
},
"description" : "OF",
"ref1" : "OF",
"amount" : 5,
"ref2" : "00001",
"itemCode" : "OF"
} ],
"addresses" : {
"shipTo" : {
"city" : "WESTBORO",
"country" : "US",
"line1" : "1800 WEST PARK DRIVE",
"postalCode" : "01581",
"region" : "MA"
},
"shipFrom" : {
"city" : "FRAMINGHAM",
"country" : "US",
"line1" : "100 MAIN STREET",
"postalCode" : "01701",
"region" : "MA"
},
"pointOfOrderAcceptance" : {
"city" : "Fort Myers",
"country" : "US",
"line1" : "24 Metro Parkway",
"postalCode" : "33907",
"region" : "FL",
"line2" : "",
"line3" : ""
}
}
}
AvaTax Response: Sample Message
A sample of the AvaTax Response message is presented below.
{
"messages" : [ {
"refersTo" : "Addresses[0] - TaxDate: 2017-09-14 00:00:00Z",
"source" : "Avalara.AvaTax.Services.Tax.Steps",
"details" : "\n Address: 100 MAIN STREET, FRAMINGHAM, MA 01701 US, TaxRegion:1053, Latitude: 42.316847°, Longitude: -71.423129° \n AddressCode: ORIG2\n AddressType: \n BoundaryId: 1053\n CarrierRoute: \n County: MIDDLESEX\n FipsCode: 2501724960\n GeocodeType: ZIP5Centroid\n PostNet: \n Reason: JAAS enabled for MA\n ValidateStatus: HouseNotOnStreet\n TaxRegionId: 1053\n",
"severity" : "Success",
"summary" : "Using JAAS"
}, {
"refersTo" : "Addresses[1] - TaxDate: 2017-09-14 00:00:00Z",
"source" : "Avalara.AvaTax.Services.Tax.Steps",
"details" : "\n Address: 1800 W Park Dr, Westborough, MA 01581-3926 US, TaxRegion:1053, Latitude: 42.282624°, Longitude: -71.569295° \n AddressCode: DEST3\n AddressType: H\n BoundaryId: 1053\n CarrierRoute: C006\n County: WORCESTER\n FipsCode: 2502700000\n GeocodeType: StreetLevel\n PostNet: 015813926997\n Reason: JAAS enabled for MA\n ValidateStatus: NormalHit\n TaxRegionId: 1053\n",
"severity" : "Success",
"summary" : "Using JAAS"
}, {
"refersTo" : "Addresses[2] - TaxDate: 2017-09-14 00:00:00Z",
"source" : "Avalara.AvaTax.Services.Tax.Steps",
"details" : "\n Address: 24 Metro Parkway, Fort Myers, FL 33907 US\n AddressCode: POA4\n Reason: JAAS enabled for FL\n ValidateStatus: NotValidated (non-source address)\n",
"severity" : "Success",
"summary" : "Using JAAS"
}, {
"refersTo" : "Addresses[0]",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "\n Address: 100 MAIN STREET, FRAMINGHAM, MA 01701\n Type: Input TaxRegionId\n City: \n State: MA\n County: \n Country: US\n BoundaryLevel: 2\n BoundarySource: TaxRegionGeometry\n BoundaryId: 1053\n TaxRegionId: 1053\n FIPSCode: 2500000000\n CitySignature: \n GEOCode: \n Jurisdictions: \n STA: JurisdictionId=\"25\" JurisdictionCode=\"25\" JurisdictionTypeId=\"STA\" LongName=\"MASSACHUSETTS\" StateFips=\"25\" State=\"MA\" StateAssignedCode=\"\" SerCode=\"\" SignatureCode=\"AWLY\" TaxAuthorityTypeId=\"45\" IsLocalAdmin=\"False\" EffDate=\"1900-01-01\" EndDate=\"9999-12-31\" \n",
"severity" : "Success",
"summary" : "AddressLocationType: ShipFrom"
}, {
"refersTo" : "Addresses[1]",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "\n Address: 1800 W Park Dr, Westborough, MA 01581-3926\n Type: Input TaxRegionId\n City: \n State: MA\n County: \n Country: US\n BoundaryLevel: 0\n BoundarySource: TaxRegionGeometry\n BoundaryId: 1053\n TaxRegionId: 1053\n FIPSCode: 2500000000\n CitySignature: \n GEOCode: \n Jurisdictions: \n STA: JurisdictionId=\"25\" JurisdictionCode=\"25\" JurisdictionTypeId=\"STA\" LongName=\"MASSACHUSETTS\" StateFips=\"25\" State=\"MA\" StateAssignedCode=\"\" SerCode=\"\" SignatureCode=\"AWLY\" TaxAuthorityTypeId=\"45\" IsLocalAdmin=\"False\" EffDate=\"1900-01-01\" EndDate=\"9999-12-31\" \n",
"severity" : "Success",
"summary" : "AddressLocationType: ShipTo"
}, {
"refersTo" : "Addresses[2]",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "\n Address: 24 Metro Parkway, Fort Myers, FL 33907\n Type: Validated address (< minimum level 0)\n City: \n State: FL\n County: \n Country: US\n BoundaryLevel: 2\n BoundarySource: BoundaryFl2\n BoundaryId: 8751\n TaxRegionId: 112\n FIPSCode: 1200000000\n CitySignature: \n GEOCode: \n Jurisdictions: \n STA: JurisdictionId=\"16\" JurisdictionCode=\"12\" JurisdictionTypeId=\"STA\" LongName=\"FLORIDA\" StateFips=\"12\" State=\"FL\" StateAssignedCode=\"\" SerCode=\"\" SignatureCode=\"AKUY\" TaxAuthorityTypeId=\"45\" IsLocalAdmin=\"False\" EffDate=\"1900-01-01\" EndDate=\"9999-12-31\" \n",
"severity" : "Success",
"summary" : "AddressLocationType: PointOfOrderAcceptance"
}, {
"refersTo" : "Lines[\"1\"]",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "\nTaxRule[TaxType:S][TaxSubType:S]: Nexus STA\n TaxRuleId: 0\n Cap: 0\n CompanyId: 475385\n Country: US\n CustomerUsageType: \n EffDate: 1/1/1900\n EndDate: 12/31/9999\n IsAllJuris: False\n IsPhysical: True\n IsSSTP: False\n JurisCode: 25\n JurisName: MASSACHUSETTS\n JurisTypeId: STA\n Options: LocalNexusTypeId = 0\n SERCode: \n SignatureCode: AWLY\n Sourcing: D\n State: MA\n StateAssignedNo: \n TaxCode: \n TaxCodeId: 0\n TaxName: MA STATE TAX\n NexusTaxTypeGroupId: SalesAndUse\n TaxTypeGroupId: SalesAndUse\n TaxTypeId: S\n TaxSubTypeId: S\n TaxTypeMappingId: 1\n Threshold: 0\n Value: 2\n RateSourceId: None\n RateTypeId: G\n RateTypeTaxTypeMappingId: 41\n UnitOfBasis: PerCurrencyUnit\n UnitOfBasisId: 13\n AttributeOptions: \n AttributeApplicability: \n ReturnsDeductionID: 0\n ReturnsRateID: 0\n ReturnsTaxTypeID: 0\n\nTaxRule[TaxType:S][TaxSubType:S]: ProductTaxabilityRule STA\n TaxRuleId: 1509085\n Cap: 0.000000\n CompanyId: 1\n Country: US\n CustomerUsageType: \n EffDate: 11/1/2014\n EndDate: 12/31/9999\n IsAllJuris: True\n IsPhysical: True\n IsSSTP: False\n JurisCode: 25\n JurisName: MASSACHUSETTS\n JurisTypeId: STA\n Options: \n SERCode: \n SignatureCode: AWLY\n Sourcing: D\n State: MA\n StateAssignedNo: \n TaxCode: P0000000\n TaxCodeId: 8087\n TaxName: \n NexusTaxTypeGroupId: SalesAndUse\n TaxTypeGroupId: SalesAndUse\n TaxTypeId: S\n TaxSubTypeId: S\n TaxTypeMappingId: 1\n Threshold: 0.000000\n Value: 1.000000\n RateSourceId: None\n RateTypeId: G\n RateTypeTaxTypeMappingId: 45\n UnitOfBasis: PerCurrencyUnit\n UnitOfBasisId: 13\n AttributeOptions: \n AttributeApplicability: \n ReturnsDeductionID: 0\n ReturnsRateID: 0\n ReturnsTaxTypeID: 0\n\nTaxRule[TaxType:S][TaxSubType:S]: RateRule STA\n TaxRuleId: 736686\n Cap: 0\n CompanyId: 1\n Country: US\n CustomerUsageType: \n EffDate: 8/1/2009\n EndDate: 12/31/9999\n IsAllJuris: False\n IsPhysical: False\n IsSSTP: False\n JurisCode: 25\n JurisName: MASSACHUSETTS\n JurisTypeId: STA\n Options: \n SERCode: \n SignatureCode: AWLY\n Sourcing: D\n State: MA\n StateAssignedNo: \n TaxCode: \n TaxCodeId: 0\n TaxName: MA STATE TAX\n NexusTaxTypeGroupId: SalesAndUse\n TaxTypeGroupId: SalesAndUse\n TaxTypeId: S\n TaxSubTypeId: S\n TaxTypeMappingId: 1\n Threshold: 0\n Value: 0.062500\n RateSourceId: System\n RateTypeId: G\n RateTypeTaxTypeMappingId: 41\n UnitOfBasis: PerCurrencyUnit\n UnitOfBasisId: 13\n AttributeOptions: \n AttributeApplicability: \n ReturnsDeductionID: 0\n ReturnsRateID: 0\n ReturnsTaxTypeID: 0\n",
"severity" : "Success",
"summary" : "Tax Rules"
}, {
"refersTo" : "",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "Document\n CompanyId: 475385\n CurrencyCode: USD\n CustomerVendorCode: OROMS\n CustomerUsageType: \n DocumentCode: 07600000270001\n DocumentDate: 9/14/2017\n DocumentId: 0\n DocumentLineCount: 1\n DocumentStatusId: 0\n DocumentTypeId: 0\n ExemptNo: \n Business Identification No: \n IsReconciled: False\n LocationCode: \n ModifiedDate: 9/14/2017 12:56:39 PM\n ModifiedUserId: 255612\n PaymentDate: 1/1/1900\n PurchaseOrderNo: \n ReferenceCode: \n SalespersonCode: \n TaxDate: 9/14/2017\n TaxOverrideTypeId: 0\n TaxOverrideAmount: 0\n TaxOverrideReason: \n TotalAmount: 5\n TotalTax: 0.31\n TotalTaxCalculated: 0.31\n VATNumberType No registration\n DocumentAddress[0]: \n Line1: 1800 W Park Dr\n City: Westborough\n Region: MA\n County: WORCESTER\n Country: US\n BoundaryId: 1053\n BoundaryLevelId: 0\n BoundarySource: TaxRegionGeometry\n CitySignature: \n DocumentAddressId: 0\n GeocodeTypeId: StreetLevel\n JurisCode: 2500000000\n PostalCode: 01581-3926\n TaxRegionId: 1053\n ValidateStatusId: NormalHit\n AddressLine1: 1800 W Park Dr\n AddressLine2: \n AddressLine3: \n DocumentAddress[1]: \n Line1: 24 Metro Parkway\n City: Fort Myers\n Region: FL\n County: \n Country: US\n BoundaryId: 8751\n BoundaryLevelId: 2\n BoundarySource: BoundaryFl2\n CitySignature: \n DocumentAddressId: 0\n GeocodeTypeId: \n JurisCode: 1200000000\n PostalCode: 33907\n TaxRegionId: 112\n ValidateStatusId: Not Validated\n AddressLine1: 24 Metro Parkway\n AddressLine2: \n AddressLine3: \n DocumentAddress[2]: \n Line1: 100 MAIN STREET\n City: FRAMINGHAM\n Region: MA\n County: MIDDLESEX\n Country: US\n BoundaryId: 1053\n BoundaryLevelId: 2\n BoundarySource: TaxRegionGeometry\n CitySignature: \n DocumentAddressId: 0\n GeocodeTypeId: ZIP5Centroid\n JurisCode: 2500000000\n PostalCode: 01701\n TaxRegionId: 1053\n ValidateStatusId: HouseNotOnStreet\n AddressLine1: 100 MAIN STREET\n AddressLine2: \n AddressLine3: \n Line[0]: \n AccountingMethodId: 0 (Accrual)\n BoundaryLevelId: 0\n BoundaryOverrideId: 0\n CustomerUsageType: \n Description: OF\n DestinationAddressId: 0\n DiscountAmount: 0\n DiscountTypeId: 0\n DocumentLineId: 0\n ExemptAmount: 0\n ExemptCertId: 0\n ExemptNo: \n Business Identification No: \n InState: False\n IsPhysical: True\n IsSstp: False\n ItemCode: OF\n LineAmount: 5\n LineNo: 1\n OriginAddressId: 0\n Quantity: 1\n Ref1: OF\n Ref2: 00001\n RevAccount: \n Sourcing: D\n IsItemTaxable: True\n ReportingDate: 9/14/2017\n Tax: 0.31\n TaxableAmount: 5\n TaxCalculated: 0.31\n TaxDate: 9/14/2017\n TaxCode: P0000000\n TaxCodeId: 8087 (P0000000)\n TaxOverrideTypeId: 3\n TaxOverrideAmount: 0\n TaxOverrideReason: TaxDate\n VATCode: \n VATNumberType: No registration\n Detail[0]: MA STA 25\n DocumentLineDetailId: 0\n AddressId: 0\n Country: US\n ExemptAmount: 0\n ExemptUnits: 0\n ExemptReasonId: 4 (NoExempt)\n InState: False\n JurisCode: 25\n JurisdictionId: 25\n JurisName: MASSACHUSETTS\n JurisTypeId: STA\n NonTaxableAmount: 0\n NonTaxableUnits: 0\n NonTaxableRuleId: 0\n NonTaxableTypeId: 0\n Options: \n Rate: 0.062500\n RateRuleId: 736686\n RateSourceId: System\n Region: MA\n SERCode: \n Sourcing: D\n StateCode: 25\n StateAssignedNo: \n TaxAuthorityId: 94\n Tax: 0.31\n TaxableAmount: 5\n TaxableUnits: 5\n UnitOfBasis: PerCurrencyUnit\n UnitOfBasisId: 13\n TaxCalculated: 0.31\n TaxName: MA STATE TAX\n TaxOverride: 0\n TaxTypeGroupId: 1\n TaxTypeId: S\n TaxSubTypeId: 1\n RateTypeId: G\n IsFee: False\n TaxTypeMappingId: 1\n RateTypeTaxTypeMappingId: 41\n TaxRegionId: 1053\n *Cap: 0\n *Threshold: 0\n TaxAuthorityTypeId: 45\n TaxAuthorityId: 94\n TaxAuthorityName: 94\n ReportLevel: 1\n",
"severity" : "Success",
"summary" : "Tax Rules"
}, {
"refersTo" : "",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "<?xml version=\"1.0\" encoding=\"utf-16\"?><ArrayOfSourcingRuleApplied xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><SourcingRuleApplied><LineNo>1</LineNo><SourcingRuleId_Sourcing>6</SourcingRuleId_Sourcing><Sourcing>D</Sourcing><SourcingRuleId_RateType>0</SourcingRuleId_RateType><SourcingRuleId_JurisTypesApplicableId>0</SourcingRuleId_JurisTypesApplicableId><JurisTypesApplicableId xsi:nil=\"true\" /></SourcingRuleApplied></ArrayOfSourcingRuleApplied>",
"severity" : "Success",
"summary" : "SourcingRules applied for the transaction, XML format"
}, {
"refersTo" : "",
"source" : "Avalara.AvaTax.Services.Tax",
"details" : "[{\"LineNo\":\"1\",\"SourcingRuleId_Sourcing\":6,\"Sourcing\":\"D\",\"SourcingRuleId_RateType\":0,\"RateType\":null,\"SourcingRuleId_JurisTypesApplicableId\":0,\"JurisTypesApplicableId\":null}]",
"severity" : "Success",
"summary" : "SourcingRules applied for the transaction, JSON format"
} ],
"modifiedDate" : "2017-09-14T12:56:39",
"locked" : false,
"totalTaxable" : 5.0,
"exchangeRate" : 1.0,
"code" : "07600000270001",
"totalAmount" : 5.0,
"version" : 1,
"id" : 0,
"exchangeRateEffectiveDate" : "2017-09-14T00:00:00",
"date" : "2017-09-14T00:00:00",
"status" : "Temporary",
"isSellerImporterOfRecord" : false,
"modifiedUserId" : 255612,
"totalTax" : 0.31,
"paymentDate" : "2017-09-14T00:00:00",
"totalTaxCalculated" : 0.31,
"customerVendorCode" : "OROMS",
"type" : "SalesOrder",
"totalExempt" : 0.0,
"lines" : [ {
"exemptAmount" : 0.0,
"taxCode" : "P0000000",
"quantity" : 1.0,
"isItemTaxable" : true,
"taxOverrideType" : "TaxDate",
"tax" : 0.31,
"description" : "",
"ref1" : "OF",
"reportingDate" : "2017-09-14T00:00:00",
"exemptCertId" : 0,
"ref2" : "00001",
"lineNumber" : "1",
"id" : 0,
"taxCalculated" : 0.31,
"lineAmount" : 5.0,
"taxOverrideReason" : "TaxDate",
"itemCode" : "OF",
"details" : [ {
"rate" : 0.0625,
"exemptAmount" : 0.0,
"jurisType" : "STA",
"jurisCode" : "25",
"tax" : 0.31,
"taxName" : "MA STATE TAX",
"taxType" : "Sales",
"country" : "US",
"rateTypeCode" : "G",
"id" : 0,
"taxCalculated" : 0.31,
"rateType" : "General",
"taxAuthorityTypeId" : 45,
"region" : "MA",
"stateAssignedNo" : "",
"taxableAmount" : 5.0,
"transactionLineId" : 0,
"nonTaxableAmount" : 0.0,
"jurisName" : "MASSACHUSETTS",
"transactionId" : 0
} ],
"taxOverrideAmount" : 0.0,
"taxableAmount" : 5.0,
"taxIncluded" : false,
"taxDate" : "2017-09-14T00:00:00",
"transactionId" : 0,
"discountAmount" : 0.0
} ],
"taxDate" : "0001-01-01T00:00:00",
"summary" : [ {
"rate" : 0.0625,
"exemption" : 0.0,
"jurisType" : "State",
"jurisCode" : "25",
"tax" : 0.31,
"taxName" : "MA STATE TAX",
"taxAuthorityType" : 45,
"taxType" : "Sales",
"country" : "US",
"rateTypeCode" : "G",
"taxCalculated" : 0.31,
"taxable" : 5.0,
"rateType" : "General",
"nonTaxable" : 0.0,
"taxGroup" : "",
"region" : "MA",
"stateAssignedNo" : "",
"jurisName" : "MASSACHUSETTS"
} ],
"adjustmentReason" : "NotAdjusted",
"companyId" : 0,
"reconciled" : false,
"addresses" : [ {
"city" : "WESTBORO",
"latitude" : "42.282624",
"boundaryLevel" : "Address",
"country" : "US",
"longitude" : "-71.569295",
"line1" : "1800 WEST PARK DRIVE",
"postalCode" : "01581",
"taxRegionId" : 1053,
"id" : 0,
"region" : "MA",
"line2" : "",
"transactionId" : 0,
"line3" : ""
}, {
"city" : "Fort Myers",
"latitude" : "0",
"boundaryLevel" : "Zip5",
"country" : "US",
"longitude" : "0",
"line1" : "24 Metro Parkway",
"postalCode" : "33907",
"taxRegionId" : 112,
"id" : 0,
"region" : "FL",
"line2" : "",
"transactionId" : 0,
"line3" : ""
}, {
"city" : "FRAMINGHAM",
"latitude" : "42.316847",
"boundaryLevel" : "Zip5",
"country" : "US",
"longitude" : "-71.423129",
"line1" : "100 MAIN STREET",
"postalCode" : "01701",
"taxRegionId" : 1053,
"id" : 0,
"region" : "MA",
"line2" : "",
"transactionId" : 0,
"line3" : ""
} ]
}
A sample of the Tax Response Message (CWTaxResponse) is presented below.
<Message date_created="Thu Sep 14 00:00:00 PDT 2017" type="CWTaxResponse" target="OROMS" source="Avalara">
<TaxInterfaceResponse order_addl_charge_seq="" tax_type="SalesOrder" order_shipto_nbr="1" order_nbr="270" entity="" company="76" request_type="QUOTATION">
<OrderDetails>
<OrderDetail odt_total_tax_rate="625" odt_total_tax_amt="31" odt_line_item_type="OF" odt_line_nbr="00001">
<JurisdictionLevels>
<JurisdictionLevel jurisdiction_level_tax_rate="625" jurisdiction_level_tax_amt="31000" jurisdiction_level_desc="MASSACHUSETTS" jurisdiction_level="STATE"/>
</JurisdictionLevels>
</OrderDetail>
</OrderDetails>
</TaxInterfaceResponse>
</Message>
Generic Tax API | Contents | SCVs | Search | Glossary | Reports | Solutions | XML | Index | Vertex Interface |
OE_APP_C OMS 17.1 September 2018 OTN