Avalara Developer Network Developer avaTax
Avalara Certified Solution

Avalara AvaTax Sales Tax Badge Requirements


Administration & Utilities

AvaTax configuration window - Required

The AvaTax Configuration Dialog Window must allow the user to specify the configuration/connection information

AvaTax Test Connect Button - Required

Test the connection to the AvaTax service and verify the AvaTax credentials. This is an important element to allow for successful troubleshooting of the AvaTax Service.

Control - Disable Document Recording - Required

In order for this connector to be used in conjunction with other integrations to AvaTax, the user must be able to control which connector is used for recording documents to AvaTax. From a technical standpoint, simply use DocType: 'SalesOrder' on all calls and suppress any non-getTax calls (i.e. cancelTax, postTax).

Note: Other documentation may refer to Document Committing, this is interchangeable with Document Recording

Disable AvaTax Option - Required

The user must have an option to turn on or off the AvaTax Calculation service independent of any other Avalara product or service.

Enable client side logging - Required

Enables detailed AvaTax transaction logging within the application including capture of round-trip processing time. We need the complete request/response for each call made to Avalara services. It does not need to run all the time as we understand the database will grow unnecessarily large – you are free to only log the last week, 30 days, custom, or have a control for the next N hours, etc. The spirit of the requirement is to assist customers and support in troubleshooting exercises, so it needs to be retrievable by an end user (or an administrator). It should be specifically Avalara service calls.

Request time out definition - Suggested

Define AvaTax request time out length, AvaTax best practices prescribes default setting of 300 ms.

Display Prices with Tax Included - Conditional

Enable the tax inclusive flag in the GetTax Request.

Option to display prices with tax included is required for VAT badge.

Enable AvaTax UPC - Suggested

When set to true: pass in UPC code into the Avalara ItemCode on the line level of the requests to our service. When UPC is unavailable, default to ItemCode.When set to false: use the default ItemCode mapping. See Product Master Management for more details.

NOTE: Alternately, UPC can be enabled on the item level.

User Implementation Guide - Required

The User Implementation Guide should contain screenshots and information allowing the end user to configure for AvaTax including where the company code is entered, where the credentials are entered and where tax codes can be mapped within the application. Click Here for a user guide template.

Address Validation Implemented - Required

An Address Validation utility is present in the application.


Customer Record Integration

Customer Code - Required

Identify customer code (number, ID) to pass to the AvaTax service.

Entity/Use Code - Required

This is a group of codes that indicate the type of exemption. See the standard codes, but be aware that users are able to create custom codes as well. It is best to manage this value in your application’s Customer record and pass it to AvaTax as CustomerUsageType at either the document or line level, whichever is applicable.

Exemption Number - Suggested

Customer record field populating exemption number in an AvaTax transaction. This is used for tracking those customers who have tax exempt transactions.

Line Level Exemptions - Suggested

Ability to identify individual items on a transaction as exempt from tax.

Line Level Exemption Override - Suggested

Ability to identify individual items on a transaction as Taxable to an otherwise exempt customer. Functionally, you will need to pass the value "Taxable" in the CustomerUsageType field at the line level.

Ship-To Address Exemption - Suggested

Ability to individually identify customer, ship-to locations as Exempt, separate from the customers default address.


Items/Charge Integration

Item Code - Required

Identify customer code (number, ID) to pass to the AvaTax service.

Item Description - Required

Identify item/service/charge description to pass to the AvaTax service with a human-readable description or item name.

AvaTax Tax Code mapping - Item Code/SKU - Required

Association of an item or item group to an AvaTax Tax Code to describe the taxability (e.g. Clothing-Shirts – B-to-C).

Tax Code Mapping Group - Suggested

Association of a GROUP of items to an AvaTax Tax Code to describe the taxability of the group.

Pass UPC - Suggested

See note in Administration/Utilities Integration section. If the user elects to use AvaTax UPC, ensure that the appropriate field containing UPC data is mapped to the ItemCode parameter formatted as: +. Example: “UPC:1234567890000”. by formatting the value with “UPC:” identifier, our engine can pick up the UPC code, and the user can avoid mapping a tax code for that item. If no UPC data is available still default to the regular ItemCode mapping.</p>

NOTE: The UPC functionality is a premium upgrade to the Avalara AvaTax subscription providing taxability decision (taxable vs. non-taxable) without requiring an Avalara Tax Code assignment.

Tax Code Lookup - Suggested

Pull in and surface Avalara Tax Codes within application.

Non Standard Items - Required

Association of Freight/Shipping and/or Handling charge to an AvaTax Tax Code to describe the taxability.


Sales/Billing Documentation Integration

DocCode - Required

Values that can come across to AvaTax as the DocCode.

CustomerCode - Required

Values that can come across to AvaTax as the Customer Code.

DocDate - Required

Value that comes across to AvaTax as the DocDate.

TaxCalculation Date - Required

Value that is used for Tax Calculation Date in AvaTax.

