1. Help Center Home
  2. Platform Overview
  3. Taxes
  4. Sales Tax Calculations Overview (The Basics)

Sales Tax Calculations Overview (The Basics)


This article provides the basics for how sales taxes are handled when orders are placed on the CIMcloud platform. By default, CIMcloud syncs over tax schedules, codes, classes and rates from an ERP, attempting to mimic tax logic for orders placed on the CIMcloud platform.  This includes tax schedule mappings to accounts and ship to addresses.

If your site charges tax, then the base tax structure (i.e. tax schedules, codes, rates, and classes), must come from the ERP or through a third party service (e.g. Avalara). Specific tax rates are not managed in the CIMcloud platform. How a particular tax schedule is applied can be configured in the CIMcloud platform.

In most scenarios, the tax amount is not directly applied to the imported order. For example, on Sage 100 integrations, CIMcloud imports the tax schedule assigned to the web order, and not the tax total calculated on the website.  This is a Sage 100 configuration that CIMcloud has no control over (i.e. we cannot import the tax amount from the website to Sage on the order, since Sage 100 will recalculate it with their own tax logic based off the tax schedule on the order).

We explain CIMcloud’s tax schedule logic on orders in more detail in the “How Tax Schedules are Applied” section below.

Third Party Tax Services

Customers may choose to use third-party tax services to calculate tax rates/totals.  Currently, CIMcloud only has a standard integration with Avalara within our core product.

Setup is minimal to connect to your Avalara instance, such as providing your credentials and verifying the Avalara Tax Schedule has synced from your ERP system.  There may be additional configuration for anonymous tax logic, or niche tax scenarios to mimic your Avalara set-up, that would require Professional Services.

If you’d like to integrate with a different tax service, please contact CIMcloud customer service through our task tracking system Extranet for more information. CIMcloud is not responsible for the purchase, communication, and set-up of third party tax services.  However, our Professional Services team can provide an estimate to integrate with the third party to our CIMcloud platform.

Information Synced From the ERP

Tax Schedules – Tax schedules are applied to orders and determine the overall structure for how a particular order is taxed. A tax schedule is made up of tax codes which in conjunction with a product’s tax class will determine the rates the particular product is taxed at.

Tax Codes – Theses are particular tax entities applied to the tax schedule for a particular tax class. These are typically associated to a city, county, or state and how they tax particular product types and freight.

Tax Classes – these are product groupings that are applied to products that control how the product may be taxed. For example a particular municipality may tax food at a different rate than other type products.

Tax Rates – The percentage rate that something is taxed based on the tax class and tax code.

Exemption by Tax Code (Sage100 only) – In Sage100 at the shipping address and/or customer level you can set up exemption records by tax code. These can be synced to CIMcloud so that if a particular schedule is applied to an order where the tax codes from the schedule are exempt then the order will not be taxed for the tax codes where there is an exemption.

Tax Schedules to Zip Codes (Sage100 only) – This brings over the tax schedule by zip code data from Sage100. See below for how this is used.

How Tax Schedules are Applied

Throughout order processing, our tax logic looks for a matching tax schedule in the following order of priority (if present), from highest to lowest priority:

  1. Shipping Address – Tax schedules assigned to ship to addresses within an ERP
    1. Tax Schedules on ship to addresses are synced over to CIMcloud from an ERP system
    2. If a shipping address is used on an order with a tax schedule assigned to it, then it is applied to the order
  2. Account – Tax schedules assigned to an account within an ERP
    1. Tax Schedules on accounts are synced over to CIMcloud from an ERP system
    2. If it is a new shipping address, or does not have a tax schedule on an existing shipping address, then our system looks at the account to see if it has a tax schedule.
    3. Accounts typically do not have a tax schedule synced from Sage since applying tax schedules based on the account is typically undesired.
  3. Anonymous Tax Rules – Tax schedules assigned based off the ship to address and anonymous tax rules
    1. If a tax schedule is not assigned directly to a ship-to address or account, then the system looks to see if any anonymous tax rules exist.
    2. Configuration for anonymous tax rules are configured directly on the tax schedules
      1. Note: We can setup additional tax schedules not in your ERP, but it may require Professional Services for any other custom tax logic
    3. For example:
      1. If you collect tax in North Carolina at just the state level and have a tax schedule “NC” for North Carolinas State tax, you can set this tax schedule to apply to addresses where the state = NC for any anonymous users, or new ship to addresses on existing accounts
    4. Anonymous matching rules can be configured to match at the levels below.  Note that if more than one tax schedule has anonymous rules that match, the system chooses the schedule based on specificity (ex. a match on state would win over a match on country).
      1. Country
      2. State/Province
      3. County (you will want to enable the capture of county on addresses for the particular states this applies to)
      4. City (this is not typically recommended since this is a free text field and the value entered by the user on the site would need to match the value applied to the tax schedule exactly. Instead it is recommend for municipalities to use the next option – Zip Code)
      5. Zip Code – zip codes can be entered to apply tax schedules based on a single zip code, a list of zip codes, and/or “zip codes starting with”. For Sage100 this can be synced from Sage, but does require the tax schedules to by set to anonymous in the worker portal. Also, CIMcloud does not support Zip Code by range so if using range values these will not sync to CIMcloud.
  4. Site Default – A fall-back tax schedule to use when any of the above can not be assigned
    1. Most ERPs (e.g. Sage 100) require a tax schedule on the order when it is imported. During set-up, a default tax schedule can be applied if no other tax schedule is found.
    2. If a default tax schedule is not defined, no taxes are charged for the order, which falls back on a CIMCloud default schedule (e.g. NONTAX).



Was this article helpful

Related Articles

Subscribe to receive email updates of what's new in the CIMcloud Help Center.