Handling sales tax exempt customers in your integration
Depending on how you store your customer information, there are several ways you can manage your customer’s exempt status. Here are all of the methods available, arranged in order of detail capability.
Directly in the GetTaxRequest
- ExemptionNo
- You can find this in the GetTaxRequest at the document and line level. Sending any value in this field will flag the transaction as exempt. This may be the easiest of the methods, but it doesn't provide any backing information to explain the exemption in an audit. That would need to be managed manually by the user.
- CustomerUsageType (Entity/Use Codes)
- This is also available in the GetTaxRequest at the document and line levels. It allows you to exempt a transaction by passing a pre-coded exemption reason (see values below), or you can create custom reasons with custom rules on the AvaTax Website. This at least provides a way of explaining the reason for the exemption, but any certificates will still be managed manually by the user.
Automating Certificate Management
- AvaTax Exemption Certificate Management System (ECMS)
- This is a certificate management tool available to all customers on the AvaTax Website. Certificates are imported to AvaTax directly as placeholder records for a real certificate maintained by you on file. Certificates are matched to the CustomerCode in the GetTaxRequests, and transactions are exempted where appropriate.
- Avalara CertCapture API
- This is an add-on product that independently manages your exemption certificates. It allows you to store certificate images, send certificate requests to your customers (individually or in batches), and allows your customers to fill out certificate information directly through a wizard which results in an actual certificate. Certificates are matched to customer codes (and states applicable, and date ranges) on GetTaxRequests, and transactions are exempted where appropriate. This is not automatically included with AvaTax and would need to be purchased separately.
EntityUseCode values
Entity/Use Code (previously called CustomerUsageType, now deprecated) is a value that can be passed at the document or line level of a tax request, and identifies the customer within a group. Frequently, it is used to mark a customer as fully or partially tax exempt. To that end, there are pre-populated customer taxability profiles present in the AvaTax system with rules for the United States and Canada:
- Federal government (United States)
- State government (United States)
- Tribe / Status Indian / Indian Band (both)
- Foreign diplomat (both)
- Charitable or benevolent org (both)
- Religious or educational org (both)
- Resale (both)
- Commercial agricultural production (both)
- Industrial production / manufacturer (both)
- Direct pay permit (United States)
- Direct mail (United States)
- Other (both)
- Not Used
- Local government (United States)
- Not Used
- Commercial aquaculture (Canada)
- Commercial Fishery (Canada)
- Non-resident (Canada)
MED1. US Medical Device Excise Tax with exempt sales tax
MED2. US Medical Device Excise Tax with taxable sales tax
You can modify the behavior of these codes (and create your own codes) with tax rules in the AvaTax Website.
Note that you only need to pass the single-letter code as the CustomerUsageType to trigger the exemption behavior.
Exempt Transaction in Canada
How do you make transactions exempt in Canada? You have a few options:
- Utilize the Tribal entity use code `C`. In Canada, it is exempt everywhere.
- Create a customer exemption using the Tribal entity use code. Add Canada and the province to exemption.
- Create a Product Taxability Tax Rule making the tax codes of the products non-taxable in Canada and in the province.
- Create an Exempt Entity Tax Rule making the entity use code of your choice tax exempt in Canada and in the province.
For more information on Canada Exemptions, check out this help page.