Intercompany Project Invoicing in AX 2012 R3 (Part 1)
Since the initial release of Dynamics AX 2012 in late 2011, we have invested a lot to make projects easier to use in multi-company scenarios. In the 2012 feature pack, we enabled users to report time against projects in other legal entities. In the R2 release, we added the ability to resource projects with employees of other companies. In R3, we are taking it one step forward and enabling legal entities to invoice each other for time, employee expenses and vendor expenses. This is especially important when a company has subsidiaries in multiple countries and has tax liability for sharing resources. In R2, intercompany cost and revenue was handled through ledger transactions in both companies at the time when the cost was recorded. The process in R3 allows for companies to adjust the amounts charged between companies and aligns the timing of the intercompany revenue in the resourcing company with the revenue accrued in the contracting company.
Below is an overview of the intercompany project invoicing scenario in R3:
In this scenario, the project and contract with the external customer is being run in the US legal entity (the CLE or contracting legal entity). Resources in the 2 RLEs (resourcing legal entities) enter timesheets against the project in the CLE. However, there is no intercompany revenue or cost recorded immediately. Instead, the RLEs periodically generate intercompany invoices for the CLE from the time and expenses recorded by the employees. When this IC invoice is approved and posted, it generates a corresponding vendor invoice in the CLE. When this vendor invoice is posted, the cost is recorded against the project in the CLE and can be invoiced to the external customer.
Let's start with the setup required to get the process configured.
First, make sure you have an intercompany trading relationship between the legal entities. This means that you have a customer record for the contracting company in the RLE and a vendor record for the resourcing company in the CLE. On either record, you should go the general tab and click on Intercompany. Here I've set up a trading relationship between SFRA (CLE) and SUSB (RLE).
Next, you will need to enable intercompany in the resourcing company. This is done in the Project management and accounting parameters form. First, check the option to have the legal entity property show up on timesheet and expense report lines. The for each CLE, you need to add a record to indicate whether to accrue revenue before invoicing. You also need to specify a default hour and expense category to handle cases where the two companies do not share project categories. Project categories are important as they are used to drive item tax groups on both sides.
You will then specify the ledger accounts used for posting the intercompany cost of loaned resources and the intercompany revenue received. This is done in Project management and accounting > Setup > Posting > Ledger posting setup.
Next, set up transfer pricing between the companies. This is done from Project management and accounting > Setup > Prices > Transfer price.
In previous releases, you had to specify an hourly rate for each employee in the RLE that you wanted to make available. In R3, we've added six transfer pricing models. There are four models for a fixed amount or based on the cost price. These work the same way as the project hour sales pricing models:
- Contribution ratio
- Charges percentage
- Charges amount
There are also two models based on the final sales price for the external customer in the CLE. These models allow you to base RLE revenue on the amount that the CLE will charge:
- Percentage of sales price
- Amount below sales price
Finally, you will need to make sure you have set up the hour unit of measure. This will be used when the vendor invoice is generated in the lending company. Click Organization administration > Setup > Units > Units and make sure there is a unit in the list with Fixed unit assignment checked and the Fixed unit dropdown set to “Hours”.
That's it for setup. Next time, I'll walk through an example transaction flow.