Intercompany project invoicing in practice: Process
With the Intercompany project invoicing in practice: Setup in place, let’s proceed with the business process step by step.
Go to Project management and accounting > Timesheets > My timesheets and create a new one. People often experience issues here for the first time. These may be traced to 2 possible causes: a wrong/missing user-employee relation and/or missing timesheet periods or timesheet weeks records (every employee has a set of his/her own: refer to Part 1, Show/Update timesheet periods).
Pick the borrowing Legal entity, and the list of the eligible projects becomes available. All the constraints in the borrowing entity are respected: the project stage, a possible worker/project validation, billing Line properties etc. Unfortunately, this goes as far as to the extraction of the final sales price to the end customer and the ultimate customer-facing VAT group from the borrowing LE side. These parameters are ‘frozen’ once the timesheet is posted in the lending entity, but the game is not yet over: one can fix them after.
Perhaps the most critical flaw in the design of intercompany timesheets is the derivation of the financial dimensions: the project financial dimensions do not propagate the lending entity at all, despite the common chart of accounts and accounting structures. Instead, the employee dimensions are taken, and nothing else. This is going to hit us hard at the moment of the IC free text invoice booking, because the revenue account structures very often require a cost/profit centre, a line of business dimension and so forth.
The workaround may be to set the P&L dimensions in every employee card (which is awkward and may not always fit) or to extend the /Tables/TSTimesheetLine/Methods/initFromProjTable method.
The issue is aggravated by the fact, that an entity-backed Project ID dimension cannot span multiple legal entities, while the project itself obviously can! A common ‘solution’ is a custom or a manual Project ID financial dimension (business case: booking an asset depreciation against a project, booking service revenues against a CAPEX project and so on).
Either way, as soon as the first hours have been entered, they already appear in the Manage / Pending transactions view with the final sales price to the customer:
Submit the timesheet to the Workflow in due time, get it approved (learn the Reassign button in the Workflow history). The timesheets may either be configured for the automatic posting or they may be posted manually in the Project management and accounting > Timesheets > Unposted timesheets list. Beware that no Project transactions (ProjEmplTrans) get produced, the transactions are still “pending”.
Intercompany customer invoice
Run the Project management and accounting > Periodic > Project invoices > Create intercompany customer invoices function to collect desired types of transactions and bill them at once to the borrowing IC partner.
The result appears on the Project management and accounting > Project invoices > Intercompany customer invoice list:
In essence, it is a usual free text invoice with a few project extras. Every timesheet day results in one IC customer invoice line (!) and the printout may be quite long. To preview the invoice, use the common Sales ledger (en-us: Accounts receivable) > Invoices > All free text invoices form. Once the invoice is created, the pending project transactions in the borrowing LE disappear for a short moment of time.
Should anything be wrong, the invoice may be simply deleted and re-created at will. You cannot correct the source dimensions in the timesheet anymore, but the dimensions or the accounting distribution in the free text invoice may be amended… line by line.
Post the invoice. This is the moment when the system makes a copy of it in the borrowing legal entity as a Supplier pending invoice; the transactions reappear on the pending project transactions list.
Pending supplier invoice
In the borrowing legal entity, locate the Purchase ledger (en-us: Accounts payable) > Invoices > Pending supplier invoices. The IC invoice must be there with the free text invoice number from the lending entity. The lending LE financial dimensions have been overwritten with the dimensions of the project in the borrowing LE.
This is the fist chance to fix timesheet errors by amending the Billable/Non-billable Line property, the final Sales price, etc. The quantities (hours) are better tended by adjusting the resulting project transactions, once the Supplier invoice is posted.
Namely, there is one key constraint to realise: there is no facility to cancel the original IC customer invoice in the lending entity, therefore no legal options to fix it in terms of the cost amount (i.e. the transfer price), quantities etc. in the borrowing entity either. Game over. The lending entity may only issue an all-manual free text invoice for the disputed difference.
Post the invoice. The invoice lines finally appear as Posted project transactions in the project, where the sales price comes from the borrowing LE and the cost price = transfer price originates in the lending LE.
Note one weird thing about the transactions: the Origin is the Supplier invoice of the expense project transaction type, yet the categories are the hour categories. The project date is the original date on the timesheet (there used to be a bug around that, but it was fixed).
This concludes the specific intercompany part of the process. In the case of a Fixed fee project, it all ends with the cost, WIP and the revenue recognition at the end of the month. In the case of a Time and material project, the hours and/or expenses may be billed regularly:
Project proposal → [Invoice proposal workflow] → Project invoice, either detailed or condensed.
Project Management and Accounting blog series
Advance payment invoices in Fixed fee projects in D365, D-A-CH style
What Item requirements can’t do
Revenue recognition with project budget shadow forecasts
Intercompany project invoicing in practice: Process
Intercompany project invoicing in practice: Setup
thank you for drawing attention to all these small things that can go wrong (and the design flaws) – this will great help me when trying to decide if to recommend this functionality to a client.
My pleasure! It works: I follow this cycle every month in my accounting.
It so happens what exactly 3 people work for the company: myself from another ‘entity’, an associate from India as a temporary worker, and soon a fellow co-worker. The cost of each of the 3 must be booked in different accounts in accordance with the recommended Austrian CoA 😉
Thank you for the article!
Could you please also provide the correct scenario for correcting the wrong free text invoice that had been posted?
Hi, I guess you are addressing the case if the lending company charged too much. The ‘too little’ case is a no-brainer.
1) Issue a free text credit note for the difference on the other (lending) side (a simple negative lump sum with an appropriate line text).
2) Post it as a regular supplier invoice against the project on the borrowing side.
3) (T&M projects only) Since you cannot destroy or reduce hours in a project transaction, make an adjustment in the borrowing company: change the Line property from Billable to Non-billable, either for the transaction(s) as a whole, or only a part of it. Alternatively, just set the sales price to zero or adjust it to the desired value.
Hello and thank you for that helpful article!
My concern is how to adjust the posted sales tax amount after posting the intercompany free text invoice only in the lending company, because in the borrowing company the amounts are ok. What is the legal way to do it?
Late reply, sorry. I’ve got this case in the past once, and it was really, really hard to root it out: the VAT on one of the positions was missing. The amount was not correct in both the companies: less by the VAT. I would not know how the VAT may be wrong in one company and right in the other, since Dynamics makes an exact copy AR_Invoice(Lending) -> AP_Invoice(Borrowing).
1) I made a payable VAT correction (a VAT lump sum) in a GL journal in the Lending company:
Dt Interim_Account Cr VAT_Payable
2) Then I made a receivable VAT correction (a VAT lump sum) in a GL journal in the Borrowing company, and left a written statement for a tax auditor about the nature of the correction.
Dt VAT_Receivable Cr Interim_Account
3) Then I posted an IC recharge between the companies in a GL voucher:
Lending: Dt ICO_Recharge Cr Interim_Account
Borrowing: Dt Interim_Account Cr ICO_Recharge
4) Then I transferred the money between the companies bank accounts:
Borrowing: Dt ICO_Recharge Cr BankAccountB
Lending: Dt BankAccountL Cr ICO_Recharge
Thank you for the article!
Just a quick question ; Can Invoice in one LE be offset against the Customer Invoice in another LE or how we clear these (Customer & Vendor balance) if borrowing LE not going to pay lending company .
Thanks in Advance
Hi, just one idea of many: use Intercompany accounting in D365 and make a 2-sided transaction in a GL journal, e.q. in the lending company:
Lending Company: Dt Customer -Invoice_amount Cr Vendor : Borrowing company,
then settle the resulting credit note with the respective open transactions in the 2 companies.
Also check my earlier reply to a similar question above.
first of all thanks for perfrect explanation. The intercompany reinvoicing should also work for expenses and vendor invoice lines. I have tried to book expense via project expense journal, but I am unable to select the borrowing legal entity and subsequently project id from borrowing company . The same for purchase order to use it in vendor invoice. You do select the borrowing legel entity in timeseheet entry. Do you idea were to select it for expense/purchase order?
Hello, the expense journal is not supported, I am quite certain. In the purchase order, you cannot do it either, but if you start with a purchase requisition, there is a field to choose the legal entity. However, I recall when you convert the purchase requisition into a real purchase order, the PO is placed in that ‘lending’ company, i.e. it may be not a true solution either. Please investigate and let us know.
Thanks for this valuable information.
Did D365 have a process to manage lending resources between business units in the same legal entity?
My customer have different BU managed like separate legal entity… and when a business unit lend a ressouce to another BU , this BU have to recognize the same margin when they invoice this resource outside
Sorry, but no. Only the Oracle Cloud ERP features this option 🙂