How to run a multi-currency cash register
The mistake behind most unbalanced tills
We learned this in Venezuela, where a single sale is often paid partly in US dollars and partly in bolívares. The same applies anywhere a store takes two currencies: dollars and pesos, euros and pounds, a local currency and a foreign one.
The usual way to close is to add everything up, convert it to one currency at the current rate and compare that total with sales. It looks sensible, but it has two traps:
- Differences cancel out. If you are 5 dollars short in cash and have extra local currency because some change was never written down, the converted total can look almost right. The shortage is still there; you just can’t see it.
- The closing rate is not the payment rate. If you were paid in the morning at one rate and convert at night at another, a “difference” appears that nobody stole or lost.
The fix: balance each currency and each payment method separately, and use conversion only to know how much you sold, never to balance.
Before opening: the float, per currency
Count the float in each currency separately
Dollars on one side, local currency on the other, notes and coins. Write down both amounts; don’t merge them into one.
Have whoever opens sign it
One line on the sheet with the time, both amounts and the name of the person opening. If the cashier changes mid-day, count again at handover.
The float is not a sale
Subtract it before comparing at closing. If you leave it mixed in, the till always shows an overage of exactly the float, and people learn to ignore overages.
Split by method, not just by currency
Each way of getting paid is checked in a different place, so each one needs its own line at closing:
| Method | Currency | Where you check it at closing |
|---|---|---|
| Cash | USD | Count of the dollar drawer |
| Cash | Local | Count of the local-currency drawer |
| Card terminal | Local or USD | The terminal’s batch close |
| Bank transfer or mobile payment | Local | Your account’s transactions, one reference at a time |
| Foreign accounts or payment apps | USD | The receiving account; a person always checks it |
When one customer pays a sale with two methods (some cash, some by transfer), those are two payments on the same sale, each on its own line.
Record every payment with five details
- Time and sale number.
- Sale total in the currency you price in.
- Method (cash, transfer, card…).
- Currency and amount received.
- The rate used for that payment.
| Sale | Total | Method | Received | Change | Rate |
|---|---|---|---|---|---|
| S-01 | $4.20 | Cash USD | $5.00 | 80.00 local (cash) | 100 |
| S-02 | $12.75 | Card | 1,275.00 local | — | 100 |
| S-03 | $8.55 | Cash USD | $5.00 | — | 100 |
| S-03 | Cash local | 360.00 local | 5.00 local (cash) | 100 |
Sale S-03 is a split payment: $5 in cash and the rest in local currency. Two lines for the same sale, each adding to its own drawer.
Change is money going out
Change is the most common cause of differences in the local-currency drawer. In the example, sale S-01 was paid with $5 and the change was given in local currency: $5 went into the dollar drawer and 80.00 local went out of the other one.
If you only write “S-01: $5 cash”, the local drawer will be 80.00 short at closing and nobody will know why. Always record which currency and how much you gave as change.
In short
In through one currency, out through another: two movements, even if it is one sale.
One rate per payment, and it doesn’t move
Decide where the rate comes from
An official or published rate you can point to. Write it down so the whole team uses the same source.
Decide when you load it
At opening is simplest. If you change it mid-day, record the time: earlier payments keep the earlier rate.
Never recalculate what was already paid
A payment taken at one rate stays at that rate. That is what makes the till balance.
At closing: compare method by method
For each method, compare what you recorded with what you counted or verified. Look at the difference in that method’s own currency, never converted.
| Method | Recorded | Counted or verified | Difference |
|---|---|---|---|
| Cash USD (minus float) | $10.00 | $10.00 | 0 |
| Cash local (minus float) | 275.00 | 275.00 | 0 |
| Card | 1,275.00 | 1,275.00 (batch close) | 0 |
Recorded local cash is what you received (360.00) minus the change you gave (80.00 + 5.00). If you do it by hand, do it on the sheet, not in your head.
If something is off: record it, don’t cover it
Check in this order, from most to least common:
- Change that was not recorded, or recorded in the wrong currency.
- A split payment recorded as a single method.
- A transfer recorded as paid that isn’t in the bank, or belongs to another sale.
- A card payment declined after it was recorded.
- A payment taken at a different rate from the day’s.
- An expense paid from the drawer without a receipt.
If it still doesn’t show up, record the difference with the date and the name of whoever closed. Never move money from one drawer to the other to “balance”: it erases the trail for tomorrow.
What software can do (and what it can’t)
A system can store each payment with its method, currency and locked rate, work out change in whichever currency you have, and build the closing table for you. In our systems, an “assisted reconciliation” also suggests which bank-statement lines match which sales, and you approve them.
What no system does for you
- Count the cash in the drawer.
- Confirm a bank payment your bank doesn’t let it check: in our systems a person verifies it.
- Replace your tax receipts: our receipts are non-fiscal documents, and taxes in your country are designed with you.