Split payment for invoices issued to Public administration in the Italian version of Microsoft Dynamics AX

This article applies to Microsoft Dynamics AX for the Italian (it) region.

Introduction

Split payment, introduced by Stability Law 2015, transfers obligation of tax payment to PA who are obliged to pay only taxable base to supplier, VAT is credited to specific reserved account.
This hotfix includes changes in business accounting and in eInvoice required to comply with Split payment regulations.
A reference to the new number sequence "Split payment voucher" is added to General ledger -> Setup -> General ledger parameters. Select number sequence code to post the reversed VAT for invoices under Split payment mechanism.
A new field SplitPayment is added to Sales tax group: Generalledger -> Setup ->Sales tax-> Sales tax group. Set the checkbox to reverse VAT amount automatically upon invoice posting. Ensure this group is assigned to customer-PA.
When posting invoice (Sales order, FTI, Project) with Split payment sales tax group, the system will create reversing sales tax transactions and reduce customer balance for VAT amount.

Note The tax transactions posted with Split payment mark set are excluded from the Sales tax payment procedure.
eInvoice created under Split payment mechanism contains "S" in the tag <EsigibilitaIVA>.

Note If you followed the settings described in the White paper Country Specific Update for Italy – Split payment setup, it is recommended to execute the following job to update the posted tax transactions with Split payment properties:
/// <summary>
/// Updates tax transactions setting corresponding "split payment" checkbox.
/// </summary>
/// <param name="_args">
/// Variable of type <c>Args</c>.
/// </param>
/// <remarks>
/// This job updates split payment tax transactions that were created before the installation of the hotfix "IT-Split payment law" (KB3034035).
/// Before starting the job ensure the following:
/// 1. The above-mentioned hot-fix is installed.
/// 2. Sales tax group used for split payment is marked with a check box "Split payment".
/// If both conditions are met, run the job. The job looks for the tax transactions that are related to the split payment tax group. And in case these transactions don't have SplitPaymDirect or SplitPaymReverse fields marked, marks the corresponding field depending on the tax base
/// (taking into account the fact that reverse tax transactions have tax base = 0).
/// <remarks>
For Microsoft Dynamics AX 2009 SP1:
static void updateTaxTransSplitPayment(Args _args)

{

    TaxTrans        taxTrans;

    TaxGroupHeading taxGroupHeading;

    TaxGroupData    taxGroupData;

    int             i;



    ttsBegin;

    while select forUpdate taxTrans

        where taxTrans.ExemptTax == NoYes::No

           && taxTrans.TaxDirection == TaxDirection::OutgoingTax

    exists join taxGroupData

        where taxGroupData.TaxCode == taxTrans.TaxCode          

    exists join taxGroupHeading

        where taxGroupHeading.TaxGroup == taxGroupData.TaxGroup

           && taxGroupHeading.SplitPayment_IT

    {

        if (! taxTrans.isSplitPayment_IT())

        {

            if (taxTrans.TaxBaseAmountCur == 0)

            {

                taxTrans.SplitPaymReverse_IT = NoYes::Yes;

            }

            else

            {

                taxTrans.SplitPaymDirect_IT  = NoYes::Yes;

            }



            taxTrans.update();

            i++;

        }

    }

    ttsCommit;



    info(strFmt("%1 tax transactions were updated", i));}

 
For Microsoft Dynamics AX 2012, Microsoft Dynamics AX 2012 R2, and Microsoft Dynamics AX 2012 R3:
static void updateTaxTransSplitPayment(Args _args)

{

    TaxTrans        taxTrans;

    TaxTrans_IT     taxTrans_IT;

    TaxGroupHeading taxGroupHeading;

    TaxGroupData    taxGroupData;

    int             i;



    ttsBegin;

    while select forUpdate taxTrans

        where taxTrans.ExemptTax == NoYes::No

           && taxTrans.TaxDirection == TaxDirection::OutgoingTax

    exists join taxGroupData

        where taxGroupData.TaxCode == taxTrans.TaxCode          

    exists join taxGroupHeading

        where taxGroupHeading.TaxGroup == taxGroupData.TaxGroup

           && taxGroupHeading.SplitPayment_IT

    {

        taxTrans_IT = taxTrans.taxTrans_IT();



        if (! taxTrans_IT.isSplitPayment())

        {

            if (taxTrans.TaxBaseAmountCur == 0)

            {

                taxTrans_IT.SplitPaymReverse = NoYes::Yes;

            }

            else

            {

                taxTrans_IT.SplitPaymDirect  = NoYes::Yes;

            }



            taxTrans.packTaxTrans_IT(taxTrans_IT);

            taxTrans.update();

            i++;

        }

    }

    ttsCommit;



    info(strFmt("%1 tax transactions were updated", i));}  

Resolution

The changes in the hotfix enable this update.

Hotfix information

A supported hotfix is available from Microsoft. There is a "Hotfix download available" section at the top of this Knowledge Base article. 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+ContactsCustomers

https://mbs.microsoft.com/customersource/support/information/SupportInformation/global_support_contacts_eng.htmIn 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.


Installation information

If you have customizations for one or more of the methods or the tables that are affected by this hotfix, you must apply these changes in a test environment before you apply the hotfix in a production environment.
For more information about how to install this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:

893082 How to install a Microsoft Dynamics AX hotfix

Prerequisites

You must have one of the following products installed to apply this hotfix:

  • Microsoft Dynamics AX 2012 R3

  • Microsoft Dynamics AX 2012 R2

  • Microsoft Dynamics AX 2012

  • Microsoft Dynamics AX 2009 SP1

Restart requirement

You must restart the Application Object Server (AOS) service after you apply the hotfix.

File information

The global version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

×