v14: How do I record a bank transfer payment from two accounts in different currencies with a specific fixed exchange rate?

Community Question

I have two accounts - one in USD and the other in EURO.

I want to move $USD 100 from the first into the second, but I can't find a way to do it that gives me the ability to record a specific exchange rate - as the ones in Odoo will never match what my bank gives me.

1 Answer
Ray Carnes (ray)
Best Answer

Like this:


  • you have $500 in your US bank account

  • you have €0 in your EURO bank account

  • your EURO account is setup with as the Currency on the Journal

Your Bank Balances would then show like this:

First, you will record an INTERNAL TRANSFER of funds OUT of your USD Account:

Next, you will record an INTERNAL TRANSFER of funds INTO your EURO Account:

Your balances at this point will be:

Note: because Odoo has not yet been given the exchange rate the bank used, it will not show the same amount.  You rectify this during Bank Reconciliation. Just like a Customer Payment you have not yet verified, the Internal Transfer amount has not yet been verified (so doesn't show up in your GL yet).

Reconcile your USD Bank Account:

Reconcile your EURO Bank Account:

Note: You need to show and populate the Amount Currency and Foreign Currency amounts.  You only need to do this for transfers between accounts - and only for the part of the transfer needing to be converted to a different FX amount than Odoo would have done (if left blank, Odoo would book this at €84.18)

Balances after both Bank Statements have been reconciled:

Balance Sheet:

Journal Entry from the Bank Reconciliation process on the EURO account:


Hi Ray,

I'm confused on the transfer of funds between bank accounts / cash journal. In your above example after doing two internal transfers both amounts (100USD & 84.18EUR) are sitting in the Liquidity Transfer account 101701.

Don't we have to reconcile them with each other to make sure that Liquidity Transfer account zeroes out?

My understanding of doing funds transfer between bank accounts (as well as cash journals) is following: (transfer fund from A account to B account)

1) Send money from account/journal A

2) Receive money at account/journal B

3) Reconcile the Liquidity Transfer account entries with outstanding payment and receipt accounts

4) Record the Bank Statement (or cash book) at account/journal A with negative value

5) Record the Bank Statement (or cash book) at account/journal B with positive value

6) Reconcile the Bank Statement entry at account A

7) Reconcile the Bank Statement entry at account B.

Are we doing it right, or overly complicating transaction records.

Kind regards,


Ray Carnes (ray)

In my example, a $100 debit from the first Internal Transfer (out of USD Account) and a $100 credit from the second Internal Transfer (into the EURO account) are sitting in the Liquidity Transfer account 101701. So following my steps (you probably made a small mistake) the account will always balance and reconciliation is up to you (not required). Your list of steps is restating my example (apart from step 3) so you have the correct procedure.


Dear Ray, thank you very much for a rapid reply and explanation!