# Core requirements

Source: https://developer.avalara.com/ecommerce-integration-guide/about-this-guide/core-requirements/

This section provides an overview of the core sales tax badge requirements that you need to meet to become a certified partner. Review this section to help you plan your integration.

In addition to these core requirements, the next section describes advanced features that you can include in your integration.

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Administration and utilities](javascript:void\(0\);)

This section describes the settings window of your integration.

Requirement

Use case

Endpoints/Models

Type

[AvaTax configuration window](/ecommerce-integration-guide/designing/avatax-configuration-window)  

Merchants/users need to be able to access a URL that points to AvaTax and sign in using either their username/password or their account number/license key.

[QueryCompanies](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Companies/QueryCompanies/)  

Required

[Company code](/ecommerce-integration-guide/designing/company-code)  

Merchants/users must have the ability to designate which company within their account is linked to this integration.

[QueryCompanies](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Companies/QueryCompanies/)  

Required

[Test AvaTax connection](/ecommerce-integration-guide/designing/test-avatax-connection)  

Merchants/users need to be able to test the connection to the AvaTax service and verify their AvaTax credentials. This is required if a company code isn't lookup isn't provided on the admin page.

[Ping](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Utilities/Ping/), [QueryCompanies](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Companies/QueryCompanies/)

Conditional

[Option to disable document recording](/ecommerce-integration-guide/designing/option-to-disable-document-recording)  

In order for this connector to be used with other integrations, merchants/users must be able to control which connector to use for recording (committing) documents to AvaTax.

[CreateTransactionModel > Type](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/CreateTransactionModel%20%3E%20type/)  

Required

[Option to disable AvaTax](/ecommerce-integration-guide/designing/option-to-disable-avatax)  

Your integration must allow merchants/users to turn on or off the Avalara Calculation engine service, independent of any other Avalara product or service. For example, if a customer doesn't agree with the amount of tax that AvaTax calculated, they can turn off this calculation and post using their own calculated tax.

N/A

Required

[Option to enable client-side logging](/ecommerce-integration-guide/designing/option-to-enable-client-side-logging)  

Your integration must allow merchants/users to retrieve detailed AvaTax transaction logging within the application, including the capture of round-trip processing time, and they need the complete request/response for each call made to Avalara services.

N/A

Required

[User guide](/ecommerce-integration-guide/designing/user-guide)  

Your integration must provide merchants/users with a user guide. Include in this guide screenshots and information allowing the user to configure AvaTax, including to where enter the company code, where to enter credentials, and how to map tax codes within the application.

N/A

Required

[Address validation service](/ecommerce-integration-guide/designing/address-validation-service)  

Your integration must allow merchants/users to validate addresses entered into AvaTax. You can use Avalara's address validation service or some other service.

[ResolveAddressPost](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Addresses/ResolveAddressPost/)  

or some other third-party validator

Required

[Option to display prices with tax included](/ecommerce-integration-guide/designing/tax-included-option)  

Merchants/users may need to be able to show prices in transactions with the tax included. They can do this by enabling the `taxIncluded` parameter in the line level of the CreateTransaction model.

Note that this is required for a VAT badge.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Customer record integration](javascript:void\(0\);)

This section describes the requirements for setting up your customers.

Requirement

Use case

Endpoints/Models

Type

[Customer codes](/ecommerce-integration-guide/designing/customer-codes)  

Merchants/users must be able to input a case-sensitive and unique customer code (number, ID) that will be passed to the AvaTax service. Codes must be no more than 50 characters.

N/A

Required

[Entity use codes](/ecommerce-integration-guide/designing/entity-use-codes)  

Merchants/users must be able to input a group of codes that indicate a type of exemption or exemption override. These can be standard codes and custom codes, and users can specify them at either the document or line item.

It’s 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.

[ListEntityUseCodes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListEntityUseCodes/)  

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Ship-to address exemption](/ecommerce-integration-guide/designing/ship-to-address-exemption)  

Merchants/users should be able to identify individual customer ship-to locations as exempt, separate from the customers default address.

N/A

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Items/charge integration](javascript:void\(0\);)

This section describes the requirements for how you define what you're selling and how you associated those with an item in AvaTax.

