Sales Tax Calculation Badge Requirements

Administration & Utilities

NameTypeDescriptionComments
AvaTax configuration window
Required

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

Test Connection
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-tax calculation calls (i.e. CommitTransaction, VoidTransaction)

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 a timeout value for AvaTax requests.

Display prices with Tax Included
Suggested

Enable the tax inclusive flag in the tax calculation request.

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.

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, where customer data is 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

NameTypeDescriptionComments
Customer Code
Required

Identify the customerCode value (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 entityUseCode 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 entityUseCode 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

NameTypeDescriptionComments
Item Code
Required

Identify the itemCode value (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 to an AvaTax Tax Code to describe the taxability (e.g. Clothing-Shirts - B-to-C)

AvaTax Tax Code mapping - Item Groups
Suggested

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

Tax Code Lookup
Suggested

Pull in and surface Avalara Tax Codes within application.

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: UPC:+. 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.

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.

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

NameTypeDescriptionComments
Document Code
Required

Values that can come across to AvaTax as the code

Customer Code
Required

Values that can come across to AvaTax as the customerCode

Document Date
Required

Value comes across to AvaTax as the docDate

Tax Calculation Date
Required

Value that comes across to AvaTax as the taxCalculationDate

Document Type
Required

Integrations must send type values corresponding to the 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
Conditional

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

Required if Point of Order Acceptance address can be managed at the header level within the source application

Header Level - Point of Order Origin
Conditional

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

Required if Point of Order Origin address can be managed at the header level within the source application

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 exemptionNo

Required if 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 itemCode

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
Conditional

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

Required if destination (shipTo) address can be managed at the item line level

Line Level - Origin Address
Conditional

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

Required if origin (shipFrom) address can be managed at the item line level

Line Level - Point of Order Acceptance
Conditional

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

Required if Point of Order Acceptance address can be managed at the item line level

Line Level - Point of Order Origin
Conditional

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

Required if Point of Order Origin address can be managed at the item line level

Verify Avalara Calculated Tax Amount is used in transaction
Required

Confirm that the integration is taking the Tax Amount value from the tax calculation 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

Tax Calculation - Sales Order/Sales Invoices
Required

Ensure that invoices are processed through a logical document lifecycle

Transaction Posting/Committing
Required

Ensure that invoices are committed/posted for reporting appropriately

Transaction Cancelation/Voiding
Required

When invoices are deleted/canceled, 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

Discounts
Required

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

Purchase Order Number
Suggested

Value sent to AvaTax as the purchaseOrderNo

Line Level - Entity/Use Code
Conditional

Value sent to AvaTax for the entityUseCode at the line level

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

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

Server Audit Clarity and Installation Requirements

NameTypeDescriptionComments
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 tax calculation 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.

Advanced Feature - Refunds

Advanced Features contain functionality that we suggest building into your integration on top of what is included in the Certification Badge. The requirements and the respective ‘type’ values below apply only to the Advanced Feature, and “required” components are not mandatory to achieve the Certification Badge.

NameTypeDescriptionComments
Transaction Posting/Committing - Credit Memos
Required

Ensure that refunds are committed/posted for reporting appropriately. More information about handling refunds

Send original invoice date as tax calculation date for return orders/credit memos
Required

Process refunds using the tax override: tax date method. More information about handling refunds

Send current transaction date as document date for return orders/credit memos
Required

To report the return in the period in which it was processed, provide the date the refund was processed as the docDate value sent to AvaTax. More information about handling refunds

Support Tax Only Adjustments
Suggested

More information about handling refunds

Tax Override / Tax Amount
Suggested

Process refunds using the tax override: tax amount method