SuitePOS Taxes and NetSuite

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.
Due to performance reasons, It is best not to enable SuiteTax in our NetSuite Account (or SuitePOS) if you can avoid it.

Supported Tax Configurations (at a glance)

  • NetSuite Legacy Header/Line Taxes
  • NetSuite Legacy Tax Schedules Header/Line Taxes (see limitations below)
  • SuiteTax Native/Third-Party
  • Avatax (legacy third-party integration)
Other Legacy Third-Party Tax Services are not supported.


SuiteTax is a nexus-based tax engine (consisting of a series of NetSuite and Third-Party Bundles) that allows you to set up different tax scenarios using NetSuite  and/or third-party tax engines. For example, in the USA you can use SuiteTax Engine but in the UK you might use Avalara's AvaTax.  SuiteTax is currently available in NetSuite; however care and caution should remain if you are considering using SuiteTax and SuitePOS.

Supported Countries

With consideration to any limitations (below), SuitePOS can support most NetSuite Tax configurations for different countries. If a limitation occurs, then Avatax must be used.
Due to credit card processing capabilities, SuitePOS is available in only available in these countries. List of supported processors

NetSuite Legacy Tax - Header Level

This is a simplest tax configuration in NetSuite. The entire transaction is taxable or not and if a particular item is marked non-taxable then the item is not included in the tax calculations. Similarly, if a customer is marked non-taxable, the entire order is not taxed.  The tax code (and % tax), defined in POS Settings,  for the transaction is posted at the header level.

NetSuite POS Settings - Sales Tax - Example Configuration:

NetSuite Legacy Tax - Line Level

This behaves similar to NetSuite Legacy Tax - Header Level, but tax codes and rates are posted at line level. For NetSuite Legacy Tax, there is no advantage doing it at header or line level and it boils down to an accounting preference. 

NetSuite POS Settings - Sales Tax - Example Configuration:

NetSuite Tax Schedules - Header Level

Here, Tax Schedules are used to represent how taxes are handled. This allows you to define various nexuses on the Tax Schedule and allocate this Tax Schedule to items. Using Tax Schedules the items can be set to taxable or not. The tax code (and % tax), defined in POS Settings,  for the transaction is posted at the header level.  

NetSuite POS Settings - Sales Tax - Example Configuration:

NetSuite Tax Schedules - Line Level

Similar to NetSuite Advanced Tax - Header Level, but tax codes and rates are posted at line level. Tax Schedules are used to represent how taxes are handled. This allows you to define various nexuses on the Tax Schedule and allocate this Tax Schedule to items. Using Tax Schedules the items can be set to taxable or not. 

NetSuite POS Settings - Sales Tax - Example Configuration:

Legacy Tax Limitations

Most retailers will be fine how SuitePOS and NetSuite handle taxes. However, some tax situations may not have coverage. 
  • Using Tax Schedules, items are taxed in one jurisdiction. But not in another. This cannot be represented in SuitePOS. Items are taxed (or not taxed) in all jurisdictions dependent on the what the "Adv Taxes Taxable" field (on the Item record) is set to. As a note, using Tax Schedules at the header level could result in sales not being taxed if the billing address on the customer record is set to a non taxable jurisdiction. Avatax is recommended.  

  • Using Tax Schedules, items taxed have special rules in a particular jurisdiction. eg. clothing exceptions in NYC based on $ amount. This cannot be represented in either NetSuite or SuitePOS and Avatax is recommended. 

  • Tax groups comprising of more than one tax amount (aggregated or non-aggregated) are used. eg. British Columbia (Canada) consist of  both a GST and PST tax item. This cannot be represented in SuitePOS.

  • Third-Party Tax Solutions such as Vertex or TaxJar. Depending on how these solutions operate, it may not be possible for these solutions to calculate the correct tax for SuitePOS. This in turn could lead to data integrity issues since when the record is written the correct tax is calculated.  

NetSuite and SuiteTax

NetSuite's new tax engine, SuiteTax, is now fully supported when the SuitePOS SuiteTax Module is enabled. When NetSuite is implemented with SuiteTax, traditional schedule based taxes can be supported as well as several tax services such as TaxJar, Sovos. 
SuitePOS SuiteTax Module must be purchased

NetSuite and Avatax

Complex tax situations can also be handled by signing up for the Avatax service. This service is used by both SuitePOS and NetSuite.

In NetSuite, the Avatax Bundle is installed and configured by Avalara or your admin. Once that is working, SuitePOS is then quickly configured and tested. 
  • In SuitePOS, Avatax is used to calculate the sales tax once the cart is confirmed.
  • In NetSuite, when the transaction is posted, Avatax is recalculated and the tax document is sent to Avatax for recording purposes.
Using the below screen examples, SuitePOS knows to use Avatax because the module is enabled. The tax code is "AVATAX" and therefore when writing to NetSuite, the NetSuite Avatax bundle will know to create the Avatax document for posting to the service.
The backup code is used only when the service is unavailable and the tax at line level setting is on or off depending on the NetSuite Tax configuration.
SuitePOS Avatax Module must be purchased

NetSuite POS Settings - Enable Avatax:

NetSuite POS Settings - Sales Tax - Example Configuration

When we write the transaction, our system also writes the ship-to address from the location record. This is so that Avatax, in NetSuite, calculates the correct tax for cash and carry items and ensure that there is a match with what POS calculates.

Sales Order Considerations

SuitePOS Sales Order Module must be purchased
Sales Orders are sales that are fulfilled and shipped later (store pickup or direct to the shopper).In other words, there is a fulfillment process that happens in NetSuite. In this situation, the tax that is based off the ship-to address and whether or not you have nexus there.

With Sales Orders, SuitePOS uses NetSuite (via a temporary post) to calculate the sales tax versus the POS Settings record (or a call to Avatax). If the NetSuite service is unavailable, you can optionally use the Backup Tax Code (and Tax %) to be able to process the sale. However, it could well be possible that the tax is wrong.

SuitePOS POS Settings - Sales Order Backup Tax Code

Customer Record Considerations (Legacy Taxes)

As far as SuitePOS is concerned, customers (in NetSuite) are either taxable or not depending on the taxable flag. SuitePOS does not support the tax item field on the customer record and therefore should not be populated (unless you are using Avatax and then it must be set to the Avatax tax item used).

If a customer is set to not taxable, the whole transaction is not taxable.
NetSuite Configuration
For the most part, it is recommended that you default NetSuite customer records to taxable unless most of your customers are non-taxable.

Discounts and Promotion Consideration

If you are using a whole order discount (or promotion) the sale tax calculation (using NetSuite Taxation or Avatax) for the discount is prorated across taxable and non taxable items. 
Manufacturer Rebates
In all cases, discounts are applied before tax and not after. In other words, we do not support certain situations such as manufacturer rebates in the USA (where discounts are applied after the tax is calculated). 

Cross Store Location Returns and Taxes

In order to maintain consistency, correct refunding and tax accuracy, returns are processed using the tax basis of the original sale. So if you sell an item in NYC but return it in NJ, the return uses NYC taxation (rate and code).

    • Related Articles

    • Setting up Salesforce taxes

      SuitePOS can be configured easily in Salesforce by setting the tax code and tax rate on the POS Settings record. The can then be applied to a group of terminals - typically representing a group of store locations. For more complex tax situations, ...
    • 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: 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 ...
    • 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 ...