Requirement

Use case

Endpoints/Models

Type

[Item code](/ecommerce-integration-guide/designing/item-code)

Merchants/users must be able to specify a unique item code that's passed to AvaTax. Item codes allow for a maximum of 50 characters.

[ItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/ItemModel/)  

Required

[Item description](/ecommerce-integration-guide/designing/item-description)  

Merchants/users must be able to input a human-readable description for each `ItemCode` in their product catalog.

[ItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/ItemModel/)  

Required

[AvaTax tax code mapping](/ecommerce-integration-guide/designing/tax-code-mapping)  

Merchants/users must be able to associate an item or item category to an Avalara tax code to describe the taxability (for example, "Clothing-Shirts" – "B-to-C").

[ListTaxCodes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListTaxCodes/)  

Required

[Tax code lookup](/ecommerce-integration-guide/designing/tax-code-lookup)  

Merchants/users should be provided with a method for looking up tax codes.

[ListTaxCodes](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Definitions/ListTaxCodes/)  

Required

[Non-standard items](/ecommerce-integration-guide/designing/non-standard-items)  

Merchants/users must have a way of associating Freight/Shipping and/or Handling charges to an Avalara tax code to describe the taxability.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Sales/billing document integration](javascript:void\(0\);)

This section describes requirements for how to pass information from an invoice or quote.

Requirement

Use case

Endpoints/Models

Type

[Document code](/ecommerce-integration-guide/transactions/certification-requirements/document-code)  

Users must have a way to enter a document code to tie transactions in AvaTax to the transactions in their underlying system.  

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Required

[Customer code](/ecommerce-integration-guide/transactions/certification-requirements/customer-code)  

Users must have a way to specify a customer code that can be used to identify any certificates linked to the customer.

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Required

[Document date](/ecommerce-integration-guide/transactions/certification-requirements/document-date)  

Users must be able to specify the calendar date when a transaction occurs.  

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Required

[Ship-from address (header and line levels)](/ecommerce-integration-guide/transactions/certification-requirements/ship-from-address)  

Your integration must be able to store at the header and line levels the address where items are shipped from.  

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required  

[Ship-to address (header and line levels)](/ecommerce-integration-guide/transactions/certification-requirements/ship-to-address)  

Your integration must be able to store at both the header or line levels the address where items are shipped to.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Required

[Line number](/ecommerce-integration-guide/transactions/certification-requirements/line-number)  

Users must be able to include multiple lines on a transaction, with each line specified using a unique line number.  

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Item code](/ecommerce-integration-guide/transactions/certification-requirements/item-code)  

Merchants/users must be able to specify an item code for each line in a transaction in order to associate a tax code for that item.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Item description](/ecommerce-integration-guide/transactions/certification-requirements/item-description)  

Merchants/users must be able to include a description of an item on each line of a transaction. For [SST](https://knowledge.avalara.com/bundle/voh1659520148233_voh1659520148233/page/SST_transaction_requirements.html), this description must be human readable.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Quantity](/ecommerce-integration-guide/transactions/certification-requirements/quantity)  

Users must be able to specify the quantity of an item for each line of a transaction.  

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Amount](/ecommerce-integration-guide/transactions/certification-requirements/amount)

Users must be able to specify the total amount for each line item in a transaction, keeping in mind the status of the `isTaxIncluded` flag.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Tax code](/ecommerce-integration-guide/transactions/certification-requirements/tax-code)  

Users must be able to specify a tax code for each line item in a transaction.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Verify that the transaction uses the Avalara-calculated tax amount](/ecommerce-integration-guide/transactions/certification-requirements/verify-avalara-calculated-tax)  

Users must ensure that the tax amount value from a transaction response is used to populate the tax field in the integration.

N/A

Required

[Shipping/freight handling](/ecommerce-integration-guide/transactions/certification-requirements/shipping-freight-handling)  

The handling of shipping and freight in AvaTax must match your system's implementation.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Sales order/sales invoice workflow](/ecommerce-integration-guide/transactions/certification-requirements/sales-order-invoice-workflow)  

You must ensure that your integration processes invoices through a logical document lifecycle.

N/A

Required

