Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Supply chain | Supply Chain Management, Commerce
Unanswered

Sales tax calculation in Dynamics 365 Commerce

(1) ShareShare
ReportReport
Posted on by

See below the document with screenshots attached.

I. Main settings for Sales tax is the same as in all other models. Be sure Sales tax code, Sales tax group and Item sales tax group created:

  1. Sales tax code RP_TXST created:

NOTE: Pay an attention on a value of ‘Marginal base’ – by default it is assigned ‘Net amount of invoice balance’, but for Retail customers we always suggest to use ‘Net amount per line’.

There is a blog article related to sales tax settings with more details about that:

Sales tax setup recommended for Retail Stores - Dynamics 365 Commerce Forum Community Forum

  1. Sales tax group TX created with value 6,25% with the combination of Sales tax code RP_TXST:

NOTE: Pay an attention on a value of ‘Rounding by’ – by default it is assigned to ‘Sales tax codes’, and this is the value we suggest for Retail customers.

Sales tax group should be assigned to Retail store later.

  1. Item sales tax group RP created with the combination of Sales tax code RP_TXST:

Item sales tax group should be assigned to the item we sell in Retail store later.

  1. Sales tax setting on Retail store:
  • Sales tax group= TX
  • Prices include sales tax= YES/NO

NOTE: When ‘Prices include sales tax’ is enabled – the Prices on Items (Base sales price or from Trade agreements) are inclusive sales tax. So this parameter is important to know if it will be enabled or disabled before all the prices on items created.

E.g. When item price is 99,99 and parameter Prices include sales tax is enabled – this means the price is sales tax included already. So on the store you will see:

Subtotal= 94,11

Tax= 5,88

Amount due= 99,99

When parameter Prices include sales tax is disabled – this means the price 99,99 is without sales tax and on the store you will see:

Subtotal= 99,99

Tax= 6,25

Amount due= 106,24 

  1. It is very important to know that once you did some changes on sales tax setup in HQ, you should run Job 1080 (Tax) and then be sure that Retail server is restarted, because changed tax setup might be cached.

With that setup you should always get the same calculation of all amounts (Net amount and Sales tax amount) on the Store and in HQ transactions. 

Also a suggestion to change sales tax setup only after working hours when nobody is working to be sure that the changes are done correctly, distributed to POS and there are no differences between POS and HQ. 

The same setting is valid for AX2012 and D365.

 

Read also a blog article:

(99+) Sales tax setup recommended for Retail Stores - Dynamics 365 Commerce Forum Community Forum

 

II. Configure sales tax for MPOS/CPOS:

 

MPOS/CPOS tax determination

 

This information is described in another blog article:

(+) Retail Sales Tax Determination - Dynamics 365 Finance Community

 

In Retail POS, the tax policy is taken into consideration in the following priority order of Destination based tax -> Customer tax -> Store tax.

(This section is related POS only, not for Online store at this point).

 

  1. For Destination based tax to be taken into consideration, Use destination-based tax on the Store form should be enabled and the order should be a shipping order with the address set as the delivery address (Customers Address sales tax group = Customer > Addresses > More options > Advanced > General > Sales tax).

 

  1. If this first condition evaluates to false, then if “Use customer-based Tax is enabled on the Store form and there is a customer added to the transaction, the Customer's sales tax group is considered (Customers Sales tax group = Customer > Invoice and delivery > Sales tax group).

 

**Keep in mind that for a new customer, this takes on the Customer group from the Default customer assigned to the store.  If there is a Sales tax assigned to this group, this is then assigned to the Customer as the Sales tax group (Default customer’s group Sales tax group = Store > Default customer > drill back on the customer record > General > Customer group > drill into the group > Default tax group).

 

  1. If the second condition also does not evaluate to true, then the Store “Sales tax group is considered:

 

By design, the tax group policy checking does not have a tax fallback calculation between types of store taxes. That is, if the store is using Customer based tax and no tax group is found, it should return 0 instead of trying to calculate using store based tax.

BUT the Default customer will use the Store tax in this scenario.

 

Thus in order for the address based tax to work, in HQ the Use destination-based tax should be enabled on the store and for the transaction made, the newly created customer address should be assigned as the "Shipping address". 

 

Setup Locations:

Customers Address sales tax group = Customer > Addresses > More options > Advanced > General > Sales tax

Customers Sales tax group = Customer > Invoice and delivery > Sales tax group

Default customer’s group Sales tax group = Store > Default customer > drill back on the customer record > General > Customer group > drill into the group > Default tax group

 

Other setup:

  • Commerce parameters/Sales tax calculation/Recalculate or Don’t Recalculate (doesn’t pertain to Online store). See more detailed description about this feature below at number IX.

 

If a New customer is created in POS:

  • Using Destination based taxes – ensure you add an address > assign Sales tax group
  • Using Customer based tax – assign the proper Customer group which links the Sales tax group
  • Using Stores based tax – the Customer assigned taxes will not matter.

 

