Foreign Currency Transactions: A Small Importer's Guide
Record a foreign-currency purchase at the exchange rate on the day of the transaction. After that, the stock stays at that cost while the amount you owe the supplier is retranslated until you pay, and the movement is an exchange gain or loss: unrealised at a month end, realised on payment, and reported apart from your trading margin.
A growing number of small retailers buy directly from abroad. A phone shop in Europe, the Gulf, the Levant or Latin America may buy handsets from a regional distributor invoicing in US dollars, accessories from a factory invoicing in dollars or yuan, and pay rent, wages and tax in its own currency. Handled properly, each foreign invoice produces clear, explainable exchange differences. Handled carelessly, it produces stock costs that drift, supplier balances that never reconcile and margins nobody trusts.
This article sets out the rules as the international standards describe them (IAS 21, and Section 30 of IFRS for SMEs, which follows the same approach), and walks through a full example.
What is a functional currency?
The functional currency is the currency of the main economic environment you operate in: the one your prices are set in and your costs are mostly paid in. For most small shops, that is the local currency. Everything in the ledger is ultimately measured in it. A foreign invoice is recorded in its own currency and in the functional currency.
Which exchange rate do you use to record a foreign purchase?
A foreign-currency purchase is recorded at the spot rate on the date of the transaction. For practical reasons, the standards allow an average rate for a period, such as a week, when rates do not fluctuate significantly. What matters is that the rate is documented and consistently applied.
Why does the payable move when the stock cost does not?
This is the point most people miss.
- The payable to the supplier is a monetary item: a fixed amount of dollars to be paid. At each reporting date it is retranslated at the closing rate, and the difference goes to profit or loss as an exchange gain or loss.
- The stock you received is a non-monetary item. It stays at the functional-currency cost recorded on the transaction date. Later rate movements do not change the cost of the phones on your shelf.
So when the dollar moves after you buy, your margin on the phones does not change. A separate exchange gain or loss appears instead. That separation is useful: it tells you how much of your result came from trading and how much from currency.
How do you calculate realised and unrealised exchange differences? A worked example
A phone shop keeps its books in euros. On 3 September it receives phones from a distributor with an invoice for USD 10,000, payable in 30 days.
3 September: purchase. The rate that day is 1 EUR = 1.10 USD. In euros: 10,000 ÷ 1.10 = 9,090.91.
| Account | Debit | Credit |
|---|---|---|
| Inventory | 9,090.91 | |
| Supplier payable (USD 10,000) | 9,090.91 |
30 September: month end, still unpaid. The rate is now 1 EUR = 1.08 USD. The same USD 10,000 is worth 9,259.26 euros. The euro has weakened, so the debt has grown by 168.35.
| Account | Debit | Credit |
|---|---|---|
| Unrealised exchange loss | 168.35 | |
| Supplier payable | 168.35 |
The inventory stays at 9,090.91.
3 October: payment. The shop pays USD 10,000 when the rate is 1 EUR = 1.05 USD, costing 9,523.81 euros. The payable stands at 9,259.26, so a further 264.55 loss arises.
| Account | Debit | Credit |
|---|---|---|
| Supplier payable | 9,259.26 | |
| Realised exchange loss | 264.55 | |
| Bank | 9,523.81 |
Total exchange loss on the order: 168.35 + 264.55 = 432.90, exactly the difference between 9,523.81 paid and 9,090.91 recorded. The phones remain at 9,090.91, so the gross margin on selling them is unaffected. The 432.90 is the cost of having waited a month while the euro weakened, and it is reported as such. Some systems instead reverse the month-end entry on 1 October and book the whole 432.90 as realised on payment; the total, and the profit of each period, are the same.
If the shop had sold all the phones in September for 11,500, its gross profit would be 11,500 minus 9,090.91 = 2,409.09, and the currency loss would be reported separately. That is a much more useful conversation with the owner than a single blurred number. A payment that moves with the rate also moves your cash plan; our 13-week cash flow forecast shows a dollar invoice tested against a stronger dollar.
What is the rate-direction trap?
Rates are quoted two ways. "1 EUR = 1.10 USD" and "1 USD = 0.9091 EUR" describe the same market. Problems start when a spreadsheet or system stores one and someone types the other.
Enter 1.10 where the formula expects euros per dollar, and the USD 10,000 invoice becomes 11,000 euros instead of 9,090.91, an error of about 21%. It will not look absurd at a glance, which is exactly why it survives.
Three habits prevent this:
- Store the rate exactly as quoted, with its direction. "1.10 USD per EUR" is unambiguous. "1.10" is not.
- Never store a computed reciprocal. If the bank quotes USD per EUR, divide by it. Do not invert it to 0.909 and multiply; the rounding drifts and the audit trail no longer matches the bank's paperwork.
- Freeze the rate on the document. Each invoice, receipt and payment should carry the rate used. If someone later edits the rate table, posted documents must not change; a wrong one is corrected by reversal.
How do you treat bank spreads and transfer fees?
Your bank or payment provider rarely converts at the mid-market rate. If the reference rate is 1.05 but you are charged as if it were 1.04, the extra cost is real. Many businesses record the payment at the rate actually achieved, so the spread ends up inside the exchange loss. Others record at a reference rate and post the spread to bank charges. Either can be defended; pick one and apply it consistently, because mixing them makes exchange losses impossible to analyse.
Transfer fees charged separately are bank charges, not exchange differences.
What if the official rate is not the real rate?
In some economies there is more than one exchange rate, or the official rate cannot actually be obtained. The IASB amended IAS 21 to deal with this. The amendments on lack of exchangeability apply to reporting periods beginning on or after 1 January 2025. They require an entity to assess whether a currency can be exchanged for another, and, where it cannot, to estimate the spot rate that would apply in an orderly transaction, with disclosures about the estimate.
For a small business in such an economy, the practical lesson is to document which rate you use, where it comes from and why, and to discuss it with your accountant before the year end, not after.
What belongs in landed cost?
The supplier invoice is rarely the whole cost. Freight, insurance, import duty and clearance fees paid to bring goods to your shop are part of inventory cost. Non-recoverable taxes are too; recoverable VAT is not. Each may be in a different currency and paid on a different date. Each should be converted at its own transaction rate and added to the stock cost. Otherwise your cost per phone is understated and your margin overstated.
How this looks in GrowMore
GrowMore stores a rate exactly as you type it, with its direction ("1 USD = 89,500 LBP" is never inverted), freezes it on every document, converts once per document with one rounding, and posts the exchange difference when a payment settles an invoice at another day's rate. It does not retranslate open foreign balances at month end by itself: that unrealised step is a journal voucher you or your accountant posts. The features page describes the multi-currency books.
What to do this month
- Write down your functional currency and every currency you are invoiced in.
- Check how your system stores rates: is the direction explicit, and is the rate frozen on each posted document?
- Retranslate open foreign-currency supplier balances at the month-end rate and post the unrealised difference.
- Compare last month's foreign payments with the rate your bank actually applied; decide how you treat the spread.
- Add freight and duty for the last two import shipments to stock cost if they are sitting in expenses.
- If your country has more than one exchange rate, document which one you use and your source for it.
Frequently asked questions
What is the difference between realised and unrealised exchange gains and losses?
An unrealised difference comes from retranslating an open balance, such as an unpaid supplier invoice, at a reporting date. A realised difference arises when you actually settle it. In the example, 168.35 was unrealised at month end and 264.55 was realised on payment.
Does an exchange loss change my cost of goods sold?
No. The stock stays at its cost on the purchase date. The exchange loss is reported separately, so your trading margin and your currency result stay apart.
Should I store a rate as euros per dollar or dollars per euro?
Either, as long as the direction is stored with the number and the rate is never inverted. Store it exactly as your bank quotes it, and freeze it on each posted document.
Read next
A wrong rate on a posted invoice is fixed like any other mistake: see how to correct an invoice.
Sources
- IASB, IAS 21 The Effects of Changes in Foreign Exchange Rates (initial recognition at spot rate; monetary items retranslated at closing rate; non-monetary items at historical rate). https://www.ifrs.org/issued-standards/list-of-standards/ias-21-the-effects-of-changes-in-foreign-exchange-rates/
- IASB, Lack of Exchangeability (Amendments to IAS 21), issued 15 August 2023, effective for periods beginning on or after 1 January 2025, Deloitte IAS Plus. https://www.iasplus.com/en/events/effective-dates/2025/ias-21
- IASB, IFRS for SMEs Accounting Standard, third edition (February 2025), Section 30 Foreign Currency Translation. https://www.ifrs.org/content/ifrs/home/news-and-events/news/2025/02/iasb-issues-major-update-smes-accounting-standard