Administration & Utilities
Name | Type | Description | Comments |
AvaTax configuration window | Required | The AvaTax Configuration Dialog Window must allow the user to specify the configuration/connection information
| |
Company code | Conditional | Merchants should have the ability to designate which company within their account is linke to this intgration. This is done using the QueryCompanies API. | This is required if a Test Connection button isn't included. |
Test Connection | Conditional | 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. | This is required if a Company Code Lookup isn't included. |
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 | If the platform is system of record and there are no further processing of the transaction to other systems, this requirement may be waived as the expectation is that this system will record all transactions to AvaTax. |
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 doesn't 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, and so on. 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 log Avalara service calls, specifically. | |
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. | |
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. |
Items/Charge Integration
Name | Type | Description | Comments |
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/SKU | Required | Users must be able to associate an item or item group to an AvaTax Tax Code to describe the taxability (for example, "Clothing-Shirts" – "B-to-C"). | |
HS Code Mapping - Item/SKU | Required | Users must be able to associate an item or item group to a harmonized classification code. HS - 10 digit (Country of Destination specific). This is an array of destination countries. | |
HS Code Parameter Mapping - Item/SKU | Required | Users must be able to provide any parameter details associated to items/SKUs.
| Partners should use the ListParametersUsage API to check if the HS code associated with a product requires specific parameters. This can be done by filtering based on the |
Non-Standard Items | Required | Association of Freight/Shipping and/or Handling and Insurance charges (if applicable = CIF Countries) to an AvaTax Tax Code to describe the taxability. | |
Tax Code Lookup | Required | Pull in and surface Avalara Tax Codes within application using the ListTaxCodes API. |
Sales/Billing Documentation Integration
Name | Type | Description | Comments |
Document Code | Required | Values that can come across to AvaTax as the | |
Customer Code | Required | Values that can come across to AvaTax as the | |
Document Date | Required | Value comes across to AvaTax as the | |
Ship From Address | Required | Value sent to AvaTax at the header and line levels for the address where items are shipped from. | |
Ship To Address | Required | Value sent to AvaTax at the header and line levels for the address where items are shipped to. | |
Goods or Place Service Rendered Address | Suggested | Your integration should be able to store at the header or line levels the full address where the goods are located when there is no transportation. This is required if your platform accepts this address. | |
Import Address | Conditional | If your application supports Import addresses, then your integration must be able to store at the header or line levels the full address where goods are imported into. | |
Line Number | Required | The value for each line within a transaction, specified using a unique line number. | |
Quantity | Required | The value for the quantity of an item for each line of a transaction. | |
Item Code | Required | Identify the | |
Item Description | Required | Identify item/service/charge description to pass to the AvaTax service with a human-readable description or item name. | |
Amount (extended) | Required | The value sent to AvaTax as the total amount for each line item in a transaction, keeping in mind the status of the | |
Include Tax in Line Amounts | Required | Users must be able to specify on each line in a transaction whether the total line amount includes tax. | |
Tax Code | Required | Value sent to AvaTax as the | |
HS Code | Suggested | The harmonized classification code of the product. Verify within app HTS (10 digits) can vary by country. | If an HS Code isn't included in the transaction request, then use the estimator functionality. |
HS Code Parameters | Conditional | Users should be able to provide any parameter details associated to items/SKUs.
| Partners should use the ListParametersUsage API to check if the HS code associated with a product requires specific parameters. This can be done by filtering based on the |
Product Category Path | Conditional | Your integration may need to include a product category path in the API request. | If a full HSCode (10 digit) isn't included in the transaction request, then this product category path is required. |
Shipping/Freight Handling in Transactions | Required | The handling of shipping and freight in AvaTax must match your application's implementation. For VAT transactions, freight can be included in the total amount or added as a separate line. | |
Discount Transactions | Required | Users must ensure that discounts on transactions are processed appropriately. | |
Verify that the 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. | |
Sales Order/Sales Invoice | Required | Your integration must mirror your system's workflow as it relates to orders and invoices and use the appropriate document types. | |
Commit Transactions | Required | Your integration must mirror your system’s workflow for a transaction lifecycle when committing documents. | |
EU Invoice Messaging | Required | Display and store any messaging returned by the AvaTax engine on the customer invoice. | |
VAT Code in Responses | Required | Display and store the VAT code returned by the AvaTax engine in the ERP transaction record. | |
Currency Code | Required | The three-character currency code at the document level sent to AvaTax for transactions. | |
Exchange Rate | Suggested | Your integration should allow users to specify an exchange rate for transactions. | |
Exchange Rate Currency Code | Conditional | If your application allows users to input an exchange rate, then you must allow users to also include the currency code for the exchange rate. | |
Exchange Rate Effective Date | Conditional | If your application allows users to input an exchange rate, then you must also allow users to specify the effective date of the exchange rate in a transaction. | |
Business Identification Number | Suggested | Users should have a way to specify the customer's business identification number (also known as VAT Registration ID). This data element should be found directly on the transaction header. | |
Country Code | Required | The value sent to AvaTax as the two-character | |
Transport | Required | Users must be able to specify who in the VAT transaction is responsible for handling the transportation of the physical goods. | |
Is User the Importer of Record | Suggested | Your integration should allow users to specify whether the user is the importer of record for a transaction. | |
Second Hand Goods | Suggested | Users should be able to specify whether the goods being sold in a VAT transaction are second hand (used). | |
Counterparty Registered Through Fiscal Representative | Suggested | Your integration should allow users to specify whether the counterparty in a sales transaction is registered through a fiscal representative in a given country calculating VAT. | |
Avalara Client Registered Through a Fiscal Representative | Suggested | Your integration should allow users to specify whether the Avalara client is registered through a fiscal representative in the given Nexus country for VAT. | |
Delivery Terms | Required | Your integration must include a document-level parameter that identifies who is responsible for the duties, taxes, and import fees. Available values are:
|
|
Buyers Agent | Conditional | An indicator showing whether the merchant is the buyer’s agent in a given transaction, collecting duties on behalf of the end-customer. | Required if integrating with an Ecommerce or Marketplace application. If this Buyer Agent flag = |
De Minimus Messaging | Required | Ensure that appropriate de minimus messages are displayed in responses. | |
Display Customs Duty and Import Tax | Required | Your integration must include appropriate Customs Duty and Import Tax details in responses. This includes displaying custom clearance fees, where applicable, as information to the Buyer when the Seller is not the acting as the Importer of Record. | For Custom Clearance fees to be included in the response, the CCF entitlement must be enabled on the merchant's AvaTax account. |
Server Audit Clarity and Installation Requirements
Name | Type | Description | Comments |
Pass Connector Identifier Information via the X-Avalara-Client HTTP Header | Required | Integrations must include information about the connector, such as name, version, and company name, as a signature to each transaction. | |
Reasonable Messages 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 system. | |
Reasonable Ratio of Tax Determination 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 | Required | Users should have an easy and trouble-free installation experience. |
Advanced Feature - Trade Agreements
Name | Type | Description | Comments |
Preferred Program Indicator - Document/Line Level Parameter | Required | Your integration should provide an option for users to indicate on a transaction whether the CDIT calculation should use a preferred customs duty rate (e.g. USMCA) rather than the standard duty rate otherwise calculated. This is done using the | Example
|
Country of Manufacture - Document/Line Level Parameter | Required | Your integration must provide the country code of the country that manufactured the products at the line of each transaction. This is done using the | Example
|