Tax Calculation service is a microservice that has been built on top of the Microsoft Azure platform to improve tax determination enhancing calculation capabilities of D635 apps and providing flawless configuration and flexibility. The solution can be integrated with Dynamics 365 Finance and Supply Chain Management with a plan to provide the ability to integrate with 1st and 3rd party apps in the near future.
The beauty of Tax Calculation is that you can automate and standardize tax calculations across different regions through formulas and conditions that actually execute complex tax determination rules and calculations. In other words, it aims to simplify compliance maintenance for local tax regulations through flexible calculations.
The solution is fully backward compatible with existing tax engines in Finance and Operations and is controlled as a new feature in Feature Management workspace. You can also enable it by either legal entity or business process.
Enhanced tax determination
The solution aims to assist organizations with the configuration and determination of tax codes, rates, and deductibility based on any field of a taxable document (for instance, orders or invoices) through complex tax determination matrix configuration with cascade matrices and parallel metrics.
Enhanced tax calculation
Furthermore, the service is able to execute complex tax calculation formulas and conditions through specific configurations, should your tax regulations require that. Tax data model is also being supported.
Multiple tax registration numbers
Multiple tax registration numbers are supported to be under a single party (legal entity, customer, etc.) including different scenarios like price transferring, low-risk distributor model, etc. The correct tax registration number is now may be configured and determined for legal entities and their counterparty in sales, purchase, and transfer orders.
Tax on Transfer Order
Last but not least – the tax calculation service supports EU regulation “Exempt intra-EU supply according to article 138 of the Directive 2006/112/EC“ for Intra-EU Supply of goods.
Tax Integration Design
Finally, let’s have a look at the tax integration design on the purchase example. Some major entry points for purchase tax calculation in the purchase order is TaxPuch::calculateTax() method which by default is using the embedded test engine.
Then, you can integrate TaxPuch::calcUsingTaxIntegration() method to call text service and extend your own transactions calling test integration for side calculations.
As for the process, here is the graph on how it works through different stages:
- Setting Retrieval will retrieve the test parameters from our F&O into the mechanism that will host the object;
- Data Retrieval, the point where all the data from transaction tables is being fetched saving it into the object;
- Calculation service will be called to calculate all the data, once it is received from the data retrieval stage;
- Error Handling
- VAT ID Handling
- Currency Exchange
- Data Persistence – the final stage that saves all the results into the table to be used in the view sales tax form.