Transactions| Double entry accounting multicurrency
Types of Multi-Currency Transactions
With the multi-currency accounting application, it is also possible to record transactions involving accounts in foreign currencies. In the Transactions table, in addition to transactions in the base currency, foreign currency transactions are also entered: all the transaction elements are specified, including the amount and the account in foreign currency, and the exchange rate applied to the transaction. The amount in the base currency is calculated automatically based on the entered exchange rate.
All amounts, both in base currency and foreign currency, must always be entered in the 'Amount' column.
For information regarding exchange rates, multipliers, and historical rates, refer to the page Exchange rates table.
Note: in the transaction examples, the base currency is Euro.
Each transaction has two accounts (debit and credit). The program allows only one foreign currency per transaction row. The following direct combinations are possible:
- Transaction between two base currency accounts with amount in base currency (in the image, transaction no. 1 in column Doc 1)
The currency of both debit and credit accounts is the base currency. - Transaction between two base currency accounts with amount in foreign currency (Doc 2)
The debit and credit accounts are in base currency, but the currency code (currency column) and amount entered in the transaction row are in a foreign currency.
To enter the foreign currency, manually change the default base currency code.
This is used when traveling abroad and exchanging money to pay in local currency. In this case, there is no specific account in the accounting.
For balance calculation (as both are in base currency), only the base currency amount column is used. - Transaction between a foreign currency account and a base currency account (Doc 3)
The currency must match the foreign currency account.
To calculate the foreign currency account balance, the program uses the foreign currency amount, and for the base currency balance, it uses the base currency amount. - Transaction between two accounts with the same foreign currency (Doc 4)
The currency must match the accounts used (USD1 and USD2). To update the exchange rate, position on the Currency cell and press F6. - Transaction with two accounts that have different foreign currencies (Doc 5)
For example, the bank performs a currency exchange between two foreign currencies.
In this case, the transaction must be entered in two rows (with the same date).
The base currency amount must be identical. It's advisable to use a realistic exchange rate to avoid large exchange rate differences.
To ensure that the base currency amounts on both rows are the same, manually enter the base currency amount and let the program calculate the exchange rate. - Exchange rate difference transactions (Doc 6)
The purpose of this transaction is to realign the base currency balance with the foreign currency equivalent at the current exchange rate.
Only the base currency amount related to the exchange difference is recorded on the account.
These are automatically generated with the Calculate exchange rate differences command.- For exchange gains, the program automatically enters the revalued account as debit and the exchange gains account as credit, taken from File Properties, Basic Data, or from the account indicated in the Exchange differences column of the Other view (in the Accounts table) – defined for one or more specific accounts.
- For losses, the program automatically enters the revalued account as credit and the exchange losses account as debit, taken from File Properties, Basic Data (menu File), or from the account indicated in the Exchange differences column of the Other view (defined for one or more specific accounts).
- The foreign currency amount is left blank
- The currency code is the base currency
- In the base currency amount column, the revaluation amount (gain or loss) is indicated
Setting the Exchange Rate
The accountant decides which exchange rate to use for each transaction. Generally, the following rules apply:
- For regular operations, use the exchange rate of the day.
- For currency buying and selling operations, use the rates provided by the exchange office or the bank.
In the program, first enter the amount in foreign currency and then the amount in base currency; the program will calculate the exchange rate. The rate provided by the bank may be slightly different as banks often round rates to a few decimal places. - If you carry out multiple transactions at the same rate, it is helpful to update the exchange rate in the Exchange Rates table so that the program can use it automatically.
- For foreign operations subject to VAT, the national authority may prescribe a standard exchange rate. In this case, enter this rate in the Exchange Rate column of the transaction.
- For the purchase of real estate or investments, use the historical exchange rate. In this case, you need to create a currency code (e.g. USD2) with the historical rate in the Exchange Rates table, which will not fluctuate.
You can create currency codes for all desired historical rates.
Transactions with VAT
In a multi-currency accounting with VAT, to correctly record transactions without error messages, it is essential that the VAT account and the account from which VAT is deducted are in base currency. It is not possible to apply a VAT code to an account in foreign currency.
To record transactions with VAT that involve foreign currency accounts as counterparties, you must use two transaction rows:
- First, record the purchase amount on an intermediate account in base currency and apply the appropriate VAT code.
The base currency amount must be calculated using the exchange rate in accordance with tax authority regulations. - In a second row, clear the intermediate account and use the foreign currency account as the counterparty.
The amount used for this transaction, both in base and foreign currency, must be net of VAT.
You must use the same exchange rate as in the previous transaction.
In the example, the base currency is EUR. A domestic purchase is assumed, but payment is made from a foreign currency account (USD).
Transactions with VAT and Foreign Currency
In transactions involving foreign currency accounts, VAT can be recorded using the gross amount (Amount Type 0, VAT included).
If net values are entered (Amount Type 1, VAT excluded), the program displays an error because calculating the gross value would often be incorrect due to rounding differences in VAT and exchange rate.
In these cases, it is recommended to enter the gross amount. See also Explanation about the error.
Automation During Entry of Multi-Currency Transactions
When entering a new transaction, the data in the previously mentioned columns must be completed.
If certain values in the transaction row are changed, the program completes the transaction with default values. If these values do not meet your needs, they must be modified directly in the transaction row.
Modifying the values in the Exchange Rates table has no effect on transactions already entered. So, if you change the exchange rate in the Exchange Rates table, it will not affect existing transactions.
- When entering the foreign currency amount and either the Debit or Credit account is already filled, and there are no other values, the program behaves as follows:
- the currency code is taken from the account used, giving priority to the non-base currency account;
- the exchange rate is taken from the Exchange Rates table based on the following logic:
- the historical rate with the date equal to or earlier than the transaction date is used
- if no historical rate is found, the rate from the exchange rates row without a date is used
- the multiplier defined in the Exchange Rates table is used, or 1 if it's the base currency.
- the base currency amount is calculated.
- When the foreign currency amount is modified (and other values already exist), the program:
- recalculates the base currency amount using the existing exchange rate
- If the currency code is modified, the program:
- retrieves the exchange rate and multiplier and recalculates the base currency amount (as above).
- If the exchange rate is modified, the program:
- calculates the base currency amount using the entered exchange rate.
- If the base currency amount is modified, the program:
- recalculates the exchange rate.
Info Window
In the info window, the program shows:
- Any differences between the total debit and total credit in base currency.
- Information about using the F6 key.
For the accounts related to the transaction row you are on, the program always displays the following in the Info window:
- account number
- account description
- transaction amount in base currency
- current account balance in base currency
- account currency code
- transaction amount in account currency (if not in base currency)
- current account balance in account currency (if not in base currency)
Opening Balance Transactions
For multi-currency accounting, when entering opening balances in the Accounts table, the program converts the amount into base currency using the opening exchange rate defined in the Exchange Rates table, Opening Exchange Rate column.
To use historical rates for opening balances, you can create another currency code or create entries in the Transactions table with the opening balances. This way, different exchange rates can be used for the accounts.
- Enter a transaction for each account with an opening balance (Assets and Liabilities), indicating the start date of the accounting and the debit or credit account.
- In the DocType column, enter the value "01" to indicate it is an opening balance.
- In Banana Accounting's calculations and printouts, this amount will be treated as an opening balance.
- However, the transaction does not update the opening balance column in the Accounts table.
Points to consider when using opening transactions:
- To avoid revaluation of accounts at the current exchange rate, enter "0;0" in the Exchange Rate Difference Accounts column in the Accounts table for accounts that should not be revalued.
- The program allows entering opening balances either in the Accounts table or as opening transactions (Assets and Liabilities) in the Transactions table.
In both cases, the amounts are included in the calculations, and if it’s the same account, they are summed.
It is not recommended to use both methods simultaneously to avoid errors and hard-to-find differences. - Opening transactions must be entered manually.
Any debit and credit differences will be shown as a difference in the transactions.
Useful Tips
- By pressing the F6 key while on the Amount column, the program rewrites all values using the logic explained above, as if no values existed. This function is useful when changing the Debit or Credit account.
- If there is a transaction with a single base currency account (in compound transactions) and the Currency column has been changed to a foreign currency, to update the exchange rate, position on the Currency cell and press F6.
- Smart fill for the Exchange Rates column
The program suggests various rates, taking them from the Exchange Rates table or from rates previously used in transactions.
Importing Data from Previous Versions
In version 4 or earlier, the absence of a currency code in the Transactions table was interpreted as base currency.
In version 7, each transaction must have its own currency code. Therefore, when upgrading from version 4 to version 7, you must complete the transactions that lack a currency code. To do this, you need to add a new Currency column to the Transactions table by executing the Arrange Columns command from the Data menu.
Exchange rate differences
Create transactions for exchange rate differences
For theoretical aspects please visit the Revaluations and exchange rate differences page.
- The exchange differences transactions are adjustment transactions that balance out the foreign currency account balance with the basic currency calculated balance. In essence, it is a matter of re-adjusting the values in the basic currency, taking into account exchange rate loss or gain, due to the fluctuations of the exchange rates.
- If these exchange rate differences are not recorded, there may be differences in the opening balances of the following year.
- The exchange rate differences can be calculated at the end of the closing year or during the accounting period (for example at the end of a quarter). In this case the historical changes can be useful, as they allow you to have different exchange rates at specific dates.
- The program calculates the exchange rate difference based on the balances at the specified date. It is therefore possible to calculate the exchange rate difference at a specific date, even if you have entered transactions after that date.
- For further explanations, see also the Exchange rate differences not booked page
- Exchange rate differences are not calculated on the accounts belonging to the profit and loss account. Exchange rate profit/losses, which are generated by exchange rate differences, are financial and non-operating items and are therefore not included in the determination of operating income or the profit and loss account.
The Calculate exchange rate differences dialog
The Create transaction for exchange rate variation... command, from the Actions menu, calculates the revaluations for the foreign currencies accounts.
Date of the transactions for the exchange rate differences
The program is able to calculate the exchange rate difference on a date even if there are postings beyond the date.
- Enter the date for your exchange rate differences transactions.
- The program will suggest the final date of the current month, related to the last entered transaction.
- If there are transactions for exchange rate differences with the same date, the program asks whether they should be replaced. The program considers the transactions for the exchange rates differences as existing if they have the same date, doc, description, accounts and currency and when there is no amount in the account currency.
Document number
Enter the document number your exchange rate differences transactions should have.
Use historical exchange rates (exchange rate rows with date)
- Use when option is not activated
- If in your Exchange rate table there are no historical exchange rates (exchange rates with a date) this option is not activated.
- The program will use the exchange rate in your Exchange rate table of the rows without date
- if you are using historical exchange rates for the year closure, be careful that the exchange rate used should be the same as the current one.
- Use when option is activated
- The program will indicate the date of the exchange rate, found in the Exchange rates table, that will be used to calculate the exchange rate difference.
This is going to be the exchange rate with a date equal or prior to the indicated date. - When calculating exchange rate differences at year end we suggest this option not to be activated
- When booking exchange rate difference transactions at year end, the historical exchange rate must be the same as the current exchange rate, otherwise you get an error message saying that the exchange rate differences have not been calculated (even though they have been).
- The program will indicate the date of the exchange rate, found in the Exchange rates table, that will be used to calculate the exchange rate difference.
Values used to create the transactions
For more information, we refer to our page Multi-currency transactions.
Amount of the transaction
- Transactions for exchange rate differences are being created only for the accounts in foreign currency which, at the specified date, have a different balance in basic currency compared to the calculated one.
- For the amount in basic currency, the difference between the account balance in basic currency and the account balance in foreign currency converted in basic currency is being used.
Account balance
For the calculation of the exchange rate differences, the balances in the account currency and in basic currency are being used, at the specified date.
Exchange rate profit and exchange rate loss accounts
As exchange rate profit and loss accounts are being used, in order of priority:
- The indicated accounts entered in the specific column of the chart of accounts.
- The exchange rate profit & loss accounts indicated in the File and Accounting properties.
Position of inserted rows
When using the command, while in the Transactions table, the rows are being inserted at the position of the cursor.
Otherwise, they will be inserted at the end or at the previous position in case they are replacing existing transactions.
Before using the command
- In the File and Accounting properties of the File menu, Foreign Currency section, make sure that the Exchange rate profit and loss accounts are being indicated. It is equally possible to indicate the same account for both the exchange rate profits or losses.
- Make sure that the accounts in foreign currency are being updated and that the balances in foreign currency of these accounts (for example bank accounts) correspond to the balance indicated by the bank.
- Update the current exchange rates of the Exchange rate table.
You should indicate the closing exchange rates or those of a period's end in the rows without a date, in the Exchange Rate column (do not modify the opening exchange rate in the Rate Opening column). In order to calculate the Exchange rate differences, the program uses the exchange rates of the rows without a date. If these last ones are absent, the program produces an error message.
Opening exchange rates for the New Year
To make the Opening balances of the New Year in Basic currency correspond exactly with the closing balances of the preceding year, the Opening Exchange rates of the New Year, indicated in the Exchange Rate table, have to be the same as those being used for the closing of the accounting, so:
- The closing exchange rates have to be indicated in the Exchange rate column of the rows without a date;
- The opening exchange rates have to be indicated in the Rate Opening columns of the rows without a date.
The procedure of creating a new year or of the updating of the opening balances, copies the closing balances (Exchange rate column, rows without date) of the previous year into the opening exchange rates (Exchange rate table, Rate Opening column, rows without date) of the new year's file.
Exchange rate differences with cost centers
The Create transaction for exchange rate variation... command does not include any exchange rate differences present in cost centers in currencies other than the accounting currency. These differences must be recorded manually at the end of the year. The transaction should present only the accounting currency amount; indicate this amount first, then the cost center involved and the cost center currency. When the currency is entered, the amount in the currency of the accounting will be deleted and must be re-entered.