[Discount transactions](/ecommerce-integration-guide/transactions/certification-requirements/discount-transactions)  

Users must ensure that discounts on transactions are processed appropriately.

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Required

[Commit transactions](/ecommerce-integration-guide/transactions/certification-requirements/commit-transactions)  

Your integration must mirror your system's workflow for a transaction lifecycle when committing documents.

[CommitTransaction](https://developer.avalara.com/api-reference/avatax/rest/v2/methods/Transactions/CommitTransaction/)  

Required

[Void/delete a document](/ecommerce-integration-guide/transactions/certification-requirements/void-delete-document)  

If the merchant's source application supports voiding/deleting invoices, then they must allow users to void/delete invoices in AvaTax.

[VoidTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/enums/VoidTransactionModel%20%3E%20code/)  

Conditional. This is required if the source application supports voiding/deleting invoices.

[Point-of-order origin address (header and line levels)](/ecommerce-integration-guide/transactions/certification-requirements/poo-address)  

If the merchant's source application supports a Point of Order Origin address, then they must provide this option to users in AvaTax at the header and line levels.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Conditional. This is required if the source application supports a Point of Order Origin address.

[Point-of-order acceptance address (header and line levels)](/ecommerce-integration-guide/transactions/certification-requirements/poa-address)  

If the merchant's source application supports a Point of Order Acceptance address, then they must provide this option to users in AvaTax and the header and line levels.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Conditional. This is required if the source application supports a Point of Order Acceptance address.

[Reporting location code](/ecommerce-integration-guide/transactions/certification-requirements/reporting-location-code)  

If the merchant's source application supports multiple origin addresses, then they must provide an option for users to specify a reporting location code in the determination request.

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Conditional for core. Required if the source application supports multiple origin addresses.

Required for POS.

[Purchase order number](/ecommerce-integration-guide/transactions/certification-requirements/po-number)  

Merchants/users should be able to specify a purchase order number for a transaction.

[CreateTransactionModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/CreateTransactionModel/)  

Suggested

[Entity use code (header and line levels)](/ecommerce-integration-guide/transactions/certification-requirements/entity-use-code)  

Merchants/users should be able to specify an entity/use code for each line item in a transaction.

[LineItemModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/LineItemModel/)  

Suggested

[Latitude/longitude support](/ecommerce-integration-guide/transactions/certification-requirements/latitude-longitude-support)  

Merchants/users should be able to pass latitude and longitude values into each address type to pinpoint that address by geo location. This is supported for US addresses only.

[AddressModel](https://developer.avalara.com/api-reference/avatax/rest/v2/models/AddressesModel/)  

Suggested

[![Closed](https://avalara-devdocs-prod.mcoutput.com/avatax-for-ecom/Content/Skins/Default/Stylesheets/Images/transparent.gif)Server and installation requirements](javascript:void\(0\);)

This section provides requirements for including calls made from the integration and for demonstrating/documenting the software installation process.

Requirement

Use case

Endpoints/Models

Type

[Pass integration identifier information](/ecommerce-integration-guide/certification-requirements/pass-integration-identifier)  

Users must include information about the connection as a signature in each transaction.

N/A

Required

[Consume and display error messages from API responses](/ecommerce-integration-guide/error-handling/consume-display-error-messages-from-responses)  

Users must ensure that the integration doesn’t include messages (errors, warnings, and so on) except those that would result from normal (but not valid) user input (for example, incorrect address data). In addition, these messages must be logged/displayed appropriately in the application.

N/A

Required

[A reasonable ratio of calculation and address validation calls to committed documents](/ecommerce-integration-guide/design-the-document-workflow/reasonable-ratio-of-calls)  

Users must ensure that the integration minimizes traffic. AvaTax will expect to see up to approximately 10 calculations per finalized document (including for abandoned carts). Failing to do so will drive up usage and billing.

You can also provide a simple "estimated tax" option, just ensure that the estimate doesn’t call to AvaTax.

N/A

Required  

[Demonstrate and document installation of software](/ecommerce-integration-guide/designing/demonstrate-and-document-installation)  

If there’s something to install on the source application, then you must demonstrate and document that process.

N/A

Required