**No Customer (default customer) = Stores tax (assumes customer is local)

**Customer orders require customers

 

Below is a matrix outlining whether you have Destination or Customer based taxes configured in the Store along with the type of POS transaction. The last column is what the system will determine as the Sales tax group to be used.

 

NOTE!!!  When testing Tax changes and it doesn't look like POS is reflecting the update, Retail stores (POS) will not make this update in the middle of the day/transaction.  Thus the tax setup is cached and may need an IISREST each time Tax is updated (such as changing the Stores Tax calculation methods)

 

Destination based tax

Customer based tax

Cash&Carry/Pickup/ delivery

Sales tax group used

X

X

C&C

Customer sales tax group

X

X

Pick up

Customer sales tax group

X

X

Delivery

Customer Address sales tax group

X

 

Pick up

Pickup Stores sales tax group

X

 

C&C

Customer sales tax group

X

 

Delivery

Customer Address sales tax group

 

X

C&C

Customer sales tax group

 

X

Pick up

Customer sales tax group

 

X

Delivery

Customer sales tax group

 

 

C&C

Current Stores sales tax group

 

 

Pick up

Pickup Stores sales tax group

 

 

Delivery

Current Stores sales tax group

 

III. Configure sales tax for Online Stores:

There is also a related document on the Docs site that can be referenced at the following link:

Configure sales tax for online orders - Commerce | Dynamics 365 | Microsoft Docs

 

Very useful blog article:

(+) Retail Sales Tax Determination - Dynamics 365 Finance Community

 

There is also a document with one of scenarios and repro steps in standard Contoso environment about Destination-based Sales tax configuration for Online stores in D365:

Destination-based Sales tax configuration for Online stores_D365.docx

 

Customers creating orders in the online medium are normally provided with the option to either have their items shipped or picked up at a local store. Since these customers are in various tax regions, there is a need to calculate taxes based on the destination of the items on the order. To obtain the applicable taxes, the online store front utilizes the Commerce tax engine. Since it is also possible to assign different delivery methods to each line item in the cart, sales tax calculation will be performed for each line based on its destination.

 

  • For pickup in store or curbside pickup, the Sales tax group is derived from the store selected to honor the pickup. For this scenario the store should be configured with a Sales tax group, more details here:
  • For shipping to customer address, the delivery address of the line will determine the line Sales tax group.
  • There is an exception to the above rules if the Customer account has been directly assigned a Sales tax group. In this instance, the customer specified Sales tax will take precedence over a destination tax calculation. This is not a normal scenario, but can occur when a specific sales tax has been defined in headquarters in the customer account. (Example: Tax exempt).

 

To allow the system to properly calculate “Destination based taxes”, it is recommended to configure the Default customer assigned to the Online store with blank values. The reason behind this is that new online customer accounts use the Default customer account as a template when created.  Any preconfigured values set on the default customer will be inherited on the new customer record. 

  • The Default customer should NOT have Sales tax group configured on the Address nor the Invoice and delivery tab to avoid copying details to new customer records.
  • If there is a Customer group linked to the Default customer, it should NOT have a default Sales tax group

 

NOTE: At the time of this article, there is not a way to link a current customer to a new online account. A customer must create a new online account.

 

Quick reference for Sales tax setup locations:

Customer Address sales tax group = All customers > Addresses > More options > Advanced > General > Sales tax

Customer Sales tax group = All customers > Invoice and delivery > Sales tax group

Store Sales tax group = All stores > General tab > Sales tax group

Default customer = Online stores > Default customer > drill back on the customer record > General > Customer group > drill into the group > Default tax group

 

The following table explains whether destination-based taxes or customer account-based taxes are applied for online orders:

IV. Tax exempt calculation:

Calculation of tax exemption - available after 10.0.13, there is a link to MS Docs:

docs.microsoft.com/.../tax-exempt-price-inclusive

Microsoft Dynamics 365 Commerce version 10.0.13 and later includes a feature called Enable tax exemption for the 'price includes sales tax' scenario. When this feature is enabled, an option called Calculate price inclusive tax exempt appears on the General FastTab for store and call center settings. If this option is set to Yes, prices in tax-inclusive scenarios are adjusted when the transaction or specific taxes in the transaction should be exempted. When store-based taxes are used, you can apply these exemptions by using tax overrides. When customer-based taxes are used at the store, the exemptions are automatically applied based on the customer's tax settings.

This setting is also supported for orders that are created in the call center and stores.

There is also a document with detailed repro steps in standard Contoso environment for Stores with Prices tax inclusive scenario:

Tax exempt_Store Tax inclusive scenario.docx

V. Sales tax on Charges (Shipping charges/Cancellation charges):

In Commerce parameters there are:

  • Shipping charge code= FREIGHT
  • Cancellation charge code= Cancel
  • Use advanced auto-charges= YES

 

  1. When you open Shipping charges code ‘FREIGHT’ (from Commerce parameters form, right-click/View details), there is Item sales tax group which you may set up. In our cases we select RP:

 

