# Core sales and use tax requirements

Source: https://developer.avalara.com/avatax-dm-combined-erp/about-this-guide/sales-use-tax-requirements/

# Core sales and use tax requirements

This section provides an overview of the [Sales Tax](https://developer.avalara.com/certification/avatax/sales-tax-badge/) badge requirements that you need to meet in order to become a certified ERP partner. Review this section to help you plan your integration.

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

Administration and utilities

This section describes the requirements for the settings window of your integration.

Requirement

Use Case

Endpoints/models

Required/Conditional/Suggested

[Option to disable AvaTax](/avatax-dm-combined-erp/common-setup/design-the-user-experience/sales-and-use/disable-avatax)

Merchants/users must have the option to turn on or off the AvaTax Calculation service, independent of any other Avalara product or service. For example, if a customer does not 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

[Disable document recording](/avatax-dm-combined-erp/common-setup/design-the-user-experience/sales-and-use/disable-document-recording)

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

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

Required

[Address validation implementation](/avatax-dm-combined-erp/common-setup/design-the-user-experience/sales-and-use/address-validation)

Merchants/users must have a way to validate addresses entered into AvaTax. This can be implemented using 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

[Display prices with tax included](/avatax-dm-combined-erp/common-setup/design-the-user-experience/sales-and-use/display-prices-with-tax)

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.

This is required for a [VAT badge](https://developer.avalara.com/certification/avatax/VAT-badge/).

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

Conditional. This is required for a [VAT badge](https://developer.avalara.com/certification/avatax/VAT-badge/).

Customer record integration

This section describes the requirements for setting up your customers.  

Requirement

Use Case

Endpoints/models

Required/Conditional/Suggested

[Customer code](/avatax-dm-combined-erp/sales-tax-badge/designing/customer-code)

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

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

Required

[Entity use code input](/avatax-dm-combined-erp/sales-tax-badge/designing/entity-use-code)

Merchants/users must be able to input a group of codes that indicate the type of exemption. These can be standard codes as well as custom codes.

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.

[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/)

Required

[Line-level exemptions](/avatax-dm-combined-erp/sales-tax-badge/designing/line-level-exemptions)

Merchants/users should be able to identify individual items on a transaction as exempt from tax. This allows merchants to sell a mixture of exempt and non-exempt items in a single transaction.

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

Suggested

[Line-level exemption override](/avatax-dm-combined-erp/sales-tax-badge/designing/line-level-exemption-override)

Merchants/users should be able to enter a taxable line item on a transaction for an otherwise exempt customer.

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

Suggested

[Ship-to address exemption](/avatax-dm-combined-erp/sales-tax-badge/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

Item/charge integration

This section describes requirements for how you define what you're selling and how those items are associated with items in AvaTax.

Requirement

Use Case

Endpoints/models

Required/Conditional/Suggested

[Item code](/avatax-dm-combined-erp/sales-tax-badge/designing/item-code)

Merchants/users must be able to specify a unique item code that is passed to AvaTax. Items can be a maximum of 50 characters.  

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

Required

[Item description](/avatax-dm-combined-erp/sales-tax-badge/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 - item/SKU](/avatax-dm-combined-erp/sales-tax-badge/designing/avatax-tax-code-mapping)

Merchants/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").  

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

Required

[Tax code mapping group](/avatax-dm-combined-erp/sales-tax-badge/designing/tax-code-mapping-group)

Merchants/users should be able to assocate a group of items to an AvaTax Tax Code in order to describe the taxability of the group.  

N/A

Suggested

[Tax code lookup](/avatax-dm-combined-erp/sales-tax-badge/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/)

Suggested

[Non-standard items](/avatax-dm-combined-erp/sales-tax-badge/designing/non-standard-items)

Merchants/users must have a way of associating Freight/Shipping and/or Handling charges to an AvaTax Tax Code to describe the taxability.

N/A

Required

Sales/billing document integration

This section describes requirements for how information is passed from an invoice or a quote.  

Requirement

Use Case

Endpoints/models

Required/Conditional/Suggested

[Document code](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-document-codes)

Merchants/users must have a way to enter a document code in order 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](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-customer-code)

Merchants/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 dates](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-doc-date)

Merchants/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

[Tax calculation date](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-tax-calc-date)

Merchants/users must be able to override the date used to calculate tax.

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

Required

[Document type](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-doc-type)

Merchants/users must be able to specify the type of document that I am creating in a transaction.

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

Required

[Header level destination address](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-header-level-dest-address)

Merchants/users must be able to specify the ship-to address for an entire transaction.

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

Required

[Header level origin address](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-header-level-origin-address)

Merchants/users must be able to specify the ship-from address for an entire transaction.

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

Required

[Point of Order Acceptance - header level](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-poa-header)

Merchants/users should be able to specify the address of the place of business where the customer's order is accepted/approved and  should be able to include this at the document header level.

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

Suggested

[Point of Order Origin - header level](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-poo-header)

Merchants/users should be able to specify the address of the place of business where the customer's order is received and should be able to include this at the document header level.

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

Suggested

[Exemption override](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-exemption-override)

Merchants/users should be able to override an entire exempt transaction or individual exempt line items on a transaction and mark them as taxable.  

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

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

Suggested

[Reporting location code](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-reporting-location-code)

Merchants/users may be required to allow users to specify a reporting location code in transactions.

This is required if the application supports multiple "origin" addresses.

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

Conditional. This is required if the application supports multiple origin addresses.

[Exemption number](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-exemption-number)

Merchants/users may be required to provide a way for users to specify an exemption number at the header level of a transaction.

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

Conditional. This is required if the application does not support Customer Usage Type/Entity Use Code exemptions.

[Line number](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-line-number)

Merchants/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](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-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](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-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/hps1656397152776_hps1656397152776/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](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-quantity)

Merchants/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](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-amount)

Merchants/users must be able to specify the total amount (net currency value) for each line item in a transaction.

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

Required

[Tax code](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-tax-code)

Merchants/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

[Line-level addresses](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-line-level-addresses)

Merchants/users should be able to specify the ship-to, ship-from, point or order origin, and point of order acceptance address for each line in a transaction.

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

Suggested

[Verify Avalara calculated Tax Amount is used in transaction](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-verify-calc-tax-amount)

Merchants/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

[Transmit freight items separately](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-separate-freight-item)

Merchants/users must have a way to specify shipping and freight charges on a separate line in each transaction.

N/A

Required

[Document lifecycle](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-document-lifecycle)

Merchants/users must ensure that sales documents are processed through a logical document lifecycle.

N/A

Required

[Posting/committing invoices](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-post-commit-tax)

Merchants/users must determine when to record (commit) a transaction in the AvaTax account and also ensure that invoices are reported properly.

N/A

Required

[Voiding/deleting invoices](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-void-doc)

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.

[Discount transactions](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-discount-transactions)

Merchants/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

[Purchase order number](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-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 - line level](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-entity-use-code-line-level)

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](/avatax-dm-combined-erp/sales-tax-badge/transactions/latitude-longitude)

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

[Location codes](/avatax-dm-combined-erp/sales-tax-badge/transactions/cert-location-codes)

Merchants/users should be able to specify the address of an existing location model rather than retyping an address completely.

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

Suggested

Server and installation requirements

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

Requirement

Use Case

Endpoints/models

Required/Conditional/Suggested

[Pass connector identifier information](/avatax-dm-combined-erp/common-setup/design-the-user-experience/sales-and-use/pass-integration-identifier)

Merchants/users must include information about the connection as a signature in each transaction.  

N/A

Required

[Reasonable errrors on server-side analysis](/avatax-dm-combined-erp/common-setup/error-messages/reasonable-errors)

Merchants/users must ensure that the implementation does not include errors except those that would result from normal (but invalid) user input (for example, invalid address data). In addition, these errors must be logged/displayed appropriately in the application.

N/A

Required

[Reasonable ratio of tax determination and address validation calls to committed documents](/avatax-dm-combined-erp/sales-tax-badge/design-transaction-workflow/ratio-of-determination-and-address-validation)

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

Note that you can also provide a simple "estimated tax" option, just ensure that the estimate does not call to AvaTax.

N/A

Required

[Demonstrate and document installation of software](/avatax-dm-combined-erp/sales-tax-badge/designing/demo-document-install)

If there is something to install on the soure application, then you must demonstrate and document that process.

N/A

Required

[Previous](/avatax-dm-combined-erp/about-this-guide/common-requirements)

[Next](/avatax-dm-combined-erp/about-this-guide/refunds-requirements)