Multi Currency

Jump to: navigation, search

This topic is added as there is requested several times to add Multi Currency to osFinancials.

Multi Currency is a topic not easy to implement in a double entry accounting package afterwards. (Perhaps I'am wrong here)

For those who want this functionality become available in osFinancials this is the place to discuss the way to go. Keep in mint that users can request functionality, but there should be a programmer stand up willing to build it. With other words, you couldn't claim but give input to attract a developer. It's now up to you!

It should contain when finished, a detailed plan how to implement this functionality, without disrupting functionality for current users who don't request Multi Currency.

A good starting point for users could be the following page(s); Tutorial on multiple currency accounting by Peter Selinger

And to give an idea to see the complexity where we are dealing with to build a solid solution, a document how to implement multi currency as a provided solution in a BaaN ERP system. download PDF

Pieter's View

I think the best way it to use true multi currency and I think the best way to do it is with a intermediate account for a specific currency.

Let take a look at this multi currency transaction

Invoice 100 USD for DEBTOR USDEBTOR

We have a ledger in Euros

Current ratio = 1 USD = 1 euro

The transactions on the ledger must be processed like this

100 USD D debtor

100 USD C Exchange USD account

100 EURO D Exchange EURO account

100 EURO C Profit account in Euros


Now because we have the transactions balanced in the Exchange account we can use this account to calculate differences in the valuta and we never have to worry about unbalancing the ledger.

Lets say the dollar becomes 1 USD 0.9 EURO

If we need to calculate the ledger in Euros we would do this as follows.

100 D USD (on the debtor) = 90 Euro

100 C USD on the Exchange account = 90 Euros but couse Exchange account EURO has 100 D Euro the main account wil now show 10 Euros C (before it was 0).

This way the ledger is always in balance.

We need to remind the ratios so a historical entry (you forgot to put in a month ago) will be able to recall the ratio of that day. Also you must be able to override this manually (it will be used to calculate what amount must be put on the EURO contra account.

This way we can also interchange the full balance to any currency.


This way the system is not limited to any currency that is introduced and this can also be used for other things that currency (also stock and bonds). From a technical aspect I would like the system to have a base currency so that you can see the amount in this bases currency fast.

If we receive this transaction on our dollar account we can just put it against the debtor. If this is a Euro account the same conversion will be made true for the Exchange account.

So accounts should hold currency types and a list of exchange ledger per currency can be used to transport it correctly.

Internal the accounts will have the value in that currency and can be converted at reprot time to the latest rates. so the trail balance will include profit / losses of the currencies.

There will be a list like this

  • Currency loss / gains 7050-000
  • USD Exchange account 7050-001
  • EURO Exchange account 7050-002
  • X Exchange account 7050-003


When ever a balance entry must be made on 2 different currency account the Exchange accounts will be used.

In a batch (free batch) you can only mix currencies on the exchange account). So manual input can still be done.

Then we need to update the to report account type currency and make conversions to viewed currency.

  • Routine for the balansing entries
  • Routine for the posting of documents
  • balance report
  • Open item
  • Document reports
  • All other report involving transaction
  • profitloss report
  • trail balance report
  • Transaction list (display multi cur)
  • TLedger and TAccount viewers

These reports must be able to show in a selected currency at a adjustable rate. (Can pick from list historical or current but must be able to select it) if we use 1 base currency then we can do with rates between this currency. But we will lose accuracy when cross valuta exchanges will be handled. (base Euro from dollar to Pounds Sterling conversion will be more accurate than dollar to Euros to Pounds Sterling)

  • balance report
  • proffitloss report
  • trail balance report
  • TLedger and TAccount viewers

As you can see it's a hell of a Job.

Personal tools