Some shoppers may have tax exempt status for certain purchases. For example, individuals working for a charitable organization may be exempt from sales tax on items used in running the charity.
Avalara AvaTax and Vertex O Series can automatically take into account a shopper’s tax exempt status when they calculate sales tax. (Other tax processor services should be able to do this as well.) Configuring Commerce Cloud and your tax processor to handle tax exemptions involves the following steps:
The shopper obtains a tax exemption certificate from a taxing authority. (In the United States, the taxing authority is typically the state government of the state in which the shopper resides.) The certificate specifies what exemptions the shopper qualifies for.
The shopper provides you (the merchant) with a copy of the certificate.
Using the certificate management system supplied by your tax processor service, you upload the certificate to the service.
The tax processor returns a tax exemption code that is used to associate the shopper with the appropriate exemptions. (Some tax processors may use a different name for this value. Avalara AvaTax and Vertex O Series both refer to this as the customer code in their certificate management systems.) Or you can explicitly set the code to a specific value in the certificate management system.
You use the Commerce Cloud Admin API to set the
taxExemptionCode
property of the shopper’s profile to the code returned by the tax processor.
Once you have performed these steps, no further intervention is required unless the shopper’s tax exemption status changes. Each time the shopper places an order on your site, Commerce Cloud includes the shopper’s tax exemption code with the order data it sends to the tax processor. The tax processor uses the code to look up the shopper’s certificate and then applies the specified exemptions when it calculates sales tax on the order.
Set the shopper’s tax exemption code
The only configuration step actually performed in Commerce Cloud is setting the taxExemptionCode
property of the shopper’s profile. To do this, you use the updateProfile
endpoint in the Admin API. For example:
PUT /ccadmin/v1/profiles/110000 HTTP/1.1
Authorization: Bearer <access_token>
{
"taxExemptionCode": "187652"
}
Note that if the taxExemptionCode
property is null or an empty string, Commerce Cloud instead includes the value of the profileId
property as the tax exemption code when it sends order data to the tax processor. This means that if you explicitly set the exemption code in the certificate management system to the value of the shopper’s profileId
, you do not need to set the taxExemptionCode
property on the profile.
Set the tax exemption code for account-based commerce
For account-based commerce, the tax exemption certificate applies to the account as a whole, and Commerce Cloud sends the exemption code to the tax processor for every purchase made by that account, regardless of the shopper. The account has a taxExemptionCode
property that you set to this value using the updateOrganization
endpoint in the Admin API. For example:
PUT /ccadmin/v1/organizations/100002 HTTP/1.1
Authorization: Bearer <access_token>
{
"taxExemptionCode": "339657"
}