To get Dynamics AX ready to work with Invoices communication register functionality, you need to do the following setup:
- Number sequence in General ledger parameters
- Invoices communication setup
- Company address purposes
- Counterparties’ address purposes and Tax representative
- Domestic and EU Reverse charge
- Sales tax Exempt reasons
Number sequence in General ledger parameters
To automatically generate correct number of the report, that should be used in the file name and as the report identifier in the report <ProgressivoInvio> tag, open General ledger > Setup > General ledger parameters, select Number sequences tab, find line for Invoice communication XML ID and set up a number sequence for it.
The same number will be used in the names of generated XML files. Thus, the setup of the number sequence should meet the requirements to the names of the files.
Examples:
ITAAABBB99T99X999W_DF_00001.xml
IT99999999999_DF_00002.xml
If length of a number generated from the number, sequence will be more than 5 symbols, only 5 right symbols will be used.
Invoices communication
To setup Invoices communication, use the form General ledger > Setup > Sales tax > External > Periodic VAT communication setup. Select Invoices communication in Communication type field.
Add at least four lines in Field setup table to set up queries for:
- Customers invoices tax base
- Customers invoices tax amount
- Vendors invoices tax base
- Vendors invoices tax amount
You may need to set up more than four lines in case you should calculate some specific values separately and then summarize them.
Field setup table description:
Field name
|
Description
|
Field ID
|
Enter Field ID to determine query that should be used for:
- Customers invoices tax base
- Customers invoices tax amount
- Vendors invoices tax base
- Vendors invoices tax amount
|
Description
|
Add a text description of the tag.
|
Format
|
Only Numeric value is applicable for this type of report.
|
Calculation
|
Select one of the following values:
- Tax transaction – for the tags values for which should be collected from tax transactions
- Total – for the tags values for which should be calculated by a formula composed of other (Tax transaction) fields' values.
|
Tax
|
If Calculation is set to Tax transaction, select one of the following values:
Tax base – for tags that should represent a tax base amount.
Tax amount – for tags that should represent a tax amount.
|
Sign
|
Set “1” if the value should be represented as is.
Set “-1” if the value should be inversed.
|
Sales tax charge
|
Select this checkbox when Calculation = Tax transaction and Tax = Tax amount, if you suppose that, the calculated tax amount should be reduced on the calculated nondeductible tax amount.
|
Company address purposes
Generally, when the Company is an Italian company, no additional setup is need. According to the official requirements to the Purchase and sales invoices communication, there are three different cases which should be reflected in the report:
- Italian Company
- Foreign company with Stable organization in Italy
- Foreign company with Tax representative in Italy
According to these requirements, the following tags on the report should be filled in:
Tags \ Company type
|
Italian Company
|
Foreign company with Stable organization in Italy
|
Foreign company with Tax representative in Italy
|
2.1.2.4 <Sede>
3.1.2.4 <Sede>
|
From Legal Entity primary address
|
From Legal Entity address with Purpose = “Head company”
|
N/A
|
2.1.2.5 <StabileOrganizzazione>
3.1.2.5 <StabileOrganizzazione>
|
blank
|
From Legal Entity primary address with Purpose = “Stable organization” (this is an information about location of the Stable organization in Italy of the Original Company which is foreign)
|
N/A
|
2.1.2.6 <RappresentanteFiscale>
3.1.2.6 <RappresentanteFiscale>
|
blank
|
blank
|
N/A
|
To fill an address purpose for a Company, Address type field was added on the Company form:
Counterparties’ address purposes and Tax representative
Generally, when a Counterparty (Customer or Vendor) of the Company is an Italian company, no additional setup is needed. According to the official requirements to the Purchase and sales invoices communication, there are three different cases which should be reflected in the report:
- Italian Company
- Foreign company with Stable organization in Italy
- Foreign company with Tax representative in Italy
According to this requirement, the following tags in the report should be filled in:
Tags \ Counterparty type
|
Italian Counterparty
|
Foreign Counterparty with Stable organization in Italy
|
Foreign Counterparty with Tax representative in Italy
|
2.1.2.4 <Sede>
3.1.2.4 <Sede>
|
From Customer \ Vendor primary address
|
From Customer \ Vendor address with Purpose = “Head company”
|
From Customer \ Vendor primary address
|
2.1.2.5 <StabileOrganizzazione>
3.1.2.5 <StabileOrganizzazione>
|
blank
|
From Customer \ Vendor address with Purpose = “Stable organization”
|
blank
|
2.1.2.6 <RappresentanteFiscale>
3.1.2.6 <RappresentanteFiscale>
|
blank
|
blank
|
A Party with relation type = “Tax representative” from Global address book
|
If a Counterparty (Vendor or Customer) is a Foreign Counterparty with Tax representative in Italy, and a Tax representative should be set up, the following setup should be done:
1. Open Basic > Common Forms > Global Address Book Details
2. Create new Party (it can be an organization or a person)
3. Fill in Name with company or a person name, Organization number – will be used for <IdCodice> tag, and add an address – ISO code will be used as ISO code of a Tax representative of a Counterparty.
4. On Relationships tab add a line fill in fields:
Field name
|
Field description
|
ID
|
Tax representative (select from the list)
|
Party A
|
Created (on the top of the form) Party
|
Relationship A to B
|
Tax representative of (filled in automatically)
|
Party B
|
Customer or Vendor for which you are setting up the Tax representative
|
! NOTE: To make new Relationship types available, the following job must be run:
static void initNewRelationshipTypes(Args _args)
{
;
DirDataPopulation::insertDirRelationshipTypes();
}
Domestic and EU Reverse charge
To identify tax transactions which should be reported as Reverse charge with a value “N6” in the <Natura> tag, Sales tax group table was extended with the Reverse charge field. To use this extension, open General ledger > Sales tax > Setup > Sales tax groups, select a sales tax group which will be used for sales tax codes for Reverse charge transactions and mark Reverse charge check box for the Sales tax code.
On posting Sales tax transactions, Reverse charge value should be transmitted to Sales Tax transaction table from Sales tax group.
! NOTE: For the previously created data (first half year 2017), Sales tax transactions which should be reported as Reverse charge, the related field should be updated in the data base before report generation. To do so, a job, according to the following template, must be run (you may need to add some additional criteria like dates or particular Sales tax codes):
static void setReverseChargeInOldTaxTransactions(Args _args)
{
TaxGroupData taxGroupData;
TaxTrans taxTrans;
while select taxGroupData
where taxGroupData.ReverseCharge == NoYes::Yes
{
update_recordSet taxTrans
setting ReverseCharge = NoYes::Yes
where taxTrans.TaxGroup == taxGroupData.TaxGroup
&& taxTrans.TaxCode == taxGroupData.TaxCode
&& taxTrans.ReverseCharge == NoYes::No;
}
info('Update finished');
}
Sales tax Exempt reasons
To identify tax transactions which should be reported with different exemption reason (ExemptArt.15, Other exempt) and reflected correspondingly as different values (“N1”, “N4”) of the <Natura> tag, Exempt reason table was extended with a new Exempt reason field.
To generate correctly Purchase and Sales invoices communication XML report, update Sales tax exempt codes table (General ledger > Setup > Sales tax > Sales tax exempt codes ) with values in Exempt reason field. You don’t need to update other tables.
Algorithm of <NATURA> tag identification
Review the algorithm to of <NATURA> tag identification to check the setup:
***
For all the Customers and Vendors invoices:
If SalesTaxTransaction.ReverseCharge = 'Yes' --> N6
Else if TaxType = 'Standard' --> no tag
Else if TaxCountryRegionType = 'EU' --> N7
Else if TaxType = 'NotSubjectToVAT' --> N2
Else if TaxType = 'Zero' --> N3
Else if TaxType = 'Exempt'
If SalesTaxTransaction.ExemptReason = 'ExemptArt.15' --> N1
Else --> N4
Otherwise --> N3
***
Where “TaxType” is VAT type field on Sales tax codes > Calculation:
“TaxCountryRegionType” is Country/region type field on Sales tax codes > Report setup: