Avalara AvaTax Interface

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

AvaTax Processing

Tax Request Maps

- Tax Interface Request Message > AvaTax Request Message

- AvaTax Response > Tax Interface Response Message

Sample Tax Messages

- 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 Tax identification number, the merchandise and charges on the customer’s orders are not taxable. Order Management System passes the exemption tax identification number to AvaTax. Although Order Management System does not pass the customer’s tax exempt Expiration date, order entry does not let you create an order flagged as tax-exempt if the customer’s Expiration 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.

Order Broker fulfilling orders: Invoice request messages are not sent to AvaTax for orders created to fulfill orders that originated in Order Management System, were submitted to Order Broker, and then submitted to Order Management System because Order Broker selected the Order Management System warehouse for fulfillment or sourcing. See Order Broker Integration for background.

AvaTax Processing

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.

Tax Request Maps

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

company

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

source

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

sold_to_cust_class

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 (labeled the Tax identification)

resale_exemption_nbr

exemptionNo

The Tax identification number. Up to 30 positions, and can include numbers, letters, and special characters.

Company + Order # + Ship To # in Order Ship To table

company + order_nbr + order_shipto_nbr

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_created + time_created

date

The date the transaction took place, in YYYY-MM-DDTHH:MM:SS format.

N/A

request_type

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

request_type

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

odt_line_nbr + odt_line_item_type

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

odt_line_item_type

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

odt_qty

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

odt_tax_override

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

odt_tax_override_amt

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

odt_tax_override

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

odt_item

description

A description of the item.

N/A

odt_line_item_type

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

odt_extended_price

amount

The amount of tax.

 

 

ref2

 

ITM number + SKU code in Order Detail table

odt_item + odt_SKU

or

odt_line_item_type

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

odt_item_desc

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

ship_to_city

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

ship_to_country

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

ship_to_addr1

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

ship_to_addr2

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

ship_to_addr3

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

ship_to_postal

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

ship_to_state

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

ship_from_city

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

ship_from_country

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

ship_from_addr1

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

ship_from_addr2

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

ship_from_addr3

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

ship_from_postal

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

ship_from_state

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

date_created

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

type

N/A

CWTaxResponse defaults.

N/A

target

N/A

OROMS defaults.

N/A

source

N/A

Avalara defaults.

 

TaxInterfaceResponse

type

tax_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

Company in Order Ship To table

From the company in the corresponding Tax Request Message (CWTaxRequest).

type

request_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

odt_total_tax_rate

N/A

 

totalTax

odt_total_tax_amt

Tax in Order Detail table

 

itemCode

odt_line_item_type

N/A

 

lineNumber

odt_line_nbr

Line # in Order Detail table

 

 

JurisdictionLevel

 

rate

jurisdiction_level_tax_rate

N/A

 

tax

jurisdiction_level_tax_amt

N/A

 

jurisType

jurisdiction_level_desc

N/A

 

jurisType

jurisdiction_level

N/A

Valid values are:

• Country

• Composite

• State

• Country

• City

• Special

Sample Tax Messages

CWTaxRequest: Sample Message

AvaTax Request: Sample Message

AvaTax Response: Sample Message

CWTaxResponse: Sample Message

CWTaxRequest: 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" : ""

} ]

}

CWTaxResponse: Sample Message

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>

OE_APP_C OMSCS 19.0 December 2019 OHC