Posting error when currency rate is different between MR and PO


I am using costing method Average PO.

I create a Purchase Order with a price list in foreign currency EUR. My schema's functional currency is THB.
Using currency type "Spot", I maintain the currency rates for EUR to THB. The rates differ between periods. In my simulation scenario, the currency rates EUR->THB are different during MR and Vendor Invoice.
I perform the MR on 10/6 against the Purchase order with Spot rate = 1:41.
I perform Invoice (vendor) on 11/6 against the Material Receipt with Spot rate = 1:42.
I examine the Matched invoice and find that the transaction can't be posted due to following error: Posting Error: Source Not Balanced (org.compiere.acct.Fact isSourceBalanced)

Selecting "Use Suspense Balancing" and "Use Currency Balancing" solves the issue and the matched invoice can now be posted.
As I would expect, the exchange rate difference between MR and Invoice is correctly debited to product inventory and the product cost record is correctly updated as well.

Here is where I'm getting confused:

The Currency Balancing account is debited with the amount of the exchange rate difference, and the Suspense Balancing account is credited with the exchange rate difference amount.
I don't see the point for these 2 posting lines because the exchange rate difference is already correctly posted to product inventory.

My questions are:

What is the purpose of "Use Currency Balancing" and "Use Suspense Balancing". I couldn't find any documentation detailing the exact purpose.
How are these 2 accounts supposed to be defined? Are they supposed to be B/S or P/L accounts or one of them a B/S account and the other a P/L account? As I see it, these 2 accounts should certainly be of the same account type, else I'd see an impact in my P/L which is completely undesirable.
In the scenario described above, how do these 2 posting lines make sense?




Michael Powacht
October 21, 2019, 2:12 AM

I applied patch IDEMPIERE-3235_InterOrg_20191018.patch and ran a few tests under the following conwith following scenarios:

  • 2 parallel accounting schemes: primary schema=USD, secondary schema=THB

  • Currency Balancing=Y
    PO in foreign currency (EUR)
    PO, MR, Invoice and Payment were recorded in different periods subject to different currency rates for EUR/USD and EUR/THB.
    I successfully verified MR, Vendor Invoice, Matched Invoice, Payment and Allocation accounting facts.
    Patch IDEMPIERE-3235_InterOrg_20191018.patch does not seem to have any adverse impact on existing functionality.

I did not test cross-organizational postings, which I'm sure Nicolas has tested.

Cheers, Michael

Michael Powacht
October 21, 2019, 12:02 AM

Hi both,

I'll take a look within today or tomorrow based on our current setup, which is Currency Balancing=Y


Nicolas Micoud
October 18, 2019, 1:23 PM

Hello ,

Your patch produces same effect as mine, so +1 for me !

Thanks a lot



Heng Sin Low
October 18, 2019, 8:15 AM

Hi ,

Please verify the attached patch (IDEMPIERE-3235_InterOrg_20191018.patch), thanks.

PS: , if you have time, please check whether the new patch break what have been fixed previously.



Heng Sin Low


Soo Fang Lee


Tested By


Fix versions