Working in several currencies with an honest total
Free · automatic rates and entities are Premium
Living or trading between currencies means balances that never seem to add up. In ZeniCash every account, every customer and every invoice has its own currency, the total on the dashboard is converted at a rate you can see and override, and a report never mixes two currencies into one meaningless number.
Everything has a currency
Each account, each entity, each invoice. A movement normally takes the currency of the account it enters — tapping the currency of the amount says The currency is set by the selected account, which is also why the import template has no currency column. The exception is an entity in another currency, below.
An account's currency is chosen when it is created, and it is locked once the account has movements or an opening balance. The default currency — the one totals are converted to — starts as the currency of the phone's region, and changes in Settings › Language & Currency › Default Currency, from a long list with a search. Changing it converts nothing in the accounts. Where the symbol goes, before or after the amount, is a setting too, and the whole app follows at once. The date order is set in Settings › Formats › Date Format, and from version 1.7.6 every date the app shows follows it — the entity statement, the documents list, the document and payment forms, Export Data and its PDF, the cash-flow forecast, the notifications and the bell, among others.
A supplier or customer in another currency (Premium)
Each entity has a currency of its own, set on its form and locked once it has documents or movements. An expense or an income with an entity whose currency is not the account's becomes a movement in two currencies:
- the Amount is in the entity's currency — tapping its currency says The currency is set by the selected entity;
- underneath, Amount leaving the account (an expense) or Amount entering the account (an income), in the account's currency, filled in at the rate in use and changeable to what the bank really charged or paid. Without any rate for that currency it stays empty and says No rate for …: type the amount the bank shows — it is never filled one for one;
- the Document No. becomes required, and Post to current account is ticked and cannot be unticked: saving creates a paid document in the entity's currency, on its current account.
The account goes down, or up, by the second amount, and the reports and the dashboard count that one; the entity's statement shows the document in its own currency, with what left the account and the implied rate underneath. Entities and current accounts are Premium; without Premium, an entity in another currency is only a tag on the movement and the amount is the account's.
Rates: by hand, or automatic
- Free: type the rates by hand, and the app uses them.
- Premium: rates refresh themselves — when the app opens, if the ones kept are more than 6 hours old, or with the refresh button.
A rate you write wins over the automatic one. It is one rate per currency pair, for the whole book: Applies to every amount in this currency, until it is changed — every balance and every total in that currency, past and future. It fits a market where the official rate lies, or a currency the automatic source does not cover; the rate of a single deal belongs on the movement (above). Rates you set travel with sync, so a second phone shows the same totals.
The Exchange Rates screen
Settings › Formats › Exchange Rates — The rates that convert other currencies. When a currency has no rate at all, the dashboard total leaves it out and says so, with a Set up rates chip under the total and an orange banner; both open the same screen.
- Source, at the top: where the automatic rates come from and when they were Updated, with the refresh button (Premium; within 6 hours of the last update it says the rates are already fresh).
- Current Rates: one line per currency the book uses — those of the accounts, of the entities and of the documents — with the rate in use, written 1 EUR = 1.1180 USD in the book's number format. A line whose rate was typed by hand is marked Custom.
- Custom Rates: the rates typed by hand, one line per pair, each with Edit and Delete. Deleting one warns that Conversions in this currency will go back to the automatic rate.
- + › Add Custom Rate: From Currency and Rate (per 1 EUR) — how many units of that currency one unit of the default currency buys (1 EUR = ? USD); thousands separators are accepted. A second rate for a pair that already has one is refused: That pair already has a rate — edit the one there.
After a change of default currency, the rates typed against the old one stay on the list, marked Not in use, and the automatic rates (Premium) are fetched again for the new base.
Transfers between currencies
Moving money from a euro account to one in another currency needs two numbers: what left and what arrived. The form adds Received Amount, in the destination's currency, filled in at the rate in use and changeable to what the bank really credited; without any rate it stays empty and asks for the amount the bank shows. The rate is implied by the two amounts, which is how the app stores it. From a spreadsheet, the same: Amount and Amount received; without the second, the line is refused rather than a rate invented.
Paying an invoice from another currency
An invoice in euros can be settled from an account in dinars or dollars; the payment asks for the same two amounts, the exchange applied is kept on the payment movement, and the entity's balance stays in the entity's currency.
Totals and reports
The dashboard total converts every account to the default currency at the rate in use now — today's rate applies to the whole history, not the rate of each movement's own day. An account in another currency shows its balance in its own currency with the converted value underneath (≈ 1,073.35 €), on the dashboard and in Menu › Accounts. The currency button sits in the dashboard header, at the right end of the row with PRO · ALL · PER: it shows the currency code, or Original, and switches between the total with everything converted and the balances in their own currencies, one line per currency, with nothing converted. The choice is kept on the phone from version 1.7.4. Reports show one currency at a time, by design. Since version 1.5.0 the base currency follows the settings even after a sync changes them — a phone that joins a space in euros calculates in euros.
Questions
- Are exchange rates free?
- Rates you type by hand are free and work everywhere. Automatic rates that refresh themselves are Premium.
- I agreed a rate with a customer — where does it go?
- On that movement, not in the rates. A rate typed in Exchange Rates is one per currency pair and applies to the whole book, past included: it would rewrite every balance in that currency. The rate of one deal is kept by the movement itself — with an entity in another currency, the second amount, what really left or entered the account, carries it (Premium).
- Official rate or street rate?
- Whichever you type. In markets with a parallel rate, set it by hand so the totals match what money is really worth to you.
- Is each movement converted at the rate of its own day?
- No. Totals convert at the rate in use now, and that one rate applies to the whole history. What a movement really cost in the account's currency is the amount recorded on it.
- Which currency does an imported movement get?
- The account's. A movement's currency is the currency of the account it enters, so the import template has no currency column.
Related guides
Checked against ZeniCash 1.5.0 on 2026-09-10. Where a feature is Premium, it says so.