Sales Tax
The legacy sales tax docs have moved to this page: Legacy Sales Tax. If you are still using the old tax engine, please consult those pages.
Ways to Manage Sales Tax
UltraCart provides four ways to manage sales tax. They are listed below with their pros and cons.
Method | Pros | Cons |
---|---|---|
UltraCart Managed |
|
|
Self Managed |
|
|
Avalara |
| |
TaxJar |
| |
Sovos |
|
|
Special Fees
UltraCart Managed
The default and easiest way to collect sales tax for U.S. merchants is to allow UltraCart to manage tax collection.
UltraCart Managed Rates is the defaulted selection unless another Sales Tax integration is selected.
Important Notice Regarding UltraCart Managed Rates
Important Notice regarding Sales Tax Calculation
UltraCart Managed Rates: The rates are provided by Avalara and are only accurate to the zip code level.
There can be addresses within those zip codes that may have a higher rate, but to get that higher rate you will have to use an API style integration like Avalara or TaxJar service which can calculate that.
The free UltraCart Managed rates are simply the import of the free tax tables from Avalara. We can't modify those rates or guarantee perfect accuracy.
Important Note
United States Only
The "UltraCart" managed sales tax configuration pertains to the United States only.
For international support please contact one of the integrated Sales Tax processing services:
- TaxJar (United States & Canada)
- Avalera (Worldwide - Please contact Avalera directly for specific details)
As of 06/19/2019, the UC managed tax provider will populate the tax county automatically. This information can be backfilled upon request.
Required Steps:
- Activate
UltraCart Managed
as your tax provider. - Select all states where you wish to collect sales tax.
Activating UltraCart Managed as your tax provider
Selecting states to collect tax
Click the Settings button for UltraCart Managed. On the settings screen, select a state and click the plus button to add it to the list of states where tax is collected. When finished, click the Save button.
Editing State Level Options
You can edit the configured states to modify the state level options, by clicking the "pencil" icon:
State Level Options
Select the options you wish to enable or disable:
Then click the OK button to save the changes.
.
Self Managed State Editor Settings
Field | Description |
---|---|
Tax Shipping | When enabled, Tax will be applied to Shipping cost for the selected shipping method. |
Tax Gift Charge | When enabled, Tax will be applied to any configured Gift Charge configured in the gift giving configuration page. |
Tax Gift Wrap | When enabled, Tax will be applied to any configured Gift Wrapping fee's configured in the in the gift giving configuration page. |
Self Managed
Self managed sales tax collection allows merchants to configure every level of sales tax collection for both domestic and international sales.
Required Steps:
- Activate
Self Managed
as your tax provider. - Configure U.S. states for tax collection
- Add counties to each state
- Add cities to each county
- Configure other countries for tax collection
Activate Self Managed
as your tax provider
Configure U.S. states for tax collection
WIthin the settings for Self Managed, select a U.S. state from the drop down and click the plus button. This will add it to your taxable states.
Configuring all states
To add all 50 states, simply continue to click the plus button, as the drop-down list will automatically populate with the next unconfigured state, in alphabetical order.
Self Managed Options
For self managed, you must either supply the tax rate for the state and local jurisdictions OR select the "Use UltraCart Managed Rates".
The dialog window displays the following following settings:
Field | Description |
---|---|
Quickbooks Code | Self managed tax states may provide a custom QuickBooks Code for assigning a tax rate within QuickBooks. All other tax providers merely send down the actual state, county, and city names to QuickBooks and the tax jurisdictions are automatically created. |
Use UltraCart Managed Rates | Allow UltraCart to manage the Tax rates, eliminating the need to manually configure the rates for the State/County/City & Postal Code levels. |
Tax Shipping | If active, shipping is added to the taxable subtotal amount |
Tax Gift Wrap | If active, any gift wrap is added to the taxable subtotal amount |
Don't collect state tax | If active, the state tax rate is not collected, while the other jurisdictions may (or may not) be collected |
Don't collect county tax | If active, the county tax rate is not collected, while the other jurisdictions may (or may not) be collected |
Don't collect city tax | If active, the city tax rate is not collected, while the other jurisdictions may (or may not) be collected |
Don't collect postal code tax | If active, the postal code tax rate is not collected, while the other jurisdictions may (or may not) be collected |
After saving, the state will appear in the list of states configured for taxation.
Click the plus button at the right of the state to add county tax rates. The process is the same as the state tax rates.
Once the county is saved, click the plus sign next to the county to add city rates.
The Add City dialog contains the same fields as the state and county. Repeat this process for as many states, counties, and cities needed.
If you need to add postal code tax rates to a city, click the plus sign at the right of the city and follow the same process as the other jurisdictions.
Configure other countries for tax collection
Other countries are located to the right of the screen. The process for other countries is the same except it begins at the country level.
Avalara Configuration
NAVIGATE: Main Menu → Configuration → (middle menu) Checkout → Sales Tax
About
http://avalara.com tax compliance platform is the reliable foundation that powers the Avalara Compliance Cloud., a comprehensive, end-to-end solution to help you do tax compliance right.
Steps
First we will select Avalara , then we will configure the Avalara settings
Activate the Avalara provider by clicking on the radio button at the top left and then clicking the ‘Save’ button.
Once activated, click the Settings button:
On the settings screen, you must provide four values at a minimum to configure your Avalara integration.
Save the changes before testing the connection!Configure the Account ID, License Key, select the Active & Sandbox slider buttons.
See also: https://help.avalara.com/Avalara_AvaTax_Update/Get_your_license_key
When finished, save your settings and click the
Test Connection
button to ensure everything is working. You will see output similar to that below if you have connected Avalara to UltraCart successfully.
Configuring Items with Proper Avalara Tax Codes
Your items will need to be configured with the proper Avalara Tax Code in order to calculate the sales tax for the item.
So, you’ll edit each item then click the "tax" tab in the item editor:
Tax Code | Avalara tax code |
Description (optional) | Optional description of the Tax Code. |
Search Avalara Tax Codes | A search tool for the Avalara Tax Codes. See also: https://help.avalara.com/Avalara_AvaTax_Update/Guidelines_for_mapping_items_to_tax_codes |
Configuring Shipping Methods with Avalara Tax Codes
Next up, your shipping methods need to be configured with the appropriate Avalara tax codes in order to properly calculate the sales tax associated with Shipping.
To configure the Avalara Tax code to your shipping methods, edit each method one at a time, navigating to the "Tax Codes" tab in the shipping method editor:
Tax Code | Required Avalara Tax Code for proper sales tax calculation for shipping. |
Description | Optional description of the Tax Code. |
Search Avalara Tax Codes | A search tool for the Avalara Tax Codes. See also: https://help.avalara.com/Avalara_AvaTax_Update/Guidelines_for_mapping_items_to_tax_codes https://knowledge.avalara.com/bundle/dqa1657870670369_dqa1657870670369/page/Exempt_reason_matrix_for_the_U.S._and_Canada_entity_use_code_list.html#pus1650667484575 Tax Exempt Configuration |
TaxJar Configuration
Navigate: Main Menu → Configuration → (middle menu) Checkout → Sales Tax
About
http://taxjar.com A cloud-based platform automates the entire sales tax life cycle across all of your sales channels — from calculations and nexus tracking to reporting and filing. With innovative technology and award-winning support, we simplify sales tax compliance so you can grow with ease.
TaxJar Configuration
Activate the TaxJar provider by clicking on the checkbox at the top left and then clicking the Save button.
Once saved, click the Settings button to configure TaxJar.
Select the desired settings:
Field | Description |
---|---|
API Token | Paste your TaxJar API token here. |
Active | Slider button actives and deactivates Tax Jar. |
Use Distribution Center Location as the From Address When Calculating Taxes | If on, UltraCart will send your Distribution Center address as the 'from' address for tax calculations. |
Estimate Tax Only | |
Send test orders through to TaxJar | Allows test orders to be sent over to TaxJar. This is useful for initial testing of the integration. |
Send orders outside your nexuses to TaxJar | Sending orders outside your nexuses will result in more API calls (and possibly higher TaxJar bill), but will allow TaxJar to create new nexuses for states where your orders exceed their minimum threshold for reporting. |
Do not send channel partner orders to TaxJar | If enabled, orders coming in from channels partner integration will not be sent to TaxJar. |
TaxJar API Token
You can obtain your Taxjar API token by following the steps below:
Login to www.taxjar.com
Navigate to Account (https://app.taxjar.com/account)
Then click the link on the left side of the screen for SmartCalcs API.
The Live Token will display as shown below.
Test TaxJar Connection
After configuring the TaxJar token, you'll want to test the connection by clicking the "Tex Connection" button:
The test results will appear like this:
There should always be about 29 categories. These categories are managed by Taxjar and may vary, but it should always be around 30. Zero means a problem! |
To minimize the number of API calls to TaxJar, UltraCart will look up the TaxJar Nexus Regions and only send them orders for those particular regions. You can see the Nexus regions in the "Test Connection" output as shown below. |
Tax Codes
Item Tax Codes
Item tax codes have their own screen within the Item Editor. Edit an item, and then select the last tab. You may search for a tax code if needed.
Customer Tax Codes
You may provide a tax code for a customer profile by editing a customer, scrolling to the bottom, and providing codes. The tax section is located at the very bottom of the customer screen.
Tax Exemption Configuration
For Tax Exempt Customers, choose the appropriate Tax Exemption Type from the drop-down list.
ATTENTION: In order to apply customer specific tax settings (such as non taxable customers) you’ll need to log into TaxJar and create the customer there, then copy and paste the TaxJar Customer Code (TaxJar customer identifier) into the Taxes tab of the customer profile editor, as displayed above.
Shipping Method Tax Codes
You may assign a tax code to each shipping method. Avalara supports shipping tax codes and will use the code to determine if that particular shipping method should be taxed.
FAQ
Q: Refunding and order seems to replace the original transaction in Tax Jar, is this expected behavior?
A: This is how TaxJar handles refunds within their API.
Q: We are getting about twice as many API calls as orders, is this to be expected or can anything be done?
A: Yes, it's expected as we have to make rating calls throughout the checkout process as data changes. We have as much caching as possible in place to minimize calls, but it's still going to be greater than a 1:1 between API calls and orders placed.
TaxJar Knowledgebase Articles
https://support.taxjar.com/article/116-add-or-remove-states-from-your-dashboard
Tax Exempt Customers
For tax exempt customers you will need to utilize UltraCart's customer profiles functionality. Customer profiles can be marked as tax exempt. Typically merchants will allow tax exempt customer profiles to signup as wholesale customers and upload their tax exemption certificate (link available under Operations → Customer Profiles → Settings). Please note that if you're utilizing TaxJar and Avalara you will also need to perform additional setup to link the UltraCart customer profile to the tax exempt profile within their tax management system.
Troubleshooting
Troubleshooting Tool
If you need to verify or troubleshoot a tax calculation for an order, please first compare the rate using this simple sales tax look up tool:
https://www.taxjar.com/sales-tax-calculator/
If you see a discrepancy between the recorded sales tax in an order compared to the tax displayed in the look up tool, then you can further troubleshoot the issue by reviewing the logs for either Avalara or TaxJar.
Logs
Avalara and TaxJar record important communications for review. Shopping cart tax calculations are not stored to logs, but any operation against an order is logged. This means the final tax calculation is stored, as well as any transaction notifications (order placed and order refunded).
Within the Avalara and TaxJar settings screens are log buttons. Clicking either button will display a log history.
The log files will contain the request and response make to the tax service.
Here is an example. If the logs fail to assist you in solving any problems, notify UltraCart support and involve them.
estimateTax for order [START] ===== estimate tax request start ===== { "lines": [ { "number": "1", "quantity": 3, "amount": 58.5, "itemCode": "Bone", "description": "TJ\u0027s DOGGIE BONES (6 lbs.)\nCode: 4W5S41JXG4\nCode: B2BJZVM1PF\nCode: JMK9XQRRRZ" } ], "type": "SalesOrder", "companyCode": "", "date": "Nov 8, 2018 1:57:19 PM", "customerCode": "GuestCustomer", "purchaseOrderNo": "", "addresses": { "singleLocation": { "line1": "30 Pryor Street", "line2": "", "city": "Atlanta", "region": "GA", "country": "US", "postalCode": "30303" } }, "description": "DEMO-0009104135", "email": "joe@somewhere.com" } ===== estimate tax request end ===== ===== estimate tax response start ===== { "id": 0, "code": "dfaf643b-d866-407b-a1a4-3f3499e7fd1d", "companyId": 0, "date": "Nov 8, 2018 12:00:00 AM", "paymentDate": "Nov 8, 2018 12:00:00 AM", "status": "Temporary", "type": "SalesOrder", "customerVendorCode": "GuestCustomer", "reconciled": false, "purchaseOrderNo": "", "totalAmount": 58.5, "totalExempt": 0.0, "totalDiscount": 0.0, "totalTax": 5.21, "totalTaxable": 58.5, "totalTaxCalculated": 5.21, "adjustmentReason": "NotAdjusted", "locked": false, "version": 1, "exchangeRateEffectiveDate": "Nov 8, 2018 12:00:00 AM", "exchangeRate": 1.0, "description": "DEMO-0009104135", "email": "joe@somewhere.com", "modifiedDate": "Nov 8, 2018 6:57:17 PM", "modifiedUserId": 1152574, "taxDate": "Nov 8, 2018 12:00:00 AM", "lines": [ { "id": 0, "transactionId": 0, "lineNumber": "1", "description": "TJ\u0027s DOGGIE BONES (6 lbs.)\nCode: 4W5S41JXG4\nCode: B2BJZVM1PF\nCode: JMK9XQRRRZ", "discountAmount": 0.0, "exemptAmount": 0.0, "exemptCertId": 0, "isItemTaxable": true, "itemCode": "Bone", "lineAmount": 58.5, "quantity": 3.0, "reportingDate": "Nov 8, 2018 12:00:00 AM", "tax": 5.21, "taxableAmount": 58.5, "taxCalculated": 5.21, "taxCode": "PP051195", "taxCodeId": 38011, "taxDate": "Nov 8, 2018 12:00:00 AM", "taxIncluded": false, "details": [ { "id": 0, "transactionLineId": 0, "transactionId": 0, "country": "US", "region": "GA", "exemptAmount": 0.0, "jurisCode": "13", "jurisName": "GEORGIA", "stateAssignedNo": "", "jurisType": "STA", "nonTaxableAmount": 0.0, "rate": 0.040000, "tax": 2.34, "taxableAmount": 58.5, "taxType": "Sales", "taxName": "GA STATE TAX", "taxAuthorityTypeId": 45, "taxCalculated": 2.34, "rateType": "General", "rateTypeCode": "G" }, { "id": 0, "transactionLineId": 0, "transactionId": 0, "country": "US", "region": "GA", "exemptAmount": 0.0, "jurisCode": "121", "jurisName": "FULTON", "stateAssignedNo": "060A", "jurisType": "CTY", "nonTaxableAmount": 0.0, "rate": 0.030000, "tax": 1.76, "taxableAmount": 58.5, "taxType": "Sales", "taxName": "GA COUNTY TAX", "taxAuthorityTypeId": 45, "taxCalculated": 1.76, "rateType": "General", "rateTypeCode": "G" }, { "id": 0, "transactionLineId": 0, "transactionId": 0, "country": "US", "region": "GA", "exemptAmount": 0.0, "jurisCode": "04000", "jurisName": "ATLANTA", "stateAssignedNo": "060A", "jurisType": "CIT", "nonTaxableAmount": 0.0, "rate": 0.015000, "tax": 0.88, "taxableAmount": 58.5, "taxType": "Sales", "taxName": "GA CITY TAX", "taxAuthorityTypeId": 45, "taxCalculated": 0.88, "rateType": "General", "rateTypeCode": "G" }, { "id": 0, "transactionLineId": 0, "transactionId": 0, "country": "US", "region": "GA", "exemptAmount": 0.0, "jurisCode": "ENVK0", "jurisName": "ATLANTA TSPLOST TL", "stateAssignedNo": "060A", "jurisType": "STJ", "nonTaxableAmount": 0.0, "rate": 0.004000, "tax": 0.23, "taxableAmount": 58.5, "taxType": "Sales", "taxName": "GA SPECIAL TAX", "taxAuthorityTypeId": 45, "taxCalculated": 0.23, "rateType": "General", "rateTypeCode": "G" } ] } ], "addresses": [ { "id": 0, "transactionId": 0, "boundaryLevel": "Address", "line1": "30 Pryor Street", "line2": "", "line3": "", "city": "Atlanta", "region": "GA", "postalCode": "30303", "country": "US", "taxRegionId": 2131921, "latitude": "33.753427", "longitude": "-84.389125" } ], "summary": [ { "country": "US", "region": "GA", "jurisType": "State", "jurisCode": "13", "jurisName": "GEORGIA", "taxAuthorityType": 45, "stateAssignedNo": "", "taxType": "Sales", "taxName": "GA STATE TAX", "rateType": "General", "taxable": 58.5, "rate": 0.040000, "tax": 2.34, "taxCalculated": 2.34, "nonTaxable": 0.0, "exemption": 0.0 }, { "country": "US", "region": "GA", "jurisType": "County", "jurisCode": "121", "jurisName": "FULTON", "taxAuthorityType": 45, "stateAssignedNo": "060A", "taxType": "Sales", "taxName": "GA COUNTY TAX", "rateType": "General", "taxable": 58.5, "rate": 0.030000, "tax": 1.76, "taxCalculated": 1.76, "nonTaxable": 0.0, "exemption": 0.0 }, { "country": "US", "region": "GA", "jurisType": "City", "jurisCode": "04000", "jurisName": "ATLANTA", "taxAuthorityType": 45, "stateAssignedNo": "060A", "taxType": "Sales", "taxName": "GA CITY TAX", "rateType": "General", "taxable": 58.5, "rate": 0.015000, "tax": 0.88, "taxCalculated": 0.88, "nonTaxable": 0.0, "exemption": 0.0 }, { "country": "US", "region": "GA", "jurisType": "Special", "jurisCode": "ENVK0", "jurisName": "ATLANTA TSPLOST TL", "taxAuthorityType": 45, "stateAssignedNo": "060A", "taxType": "Sales", "taxName": "GA SPECIAL TAX", "rateType": "General", "taxable": 58.5, "rate": 0.004000, "tax": 0.23, "taxCalculated": 0.23, "nonTaxable": 0.0, "exemption": 0.0 } ] } ===== estimate tax response end ===== estimateTax for order [END]
Reporting
The "Custom Period Sales" report contains sections pertaining to the Sales Tax collected for the orders during the reporting period.
To run the Custom Period Sales Report, navigate:
MAIN MENU → OPERATIONS → REPORTING → (REPORTS SECTION) CUSTOM PERIOD SALES
- Sales Tax by State - (This section shows the sales taxes collected for the state level sales tax jurisdictions.)
- Sales Tax by State / County - (This section shows the sales taxes collected for the State & County level jurisdictions.)
- Sales Tax by State / County / City - (This section shows the sales taxes collected for the State ,County & City level jurisdictions.)
Frequently Asked Questions
Q: What is the best option for collecting V.A.T. for orders shipped to the E.U.?
A: The best Sales tax integration option for merchants that will be processing orders where V.A.T. (Value Added Tax) are collected, is the TaxJar integration.
Q: Where can I review a summary regarding the recent changes to the laws and regulations pertaining to Sales Tax collection for online merchants?
A: A great place to start is here: https://www.avalara.com/us/en/learn/sales-tax/south-dakota-wayfair.html
(*Please make sure to consult your CPA/Tax Professional to ensure that your business is in compliance with all tax jurisdictions, as this is outside the scope of the UltraCart service.)
Q: How can I determine the number of sales and revenue per state for a particular time period?
A: The custom period sales report (located under Operations > Reporting) has a section for Sales by US State which will provide those details.
Q: How is Sales Tax calculated if the item being sold is not shippable?
A: The sales tax calculation will use the customer billing address to calculate sales tax, if tax is being collected.
Q: How can I investigate the sales tax calculation in an order?
A: Please review the troubleshooting section earlier in this document. You can use the tax rate calculation tool to compare the recorded sales tax in an order. If a discrepancy is observed, then you can further troubleshoot the calculation by viewing the logs to see the underlying calculation details.