Dynamics 365 Business Central – How to post a contra to a Customer and Vendor using one General Journal


You may have situation where you have an outstanding customer invoice, and an outstanding purchase invoice for the same company. (i.e. the company is both a customer and a supplier)

In this scenario you may come to an agreement that instead of you paying the outstanding purchase invoice, and them paying you the outstanding sales invoice, its more efficient to “contra” the entries off. In other words, raise a Sales Credit document to apply to the Sales Invoice they owe you, and raise a Purchase Credit document to apply to the Purchase Invoice you owe them.

With Dynamics 365 Business Central there’s a way to raise both of these entries in one single journal rather than creating separate Sales and Purchase Documents.

The Scenario

Here I have an outstanding Customer Ledger Entry for £100.00 owed to me by a customer who is also my supplier.

And here I have an outstanding Vendor Ledger Entry for (£100.00) that I owe to the same company.

We have agreed that rather than pay each other we’ll “contra” the entries off.

The “Contra” Journal

To create the contra I’m going to use the “General Journal” shown below:

In this one journal entry I’ve left the “Bal. Account No” blank (see highlighted above) as I’m balancing a Customer entry (first line) to a Vendor Entry (second line).

In the first line I’ve selected “Customer” as the “Account Type” and an “Amount” of -100.00. This will create a negative customer ledger entry I can apply to the outstanding invoice. I can apply this to the outstanding invoice from within the journal by selecting the line and clicking “Process > Apply Entries”

I can then apply in the usual way:

For the second line in the journal I’ve selected an “Account Type” of “Vendor” and entered an amount of 100.00 which balances the first line. This will create a positive “Vendor Ledger Entry”. I can also apply this line to the outstanding Invoice by selecting “Process > Apply Entries” in the same manner I applied the first entry.

Now if I click preview postings I can see exactly what is going to post:

As shown above when I post this journal I’m going to get one Customer Ledger Entry and one Vendor Ledger Entry. I also get additional Detailed Customer and Vendor Ledger entries as I applied the transactions as well.

If we drill down to the “G/L Entries” we can see a Credit to the Debtors account and a Debit to the Payables account.


I’ve found Journals can be a very powerful tool in Dynamics 365 Business Central enabling users to post all manner of transactions.

Thanks for reading!

Dynamics 365 Business Central – How troubleshooting the error “Amount must be positive in Gen. Journal Line Journal…” took me on a journey of discovery with Journals


I had a user report the error “Amount must be positive in Gen. Journal Line Journal Template Name=’PURCHASES’…..” when posting a Purchase Journal and although the solution is straight forward (the error is telling us the problem) it started a fascinating learning journey into the world of journals in Business Central.

The Beginning – The Error

To confirm the error in full I’ve provided a screen shot below:

A journal line similar to the one being entered, which was causing the error is below. (its a purchase invoice for £100.00)

The simple fix here is to change the “Amount” column to a positive value but why do we have to do that?

The Middle – A Deep dive

If we step back and take a closer look at the journal line we are trying to post we can see the following:

  1. The journal line has a “Document Type” of “Invoice”
  2. The “Account Type” is “G/L Account”
  3. The “Amount” is a negative value.
  4. The Balancing Account Type is “Vendor”.

So, based on this information what are we telling the system to post?

As the “Amount” is negative we are asking the system to “Credit” the G/L expense code, and as the balancing entry is “Vendor” we are asking the system to debit payables and create a positive “Vendor Ledger Entry”. However, if we think about things, this isn’t the expected entries for a Purchase Invoice. For an purchase invoice you’d expect to Debit the G\L Expense code, Credit the “Vendor” and create a negative “Vendor Ledger Entry”. Therefore when we attempt to post the above transaction Business Central produces the error:

Amount must be positive in Gen. Journal Line Journal…..

In essence the error is saying:

“In order to post a Document Type of Invoice for this Purchase Journal Template you need to Debit the G/L Code 30100. Therefore the Amount should be Positive”

So, what happens if we post the same journal line but the opposite way around? What happens if we leave the “Document Type” of “Invoice” but select “Account Type” of “Vendor” first, leave the “Amount” as a negative value, and have the “G/L Account” as the balancing entry like this:

When I attempt to post this it works fine, even though the “Amount” is still negative?

This is because I’m now asking the system to Credit the Vendor (and create a negative “Vendor Ledger Entry”) and Debit the G/L Account 30100 which are valid entries for a document type of “Invoice”.

Penny dropped! I now understand how the journals are working!

The End – More Fun with Journals

