Tutorial: SuitePOS and NetSuite SuiteTax

Tutorial: SuitePOS and NetSuite SuiteTax

SuitePOS supports NetSuite's SuiteTax engine. This engine allows you to configure complex native tax rules and also allows for integration of NetSuite SuiteTax to third-party tax services such as TaxJar and Sovos.
In the context of SuitePOS and SuiteTax, NetSuite Legacy Services can be used if SuiteTax is enabled. However, legacy third-party services are not supported.
SuitePOS SuiteTax Module is Required


  • Ensure SuiteTax (or NetSuite Legacy Taxes) are  configured and operational and that the correct taxes are calculated using the NetSuite UI. You will need to check Invoices, Credit Memos, Credit Memos from Invoices and Sales Orders (if applicable). You should also check "Preview Tax" when testing this. 
  • Ensure there are valid addresses for each retail Location record.
Header level NS Legacy Taxes are not supported for Sales Orders when backup taxes are invoked. This is a rare situation that could result in an out of balance posted transaction. The only workaround is to switch to line level NS Legacy Taxes.

STEP 1: Enable SuiteTax

REMEMBER: Enabling SuiteTax means that we are going to be using NetSuite to calculate the taxes no matter. This can include NetSuite Legacy Taxes or NetSuite SuiteTax.  

STEP 2: Set Up Back Up Taxes

This rate and jurisdiction is used when the SuiteTax calculation (by NetSuite) fails. All items in the cart are assumed taxable.  This allows you to continue processing sales even though NetSuite may be down.

If the tax cannot be calculated (due to an error when using NetSuite to calculate the tax), how we handle depends on the underlaying NetSuite tax methodology.   

Legacy NetSuite Tax Account

This will assume all items are taxable and whether it is taxable or not will depend on the Customer record.

SuiteTax NetSuite Account

We assume all items are not taxable and write the transaction with the "taxdetailsoverride" flag set. This can be later queried/reported on to handle adjustments manually according to your accounting procedures. 


Workflow Explained
When a sale is made, the SuitePOS uses NetSuite to calculate the taxes. The taxes are calculated per the tax configuration in NetSuite using the ship to address of the store location (or the customer in the case of sales orders).  The same happens for returns and returns from a sale (aka Validated Returns). 
Cross location Validated Returns uses the tax rate (and jurisdiction) of the original location's sale but writes to the returning retail location to record it in inventory. 

Validated Returns - Limitations

Pre-SuiteTax Transactions and Cross Location Returns
If you have a Validated Return (made prior to enabling SuiteTax) we cannot determine the location address of the Sale and will always assume it is the location address of the return. 
Changes to the Sales Tax Rate
SuiteTax (in NetSuite) has an "effective date" mechanism. When we calculate the tax, we always use the original date of the sale to determine the tax rate of the return. Once the Validated Return is written to NetSuite, NetSuite will/should use the same mechanism.

If SuiteTax is not installed in NetSuite, there is no concept of "effective date" in the legacy tax engine. As such, the current rate will always be used (which may not be desirable). 


SuitePOS makes a synchronous call to NetSuite in order for NetSuite to determine the taxes. As such, the call can take anywhere from 4 to 20 seconds depending on your particular account. This is out of our control. 
Calls to third-party services (such as TaxJar and Sovos) can increase the time it takes to calculate taxes.  This is out of our control.


SuiteTax is a relatively new and complex component of NetSuite. As such, all POS transaction types must be adequately tested to avoid un-expected results, errors and mis-balanced transaction postings.

    • Related Articles

    • SuiteTax: Customer Sync - Taxes are always calculating to 0.00 (zero) for sales and returns

      SuiteTax (and SuitePOS) uses the Location record on Terminal Settings to determine the nexus. If this address is not set for the retail store, it will always calculate taxes to zero. Set up an address on the NetSuite Location Record for the store ...
    • Tutorial: Accessing NetSuite from SuitePOS

      Sometimes clerks need to perform actions directly in NetSuite. This could be activities such as seeing analytics or reports, researching transaction history and/or accepting payments against receivables. To make this process easy, SuitePOS allows a ...
    • Tutorial: Installing SuitePOS for NetSuite

      The retailer is responsible for installation, applying the upgrades to the SuitePOS bundle and app, and testing. It is recommended that these tasks are performed by a qualified NetSuite Administrator in a sandbox environment first.\ Overview SuitePOS ...
    • SuitePOS Taxes and NetSuite

      SuitePOS can be configured for most tax situations no matter how complex your retail business is. This ensures tax calculations are accurate and in compliance at all your retail locations. Recommendations Due to performance reasons, It is best not to ...
    • Tutorial: On-Demand Items for NetSuite

      On-Demand Items, if enabled, allows you to pull in the sever-side data, that is not stored locally, into SuitePOS. This significantly reduces bottlenecks (and times) during item syncs because not all of the items are required. This is primarily used ...