Two kinds of currency#
Every company using Hubtoll has one base currency. Hubtoll also calls it the functional currency or ledger currency. It is the currency your books are written in. Every balance and every report is shown in it.
You can still sell and buy in other currencies. A document (an invoice, a bill, a quote) is written in its own currency, such as US dollars. Hubtoll then converts it into your base currency using an exchange rate, so your books always add up in one currency.
Your base currency#
How it is chosen#
The first time anyone opens Finance, Hubtoll picks the currency of your company's country. If it cannot tell, it uses NGN. You can change it, but only early.
- Open Finance SettingsCurrency & Fiscal Year.
- Read the banner: "Your books are kept in ..." followed by a code.
- Open Functional currency and pick another one if needed.
- Click Save settings.
Why it cannot change later#
The page says "Locked: journals have posted in this currency (corrections would restate history)." Hubtoll also blocks a change before any entry if your books already hold exchange rates, price lists, items, customers, vendors or bank accounts. The message says what to remove first: "Your books are already set up in X, so the currency can no longer be changed here without restating what is in them ... Remove those first, or keep X; once an invoice or journal posts, the currency is fixed for good."
Two things post entries without you noticing: creating a bank account with an opening balance and saving opening balances. Set your currency before those.
The Currencies list#
Open Finance SettingsCurrencies. You see a list of world currencies (about 150 are included) with Code, Currency, Symbol and Decimal places. Your base currency has a Base currency badge and is listed first.
A note on the page explains: a document may be raised in any currency below, and it converts into your base currency at the rate frozen on that document.
Currencies are shown with their symbol (for example ₦ or $). A few currencies have no symbol of their own, and Hubtoll shows the code instead (for example BAM).
Customers and vendors have currency lists#
A document can only be raised in a currency that the customer or vendor trades in, plus your base currency.
- On a customer, fill Currencies (optional). The first is the default. See Sell: customers, quotes, invoices and payments.
- On a vendor, fill their currency list the same way. See Buy: vendors, orders, bills and payments.
If you pick a currency that is not on the list, you see "This customer cannot be billed in X. Add the currency to the customer first." (or "This vendor cannot bill in X..."). The currency picker on a document only offers the allowed currencies.
Exchange rates#
Open Finance SettingsExchange Rates. The page says: a rate means 1 unit of the foreign currency equals the rate in units of your base currency. Each currency can hold several rates, but only one is active. The active one is used by every invoice, bill, payment and report.
For each currency you see a heading such as "Currently converts at 1 USD = 1,550 NGN", or "No active rate: documents in USD cannot post".
Add your first rate#
- On the Exchange Rates page, click Add rate.
- In Record Exchange Rate, pick the Currency.
- Type the Rate. A sentence under it shows both directions, "1 USD = ... which is the same as 1 NGN = ... USD", so you can check you did not flip it.
- Click save.
You cannot add a rate for your base currency. You see "This cannot equal your functional currency (X)." Rates must be greater than zero, and can have up to 10 decimal places.
Change the rate: add a new one and activate it#
Rates change. Do not edit the old one. Add a new rate and make it active.
- Click Add rate and record the new rate for that currency.
- On the new rate's row, click Make this the active rate.
- Confirm Make this the active rate?. Click Make active.
A used rate is history#
Once any document has used a rate, that rate cannot be edited or deleted. The row shows In use and "Used by N documents". If you try, you see "This X rate has already been used by N document(s) and cannot be changed/deleted. Add a new rate and make it active instead." A rate that nothing has used yet can still be edited or deleted, with the row icons Edit and Delete.
This protects your old reports. A sale from March always keeps the March rate.
What a document does with the rate#
When you pick a currency other than your base on a quote, invoice, credit note, sales receipt or recurring invoice, a rate box appears. It shows "Exchange rate: 1 USD in NGN" and is pre-filled with the active rate.
- Draft: you may change the rate for this one document. The caption then says Agreed rate, for example when you negotiated a special rate with the customer.
- Issued or posted: the rate is frozen on the document. The caption says Frozen on this document. Raising a new active rate later does not change it. If the active rate has moved on, the box says "This document keeps the rate it was raised at. USD now converts at ... on new documents."
- The customer never sees the rate. It is only for your books. The note reads "The exchange rate only converts the USD figures into NGN for your ledger; the customer is billed in USD and never sees it."
A payment does not take a typed rate. It uses the active rate.
When there is no rate yet#
If the currency has no active rate, the rate box says "No USD exchange rate has been set yet. Set it here and it becomes the rate every USD document uses." Type a rate and click Save rate. This creates the first rate for that currency, and it becomes active at once. Only the first: if the currency already has a rate, changing it is done on the Exchange Rates page by a settings admin or accountant. Hubtoll says "X already has an exchange rate. Changing it is done under Sales & Finance → Exchange rates."
If you try to post without one: "No active X exchange rate. Set one on the document, or under Sales & Finance → Exchange rates, before posting in X." The fix is to add and activate a rate. A bad rate shows "Enter a rate greater than zero, e.g. 1550.00 (up to 10 decimal places)."
Item prices in other currencies#
There are two ways an item can get a price on a foreign document.
| Way | How it works |
|---|---|
| A price you state | You add a price for that currency on the item, under Prices in Other Currencies. Hubtoll uses it exactly. No rate is involved. |
| A converted price | Hubtoll multiplies the main price by the rate. |
On sales documents Hubtoll uses only the first way. If an item has no price in the document's currency, the line stays blank and Create is disabled. A banner says "An item on this invoice has no USD price" with an Add USD price button. This stops a ₦2,000,000 item from becoming a $2,000,000 line by accident. Details are in Sell: customers, quotes, invoices and payments.
Stock is different: stock cost and the stock value on your books are always kept in your base currency.
Paying an invoice in another currency#
A customer can pay an invoice online through its pay link. If the card gateway supports the invoice's currency, they pay in it. If not, the customer is charged the equivalent in your base currency, worked out at the rate frozen on that invoice. The pay page shows what it is doing: Charged in NGN, Invoiced, You pay, and "Rate fixed on this invoice".
Your books still record the payment in the invoice's currency, so the invoice and your records agree. If the invoice has no rate at all you see "This X invoice has no exchange rate on it, so it cannot be collected in Y. Set a rate on the invoice, or take payment by bank transfer." See Sell: customers, quotes, invoices and payments.
Gains and losses from rate changes#
If a customer pays at a different rate from the one frozen on the invoice, the difference is a realized gain or loss. Hubtoll books it to the accounts Realized FX Gain and Realized FX Loss for you.
Foreign money that is still sitting in your books (an unpaid foreign invoice, or a foreign bank balance) changes in value as rates move. At the end of a month or year, your accountant can restate it with FX Revaluation, which uses the Unrealized gain and loss accounts and reverses itself the next day. See Reports and closing the year.
Who can do what#
| You want to | You need |
|---|---|
| Choose the base currency | Finance Settings Admin (FIN_SETTINGS_ADMIN) |
| Add or activate an exchange rate | Finance Settings Admin or Finance Accountant (FIN_ACCOUNTANT) |
| Set the first rate from a document | The person writing the document, once, for a currency with no rate |
| Use a currency on a document | Finance Management Editor (FIN_MANAGEMENT_EDITOR) and above |
See Roles: give people the right access.
Common questions#
I picked the wrong base currency. Can I change it?
Only if nothing has been posted and your books hold no rates, price lists, items, customers, vendors or bank accounts. Otherwise it is fixed. Plan before you start. See Sales and Finance: how it works and how to set it up.
Why can I not edit an exchange rate?
Some document has already used it. Add a new rate and click Make this the active rate. The old one stays as history.
Does changing the active rate change my old invoices?
No. Each posted document keeps the rate it was issued at.
Why does a currency say it cannot post?
It has no active rate. Add one on Exchange Rates, or set the first one from the document.
Does my customer see the exchange rate?
No. It is only used in your books. The customer is billed in the document's currency.