Taking this further, have you ever wondered how you can post a Sales Invoice from a Purchase Journal? (or just about any transaction from any Journal) Well if we apply the logic above we can see how this will work just fine.

Take this Sales Invoice I’ve entered in the Purchase Journal page as an example:

Here I’ve selected a “Document Type” of “Invoice” and an “Account Type” of “Customer” and my Bal. Account Type is my G/L revenue code. I’ve then entered a positive number in the “Amount” column. (as this is a Purchase Journal the “Amount” had defaulted to a negative value after choosing “Invoice”) If I post this journal line the system will Debit my receivables, create a positive “Customer Ledger Entry” and the balancing G/L code will be credited. It will therefore work just fine.

The Extras – Lets get a bit technical

How is all this working? Every Page in Dynamics 365 Business Central is based on a table. If you run the “Page Inspector” on the Journal pages you can see they are all based on the “Gen. Journal Line (81)” table. (just press CTRL+ALT+F1 on any page to see the Page Inspector)

This is essentially why we can perform the same actions in all the different Journal pages. For example we can post a Sales Invoice in Purchase Journal or even more bizarre post a Sales Invoice in a Payment Journal. (try it…trust me it works!)

The only difference is that some pages, like the Payment Journal page, have specific actions related to paying vendors like the “Suggested Payments” action.

Cool, eh!


I must admit this some of this information might be obvious to a seasoned Dynamics NAV or Dynamics 365 Business Central professional however coming from a Dynamics GP background this was a really important learning experience for me.

Now I’ve grasped these concepts I’m much more comfortable working with journals.

Thanks for reading!

Dynamics 365 Business Central – Posting a Payables invoice to multiple GL codes using a Purchase Journal


As I learn and familiarise myself with Dynamics 365 Business Central I often post something in Dynamics GP and then wonder how this same task could be achieved in Dynamics 365 Business Central.

Today’s pondering was looking for the equivalent to the “Payables Transaction Entry” window that we have in Dynamics GP.

I know you can post to G/L accounts via the “Purchase Invoice” page in Dynamics 365 Business Central but to me this is primarily a “Purchase Order Processing” type window. I wanted to post a sundry payables invoice, onto a vendor, to multiple GL codes, without the need to touch the “Purchase Invoice” window.

As usual there is more than one way to do this however I focus on the “Purchase Journal” page. I also elude to why I think you can achieve the same using other “journal” pages, although you might not necessarily want to use those anyway 🙂

Dynamics GP – Payables Transaction Entry

In Dynamics GP you can post a sundry payables invoice in a very straight forward and easy to understand window called “Payables Transaction Entry”.

This window has no link to Purchase Order Processing. We tend to advise users to use this window for posting invoices for sundry items and things you wouldn’t necessarily have a Purchase Order for. You can click “Distributions” and record multiple GL codes for this one invoice. Its also handy to import transactions into very quickly and users seem to prefer this window for speed of entry.

Dynamics 365 Business Central – Purchase Journal

There are various “journal” pages in Dynamics 365 Business Central so I turned to the “Purchase Journal” page to achieve my goal.

The first thing I found I had to select was the option “Show more columns” as per below.

Crucially this adds the “Account Type” option which gives the user the ability to add “G/L Account” when keying in the Payables document:

Now I had the “Account Type” field available for entry I found as long as you keep the Document Number, External Document No and Posting Date the same you are able to add a payables document with multiple lines.

First you add the “Account Type” of “Vendor” and key in the first line with the total amount of the document. On the subsequent lines you can choose “G/L Account” as the account type and enter the G/L distribution breakdown. Also, if you wish to analyse tax to any of the distributions you must populate the “Gen. Posting Type” with “Purchases” and then populate the “VAT Prod. Posting Group”.

In the end you should have something like this and the document will post successfully

Other takeaways

As with any investigation you usually find some interesting things along the way.

The major takeaway I found is that you can post the same purchase invoice using the “General Journal” page. After looking more closely it seems this is possible as both pages are based on the “Gen. Journal Line” table. Therefore all the fields (and business logic) you need are available on the “General Journal” page as well.

See below. The “Purchase Journal” and “General Journal” pages are based on the same table:

Purchase Journal
General Journal

However, as a word of caution, if you were to post the same purchase invoice from the “General Journal” page the transaction is given a “Source Document” of “GENJNL” in the “G/L Register” rather than “PURCHJNL”.

See below. The top G/L Register was posted using the “General Journal” page and the other using the “Purchase Journal” page.

Therefore I’d suspect its best to use the specific “Purchase Journal” for these postings.

Thanks for reading!