DocType - Required

DocType used for varying stages of the transaction life cycle.

Header Level - Destination Address - Required

Value that is sent to AvaTax for Destination Address at the header level.

Header Level - Origin Address - Required

Value that is sent to AvaTax for Origin Address at the header level.

Header Level - Point of Order Acceptance - Suggested

Value that is sent to AvaTax for PoA at the header level.

Header Level - Point of Order Origin - Suggested

Value that is sent to AvaTax for PoO at the header level.

Header Level - Exemption Override - Suggested

Area at Invoice screen where end user can check box to override existing Tax Exemption for the client.

Location Code - Conditional

Value that is sent to AvaTax for LocationCode at the header level.

If the application supports multiple 'origin' addresses, locationCode must be passed with the transactions.

Exemption Number - Conditional

Value that is sent to AvaTax for Exemption Number.

Required if CustomerUsageType/Entity Use Code exemption functionality is not present.

Line Number - Required

Value that is sent to AvaTax for the Line Number.

Item Code - Required

Value that is sent to AvaTax for the Item Code.

Item Description - Required

Value that is sent to AvaTax for the Item Description.

Quantity - Required

Value that is sent to AvaTax for the Quantity.

Amount (extended) - Required

Value that is sent to AvaTax for the Amount.

Tax Code - Required

Value that is sent to AvaTax for the Tax Code.

Line Level - Destination Address - Suggested

Value that is sent to AvaTax for Destination Address at the line level.</p

Line Level - Origin Address - Suggested

Value that is sent to AvaTax for the Origin Address at the line level.

Line Level - Point of Order Acceptance - Suggested

Value that is sent to AvaTax for PoA at the line level.

Line Level - Exemption Override - Suggested

Area on the Invoice screen at the line level where end user can check box to override existing Tax Exemption for the client specific to a single line of the Invoice.

Line Level - Point of Order Origin - Suggested

Value that is sent to AvaTax for PoO at the line level.

Verify Avalara Calculated Tax Amount is used in transaction - Required

Confirm that the integration is taking the Tax Amount value from the GetTax response and using that to decorate the tax fields in the platform. Do NOT take our rate and use it to calculate the tax within the platform itself.

Freight items must be transmitted separately - Required

Freight Items must be sent to AvaTax as a separate line item with a configurable tax code.

GetTax call – Sales Order/Sales Invoices - Required

Ensure that invoices are processed through a logical document lifecycle.

PostTax/CommitTax Call – Invoices - Required

Ensure that invoices are committed/posted for reporting appropriately.

CancelTax call – voided/deleted Invoices - Conditional

When invoices are deleted/cancelled, this information must be transmitted to AvaTax.

If the source application supports void/delete, then the corresponding transaction on AvaTax must be updated with the current transaction status.

Send discounts appropriately - Required

Standard discounts included in line-level extended amount, manufacturer’s coupons and hostess credits transmitted as additional line items.

Send optional header level data elements – Purchase order number - Suggested

Purchase order number associated with this transaction.

Send optional line (detail) level data elements – Entity Use Code (aka CustomerUsageType) - Suggested

Line level exempt triggers are required if line-level exemption can be managed in the application, and should be transmitted in a manner analogous to document-level exemption.

Send optional line (detail) level data elements – Destination address - Suggested

Required if destination (ship-to) address can be managed at the item line level.

Send optional line (detail) level data elements – Origin address - Suggested

Required if origin (ship-from, warehouse) address can be managed at the item line level.

Include Point of Order Origin in GetTax request - Conditional

Required if Point of Order Origin field is available in the source application.

Include Point of Order Acceptance in GetTax request - Conditional

Required if the Point of Order Acceptance is available in the source application.

Latitude/Longitude Support - Suggested

If host application captures GPS coordinates with Addresses; for US addresses, pass the Lat and Long along with address. This is especially useful in situations where a location or service site can only be pinpointed by geo location.

Send Location Code with Transaction - Conditional

If multiple origin addresses are supported, the corresponding origin Location Code must be included with the GetTax request.


Server Audit Clarity and Installation Requirements

Pass connector identifier information via the TaxSvc.Profile.Client property - Required

Integrations must include information about the connector, such as name, version, and company name, as a signature to each transaction.

EXAMPLE: TaxSvc.Profile.Client = “Dynamics AX,9.0,MyApp for AX by ACME INC,1.0”

Reasonable errors on server-side analysis - Required

There should be no errors except those that would result from normal (but invalid) user input (e.g. invalid address data). Such errors must be logged/displayed appropriately to the application.

Reasonable ratio of GetTax and address validation calls to committed documents - Required

In a normal workflow, we expect to see (on average, including abandoned carts) up to 10 tax calculations per finalized document. In a straight-forward order entry process, the number of calls should be about three to five.

Demonstrate and document installation of software – Install Shield or equivalent where applicable - Required

Customers should have an easy and trouble free installation of the software.