As I’ve said before, working in New Zealand means that I’m dealing with a lot of organisations that have off-shore subsidiary companies – frequently setup to sell wonderful New Zealand produce to those folk not fortunate enough to live in this beautiful country. Intercompany sales and purchase orders are an efficient and effective way of managing this supply chain – and normally when I’m thinking about processing sales orders I lose interest in the process once the sales order invoice is posted; and on purchase orders I’m usually only interested in getting as far as posting the purchase order invoice (and sometimes, not even that far). But of course there’s a little bit more to the process – we have to process the customer payment and the vendor payment so that the customer and vendor invoice transactions are fully settled. Again, by definition, in intercompany trading we’re bearing the cost of both of those transactions – so we’re going to want to make the process as efficient as possible.
There are two ways that the customer and vendor payment process can be improved.
First let’s demonstrate the problem. I’ve setup the classic, simple intercompany purchase order and intercompany sales order in the standard Dynamics AX 2012 R3 demo image. My intercompany purchase order is in the DEMF company, with a matching intercompany sales order in the USMF company:
I’ve posted both orders through to invoice, and now I can see on the Customer transactions in USMF that I have an un-paid customer invoice:
And on the purchasing side, in the DEMF company my intercompany vendor is showing a purchase order invoice that needs to be paid:
You’ll notice that in the intercompany order process the intercompany sales order invoice number is automatically used as the purchase order invoice number – and you’ll probably also know that in an intercompany environment I prefer to setup number sequences so that a reference to the company is embedded in the number (more info here ).
So – the first way that we can make the payment process more efficient is to eliminate it.
Use a cash payment method and the invoices are automatically settled. In your down-stream selling company (which is buying the product, DEMF in my example) setup a cash payment AP Terms of payment, Accounts payable > Setup > Payment > Terms of payment:
I’ve had to specify a Ledger posting account – that is used when the payment is posted. It’s where the invoice balance will end up so it’s going to be an intercompany debit/credit account.
Now add that Terms of payment to my intercompany vendor:
Same on the upstream, supply company, (USMF in my example), except that in this case, it’s an AR payment term. Accounts receivable > Setup > Payment > Terms of payment:
Same again for the Ledger posting account –it’s an intercompany debit/credit account.
And obviously again I add the Terms of payment to my intercompany customer:
Now I’ll process an intercompany sales order / purchase order pair through to invoice as before, and inspect the customer transactions:
My customer invoice is paid and the payment transaction has been added to the voucher created when I posted the sales order invoice.
And on the intercompany vendor I see that the same process has taken place:
The second way of optimising this process isn’t quite as automatic, and might therefore be used where for instance there’s a delay between the sales order despatch and the receipt in the downstream selling company. Firstly, reset the Terms of payment on the intercompany customer and vendor away from a cash payment term (Net10 is used in the demo data). Then we’re going to use one of the intercompany setup parameters. The intercompany trading relationship is defined either from the customer or the vendor. On the General action tab, click the Setup > Intercompany button:
On the Sales order polices tab we find a ‘Payment journal’ and a ‘Post journal automatically’ checkbox:
The formal Technet help explanation is here. It tells us that with the ‘Post journal automatically’ checkbox ticked, the system assists you keeping your accounts in synchronisation by posting the customer invoice payment journal when the intercompany purchase order invoice payment journal is posted. To make this work in the demo data setup I added a Payment method to the intercompany vendor – this defaults the bank account offset account used when the vendor payment journal, and I also needed to create an Intercompany customer payment journal, because I found that when the customer payment journal is created and posted by the system it wasn’t picking up the offset account from the customer’s Method of payment. So on the intercompany vendor I now have:
So back to our opening case, we have an unpaid customer invoice:
And an unpaid vendor invoice:
I create a payment journal for the invoice (with a little bit of help from one of my finance consultant colleagues), and post it, and I see:
Obviously, the vendor transaction’s been paid:
But so has the customer transaction back in the USMF company:
And here is the customer payment journal that the system created and posted:
By the way, this is the customer payment journal I created. General ledger > Setup > Journals > Journal names:
But I am well outside of my comfort zone here, all that should have been required was an AR Method of payment to specify the offset bank account on the customer.
I received a comment asking for a view of the GL journals posted at each step. I’ve never tried to update a blog post before, but here goes, hopefully this works.
This is the voucher from the delivery note in the upstream supply company:
And this is the voucher from the purchase order receipt in the downstream selling company:
This is the voucher from the intercompany sales order invoice:
And this is the intercompany purchase order invoice in the downstream company:
Here’s the purchase order payment:
And here’s the sales order payment:
Hope this helps – but really the thing to do with these vouchers is to copy them all into a spreadsheet and reconcile them.
What you should see is that the balance ends up in an Intercompany clearing account in each company.