You go on a trip. Some things get paid in euros, a few in pounds before you leave, one taxi in Swiss francs during a connection. At the end, you owe your friend money in three currencies.
Most apps will show you one number. HiBill shows you three.
This is a deliberate choice that occasionally reads as a missing feature, so it is worth explaining.
The problem with one number
To collapse €40, £15 and CHF 20 into a single figure, something has to pick exchange rates. Immediately you are answering questions that have no good answer:
Which day's rate? The day of each expense, or today? They differ, sometimes by a lot. If you use today's, the amount someone owes changes every morning while they sleep, without anyone doing anything.
Whose rate? Mid-market, or the ugly one their bank actually charged? The card that paid took a real rate with a real spread. A mid-market number is tidier and wronger.
What about when they pay? They will settle at a fourth rate, on a future date, that nobody can know now.
Every one of these has a defensible answer, and every combination produces a different total. The app displays one of them, confidently, with no visible reasoning — and now two friends have a number on a screen that neither of them can reproduce or check.
That is the actual failure. Not that the conversion is imprecise, but that it is unverifiable. The number the app shows becomes a third party's opinion that both people have to take on faith, at exactly the moment when what you want is agreement.
What we do instead
A balance in HiBill is per person and per currency. Open Marco and you might see:
You owe Marco €40.00 £15.00
Two facts, both checkable. You paid for things in euros and things in pounds, and here they are. Neither number moves unless somebody records a transaction.
Settling works the same way. You settle the euros with a euro transfer and the pounds with a pound transfer, or you agree on a rate between yourselves, pay once, and record what you actually agreed. HiBill records the agreement — it does not manufacture one.
This is what people already do
The strongest argument for it is that it matches how the conversation actually goes. Nobody says "the app says you owe me 71 euros forty". They say:
"You still owe me for the hotel — that was 40 euros — and the train tickets in pounds."
Two currencies, two facts, no rate anywhere. The app that shows you three numbers is not being lazy; it is describing reality, which is that three separate things happened in three separate units.
Where a rate genuinely is needed — someone wants to pay it all off at once — it is a negotiation between two people, not a calculation. "Call it 70 and we're square" is a completely valid settlement, and HiBill will record it happily. What it will not do is invent that number for you and present it as fact.
The trade-off, stated plainly
You do not get a single "total owed" figure across currencies. If you want one number at the top of the screen, HiBill will disappoint you.
We think a slightly less tidy screen is a fair price for numbers that two people can both verify. An expense app's job is to stop arguments, and a figure derived from an exchange rate neither party chose is a good way to start one.
The practical bits
38 currencies are supported.
Currency is set per transaction, not per account — so a trip naturally produces mixed-currency history without any mode switching.
Receipt scanning detects currency from the receipt itself, which is the single most useful place for it to be automatic. Scanning a Lisbon dinner while your account is in pounds gives you a euro transaction.
Amounts are stored as integer minor units. No floating point, so no cent that appears from nowhere after enough additions.
Multi-currency is on every plan, including free. There is no premium tier for using money from more than one country.