Introduction
On July 13, 2017, the Financial Secretary to the Treasury and Paymaster General in the United Kingdom announced that Making Tax Digital (MTD) for value-added tax (VAT) will take effect on April 1, 2019.
Dynamics 365 for Finance and Operations starting from version 10.0.1 supports MTD for VAT of the United Kingdom.
To support the MTD for VAT requirements on Dynamics 365 for Finance and Operations version 7.3 the hotfixes were released: #4492999, #4493076.
The documentation about setting up and usage Dynamics 365 for Finance and Operations for MTD for VAT is published on https://learn.microsoft.com/en-us/dynamics365/unified-operations/financials/localizations/emea-gbr-mtd-vat-integration .
Additionally,
HM Revenue and Customs (HMRC) introduced compulsory to supply header
information for VAT API from April 2019 to prevent fraud. For more information,
see Fraud prevention.
Overview
To prevent fraud, APIs of the HMRC provide HTTP headers that must be used to pass audit data.
Depending on the architecture of the environment used by a company which interoperates with the MTD for VAT different set of HTTP headers for fraud prevention must be transmitted. “Gov-Client-Connection-Method” header must represent the connection method used for the request by the company. It is supposed that most companies using Dynamics 365 for Finance and Operations in cloud architecture use “WEB_APP_VIA_SERVER” connection method during interoperation with HMRC via Electronic messages functionality. It is also possible that a user may initiate a batch job for interoperation with HMRC, in this case connection method will be transmitted as “BATCH_PROCESS_DIRECT”.
“WEB_APP_VIA_SERVER” connection method assumes transmission of the following headers:
HTTP header |
Description |
Coverage |
Gov-Client-Public-IP |
The public IP address (IPv4 or IPv6) from which the originating device makes the request. |
Not in scope of the current hotfix. |
Gov-Client-Public-Port |
The public TCP port that the originating device uses when initiating the request. |
Not in scope of the current hotfix. |
Gov-Client-Device-ID |
An identifier unique to an originating device. |
Not in scope of the current hotfix. |
Gov-Client-User-IDs |
A key-value data structure containing the user identifiers. |
Not in scope of the current hotfix. |
Gov-Client-Timezone |
The local time-zone of the originating device. |
Not in scope of the current hotfix. |
Gov-Client-Local-IPs |
A list of all local IP addresses (IPv4 and IPv6) available to the originating device. |
Not in scope of the current hotfix. |
Gov-Client-Screens |
Information related to the originating device’s screens. The fields include:
|
Not in scope of the current hotfix. |
Gov-Client-Window-Size |
The number of pixels of the window on the originating device in which the user initiated (directly or indirectly) the API call to HMRC. |
Not in scope of the current hotfix. |
Gov-Client-Browser-Plugins |
A list of browser plugins on the originating device. |
Not in scope of the current hotfix. |
Gov-Client-Browser-JS-User-Agent |
JavaScript-reported user agent string from the originating device. |
Not in scope of the current hotfix. |
Gov-Client-Browser-Do-Not-Track |
Whether the Do Not Track option is enabled on the browser. |
Not in scope of the current hotfix. |
Gov-Client-Multi-Factor |
A list of key-value data structures containing details of the multi-factor authentication (MFA) statuses related to the API call. |
Not in scope of the current hotfix. |
Gov-Vendor-Version |
A key-value data structure of software versions involved in handling a request. |
Included into the current hotfix. |
Gov-Vendor-License-IDs |
A key-value data structure of hashed license keys relating to the vendor software initiating the API request on the originating device. |
Not in scope of the current hotfix. |
Gov-Vendor-Public-IP |
The public IP address of the servers to which the originating device sent their requests. |
Not in scope of the current hotfix. |
Gov-Vendor-Forwarded |
A list that details hops over the internet between services that terminate TLS. |
Not in scope of the current hotfix. |
“BATCH_PROCESS_DIRECT” connection method assumes transmission of the following headers:
HTTP header |
Description |
Coverage |
Gov-Client-Device-ID |
An identifier unique to an originating device. |
Not in scope of the current hotfix. |
Gov-Client-User-IDs |
A key-value data structure containing the user identifiers. |
Not in scope of the current hotfix. |
Gov-Client-Timezone |
The local time-zone of the originating device. |
Included into the current hotfix. |
Gov-Client-Local-IPs |
A list of all local IP addresses (IPv4 and IPv6) available to the originating device. |
Not in scope of the current hotfix. |
Gov-Client-User-Agent |
An attempt to identify the operating system family, version, device manufacturer and model of the originating device. |
Included into the current hotfix. |
Gov-Vendor-Version |
A key-value data structure of software versions involved in handling a request. |
Included into the current hotfix. |
Gov-Vendor-License-IDs |
A key-value data structure of hashed license keys relating to the vendor software initiating the API request on the originating device. |
Not in scope of the current hotfix. |
Gov-Client-MAC-Addresses |
The list of MAC addresses available on the originating device. |
Included into the current hotfix. |
Implementation details
To support possibility of detecting parameters required by fraud prevention requirements of the HMRC like time-zone and MAC address in BATCH_PROCESS_DIRECT connection method and version of the software in both WEB_APP_VIA_SERVER and BATCH_PROCESS_DIRECT connection methods, an X++ methods were included into the application part. Here is the information about versions of Dynamics 365 for Finance and Operations including these methods:
Dynamics 365 for Finance and Operations version |
Build number |
10.0.1 |
10.0.51.30002 |
10.0.2 |
10.0.80.10022 |
10.0.3 |
10.0.107.0 |
For versions 7.3 of Dynamics 365 for Finance and Operations the KB # 4504462 must be installed.
In Dynamics 365 for Finance and Operations request headers are composed by the “MTD VAT web request headers format (UK)” format in Electronic Reporting (ER) module. To support fraud prevention headers this format configuration was extended with necessary nodes:
Determination of the corresponding values of
the headers is supported via calling of the X++ methods by the “MTD VAT
model mapping” configuration. “Electronic Messages framework model”
was also extended to include nodes used for mapping of the values of
fraud prevention headers.
Setup
To activate transmission of fraud prevention headers during interoperating with API of the HMRC, import the following of higher versions of the following ER configurations from the LCS portal:
# |
GER configuration name |
Type |
Version |
1 |
Electronic Messages framework model |
Model |
22 |
2 |
MTD VAT model mapping (UK) |
Model mapping (exporting, importing) |
22.25 |
3 |
MTD VAT web request headers format (UK) |
Format (exporting) |
22.13 |
Important note! When new versions of ER configurations are imported, check that following configurations are marked as Default for model mapping:
-
Tax declaration model mapping
-
MTD VAT model mapping (UK)
When mentioned or higher versions of the ER configurations are imported, fraud prevention parameters will be transmitted as part of the HTTP request the HMRC.
When user initiates a request to the HMRC without activating a batch job, the following dialog will inform about what information is going to be sent to the HMRC:
If the user aborts the transmission on this stage by clicking the Cancel button of the dialog, transmission will be canceled and the status of the electronic message will be changed to “Error”, attached description of the error to the Action log will include information that the “Request to the HMRC is cancelled by user”. User will be able to proceed with transmission of the same electronic message using “Send report” button.
When user initiates a request to the HMRC in a batch job, the fraud prevention headers will be transmitted to the HMRC and information about what headers were sent will be attached to the batch job. Open System administration > Inquires > Batch jobs, select your batch job and review Message details of the Log (Action pane > Batch job > Log).
If for some reason a company decides to address requests to the HMRC without transmitting fraud prevention headers, the version of the format including the fraud prevention headers can be deleted or not imported at all or alternatively these headers can be disabled in the “MTD VAT web request headers format (UK)” in Electronic Reporting module. For this purpose, the following steps must be done:
-
Select “MTD VAT web request headers format (UK)” in the configurations tree of the ER and create a child format by Deriving it (see more about “Building a format selecting another format as a base”).
-
Open the child format in the Designer (Designer button the Action pane of ER).
-
Select “Gov-Client-Connection-Method” node and set “Enabled” parameter to “false”:
4. Repeat p.3 for other fraud prevention headers: Gov-Client-Timezone, Gov-Client-User-Agent, Gov-Vendor-Version, Gov-Client-MAC-Addresses.
5. Save your configuration and Complete it.
6. Open Tax > Setup > Electronic reporting > Web service settings and select your child format in the “Request headers format mapping” field of all the web services used for interoperation with the HMRC instead of the parent format used by default:
Important
note! API requests without fraud prevention headers
may be rejected by HMRC. It is strictly recommended to address API requests to
HMRC with fraud prevention headers.
Hotfix information
Electronic reporting configuration download instruction from Lifecycle Services: https://learn.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/analytics/download-electronic-reporting-configuration-lcs
How to obtain the Microsoft Dynamics AX updates files
This update is available for manual download and installation from the Microsoft Download Center for version 7.3:
Prerequisites
You must have one of the following products installed to apply this hotfix:
-
Microsoft Dynamics 365 for Finance and Operations (7.3)
Restart requirement
You must restart the Application Object Server (AOS) service after you apply the hotfix.
If you are encountering an issue downloading, installing this hotfix, or have other technical support questions, contact your partner or, if enrolled in a support plan directly with Microsoft, you can contact technical support for Microsoft Dynamics and create a new support request. To do this, visit the following Microsoft website:
https://mbs.microsoft.com/support/newstart.aspx
You can also contact technical support for Microsoft Dynamics by phone using these links for country specific phone numbers. To do this, visit one of the following Microsoft websites:
Partners
https://mbs.microsoft.com/partnersource/resources/support/supportinformation/Global+Support+Contacts
Customers
https://mbs.microsoft.com/customersource/northamerica/help/help/contactus
In special cases, charges that are ordinarily incurred for support calls may be canceled if a Technical Support Professional for Microsoft Dynamics and related products determines that a specific update will resolve your problem. The usual support costs will apply to any additional support questions and issues that do not qualify for the specific update in question.