NOTE: be aware, this form of Charges codes is opening from Accounts receivable (Charges setup/Charges codes). Charges codes we have also in Commerce (Channel setup/Charges/Charges codes) – but it is not used in this case. If ‘Use advanced auto-charges’ is enabled – then Charges codes are used from Commerce settings. Be sure you have Item sales tax  group added on both.

  1. When you open Cancellation charge code ‘Cancel’ - there is Item sales tax group which you may set up. In our cases we select RP:

 

NOTE: be aware, this form of Charges codes is opening from Accounts receivable (Charges setup/Charges codes).

When Customer order will be Cancelled in POS, after the operation is completed, voucher will be posted with Cancellation charge and sales tax as well.

VI. Gift card with sales tax included:

NOTE: Sales tax on gift cards will be calculated only when store has ‘Price include sales tax’ enabled.

There is a link to (+) Sales Tax on Gift card sales - Dynamics 365 Commerce Forum Community Forum with details on how to set up that.

And the document with steps:

1727.Sales Tax on Gift card sales_D365.docx

VII. Sales tax on Income/Expense retail transactions:

We do not have any Item sales tax group on Income/Expense accounts for the Store.

As a workaround – it is possible to post sales tax for such transactions adding Sales tax setting on the Ledger account assigned to Income/Expense.

  1. Income account setting:

Open Ledger account 401100/Edit/Tab Legal entity overrides/Add/Legal entity= USRT/Sales tax:

-              Sales tax group= TX

-              Item sales tax group= RP

-              Sales tax direction= Sales

 

  1. Expense account setting:

Open Ledger account 601200/Edit/Tab Legal entity overrides/Add/Legal entity= USRT/Sales tax:

-              Sales tax group= TX

-              Item sales tax group= RP

-              Sales tax direction= Purchase

 

NOTE: Sales tax will not be shown on a Store, it will be posted to the voucher only when the statement will be posted. 

VIII. Sales tax setting on Prepayment:

 

When you need to calculate sales tax on Deposit (Prepayment, Advance payment), you need to enable the parameter ‘Sales tax on prepayment journal voucher’ and add ‘Posting profile with prepayment journal voucher’ (PRE) in Accounts receivable parameters/Ledger and sales tax tab:

 

When you open PRE posting profile, be sure the ledger account is added to the ‘Sales tax prepayments’:

To calculate sales tax for Prepayment, we use:

  • Sales tax group – coming from the Store
  • Item sales tax group – coming from General ledger parameters/Tab Sales tax/fast tab General:

When customer order will be created and Deposit paid, the voucher will be posted with Sales tax included.

IX. Tax calculation behavior:

The parameter "Tax calculation behavior" in Commerce parameters/Posting/Invoice tab is necessary to pay an attention what value is there. It can be selected as Recalculate or Don’t recalculate.

This parameter controls whether we should honor the tax amounts calculated in POS or if they should be recalculated when invoicing sales orders originating from statements posting.

The statement posting process can be summarized in sales order / invoice / payment creation in HQ for Retail transactions. This processes uses the standard (core) sales order framework which includes the core tax engine that calculates the tax amounts for sales orders. This process of core tax calculation should round the amounts according to the customer configuration. This is what happens when the ‘Recalculate’ flag is selected.

When the ‘Don’t recalculate’ flag is enabled, the statement posting process adds tax adjustments (on top of the tax transactions calculated by the core tax engine) with the tax amounts that are saved on RetailTransactionTaxTrans (values that are generated in POS) and this is how the tax from POS are honored.

The configuration ‘Don’t recalculate’ is suggested, since it is possible that (due to a synchronization issue or any other issues) the tax configuration in POS is not the same as in HQ and we need to honor the amounts from POS.

There is no code for tax calculation in statement posting when the ‘Recalculate’ flag is ON, the values are all calculated by core tax engine when the sales order is invoiced.

The same parameter is available in Commerce parameters/Customer orders tab:

This parameter controls whether we should honor the tax amounts calculated in POS or if they should be recalculated when invoicing customer sales orders. Turn on the flag in Accounts receivable parameter-> Ledger and sales tax-> Enable tax adjustment in detailed mode to see a detailed view of the tax adjustments.

NOTE: These two parameters are not related to Online store sales orders. There is a feature proposed, but still not released (# 8179660).

*This post is locked for comments

  • Ramune Profile Picture
    on at
    RE: Sales tax calculation in Dynamics 365 Commerce

    Sales-tax-calculation-in-Commerce_5F00_BLOG.pdf

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

🌸 Community Spring Festival 2025 Challenge 🌸

WIN Power Platform Community Conference 2025 tickets!

Jonas ”Jones” Melgaard – Community Spotlight

We are honored to recognize Jonas "Jones" Melgaard as our April 2025…

Kudos to the March Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 294,261 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 233,011 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,158 Moderator

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans