Foreign-Currency Invoicing in Singapore: Exchange Rates, GST and the Box 3 Rule

A US-dollar invoice raises three questions a Singapore-dollar invoice never does — which exchange rate, what the invoice must show in SGD, and where the difference goes when the customer pays at another rate. IRAS answers all three. Most SMEs answer them by habit.

A Singapore distributor invoices a local customer US$10,000 for equipment, plus 9% GST. The PDF says US$10,900 and nothing else. The customer's accounts team sends it back the same afternoon: they cannot claim the GST without the Singapore-dollar amounts. The invoice is reissued, the customer pays 45 days later, the US dollar has slipped, and a receivable booked at S$14,170 settles as S$13,952. The S$218 difference lands in an account called Realised Currency Gains — and at quarter-end it has to be reported in a box of the GST return the owner thought was only for bank interest.

None of this is unusual. It happens to any GST-registered SME that bills in US dollars, buys from a supplier in euros, or keeps a USD account for overseas customers. The GST side comes down to four rules. Income tax treats the same exchange differences by a different logic. Most of the work is deciding things once — a rate source, an invoice layout, who may override what — and making the accounting system enforce them.

This guide is for a GST-registered Singapore SME with a Singapore-dollar base currency that invoices or buys in foreign currency. The software examples use Xero, where multicurrency needs a plan that includes it; the rules apply whatever you use. It reflects IRAS guidance current in September 2026 — confirm anything that changes a filing against the latest version.

One invoice, start to finish

Here is the totals block of the reissued invoice. The rates here and throughout are illustrative, not market data.

TAX INVOICE INV-1047     4 Aug 2026
Customer: GST-registered, Singapore

                  USD SGD @ 1.3000
Excl. GST   10,000.00    13,000.00
GST @ 9%       900.00     1,170.00
Incl. GST   10,900.00    14,170.00

Follow it through three dates:

Every rule in the rest of this guide attaches to one of those three dates.

Rule 1: one acceptable rate, written down

The rate is where most SMEs are loosest and where IRAS is most specific. Its e-Tax guide, GST: Exchange Rates for GST Purpose (fourth edition, January 2026), accepts a rate without prior approval if it meets five conditions:

  1. It reflects the Singapore money market at the time of supply. Any source on IRAS's list qualifies: rates published by banks in Singapore; The Business Times, The Straits Times or Lianhe Zaobao; Bloomberg, Reuters or Oanda; foreign central banks without exchange controls, such as the European Central Bank; the Monetary Authority of Singapore; and websites such as xe.com or Yahoo! Finance that draw on those sources.
  2. It is the daily rate for the time of supply, or a good approximation of it. The buying rate, the selling rate or the average of the two all work. So does a rate taken on a fixed day — the last working day of the previous month, say — or an average of the previous month's daily rates.
  3. It is updated at least once every three months.
  4. The same rate is used for internal reporting, accounting and GST. One rate — not one for the books and another for the return.
  5. It stays in use for at least a year from the end of the accounting period in which you first used it.

An in-house rate, or anything that misses one of those conditions, needs the Comptroller's written approval via myTax Mail before you use it. Either way, you are expected to keep documents that support the rates you used.

Xero's default passes the source test. Xero applies XE.com's rate for the transaction date — updated hourly, with the day's final mid-market rate set at 11pm in your organisation's time zone — and xe.com is named on IRAS's list. If you would rather work with a monthly rate, Xero lets you set a custom rate for a date range under Settings → Currencies, and new transactions dated in that range pick it up.

Where SMEs go wrong is not the source. It is the override. In Xero, anyone with the administrator, standard, or sales and purchases role can change the rate on a new or unpaid invoice, bill or credit note. The sales executive types in the bank's rate because the customer asked for it. Someone else copies a rate from a WhatsApp screenshot. By quarter-end the organisation has three rate sources and no policy.

Integrations are the quieter version of the same problem. An invoice created through the Xero API can carry its own rate; if it does not, Xero uses its default. Xero's own developer guidance says it has seen integrations send inverted rates, and tells them never to fall back to a rate of exactly 1 — either mistake distorts the SGD amounts and every realised gain or loss that follows. If a CRM, billing platform or e-commerce connector creates your foreign-currency invoices, find out what rate it sends.

The fix is five decisions, agreed once and written down:

FX RATE POLICY
Effective 1 January 2026

Source     XE.com mid-market rate,
           as applied by Xero
Rate date  Time of supply: invoice
           date, or payment date
           if payment comes first
Scope      Sales invoices, credit
           notes, management
           accounts, month-end
Overrides  Finance lead only, with
           the reason noted on
           the invoice
Changes    Not before the one-year
           minimum; only at a
           period boundary

Keep it with the GST records. It answers the question "where did this rate come from?" before anyone asks it.

Rule 2: the tax invoice shows three totals in Singapore dollars

When a tax invoice is issued in foreign currency, IRAS requires three amounts converted into Singapore dollars: the total excluding GST, the total GST, and the total including GST. They can sit beside the foreign-currency amounts, as on INV-1047. Every other tax-invoice requirement applies as normal — and missing particulars are one of the GST data errors automation can detect.

In Xero, an organisation with a Singapore-dollar base currency can set its invoice PDFs to show the conversion — net amount, GST and total — by default on the standard invoice template, and Xero provides a DOCX template for custom branding themes. Turn it on once. It is the whole fix for the rejected invoice in the opening paragraph.

Three variations on the same rule:

Rule 3: output tax is fixed; the exchange difference goes in Box 3

Once INV-1047 is issued, its output tax is S$1,170.00 whatever the customer eventually pays. There is no GST adjustment when the money arrives at a different rate.

The difference is not ignored, though. IRAS treats the realised exchange gain or loss as a supply — an exempt one — and asks for the absolute value of the period's net realised gain or loss in Box 3, alongside other exempt supplies such as fixed-deposit interest. Its own worked example, for an October-to-December quarter:

Realised exchange gain / (loss)
  October               (150)
  November               100
  December              (200)
Net for the quarter     (250)

Box 3 = |−250| exchange loss
      + 400 fixed-deposit interest
      = 650

Unrealised differences — the S$109 on INV-1047 at the end of August — and translation differences stay out, because they do not arise from a supply. If you genuinely cannot separate realised from unrealised, IRAS allows you to report the total of both, provided your accounting follows proper accounting standards and you use the same basis consistently.

The obvious worry is that reporting an exempt supply will cost you input tax. For most SMEs it does not. The exchange of currency and the deposit of money are Regulation 33 exempt supplies, and IRAS's partial exemption guide lets a business claim all its input tax if Regulation 33 supplies are its only exempt supplies and it is not a bank, insurer, finance company, moneylender, money-changer or similar financial business. If you also make other exempt supplies — residential rental is the common one — the partial exemption tests apply, and your accountant should run them.

Xero includes the net realised gains and losses in its Box 3 calculation, and you can drill into the figure from "Net realised gains/loss" on the return's Transactions by box number tab. So the job is keeping that figure honest:

On other software, check whether the return picks up realised exchange differences at all. If it does not, adding them becomes a line on the quarterly GST checklist.

Rule 4: on purchases, claim what the supplier's invoice says

The purchase side runs on the supplier's rate, not yours. A GST-registered supplier billing you in US dollars has to show the GST in Singapore dollars, converted at its own approved rate. You claim input tax on that SGD figure — even if your books record the bill at a different rate. For imports, the claim follows the SGD amounts in the import permit issued by Singapore Customs.

This is the one place the policy rate gives way. In Xero, the simplest method is to enter the bill at the rate implied by the supplier's own SGD figures, so the converted GST matches the invoice.

Invoice data extraction should capture both GST figures on a foreign-currency bill and run two checks before anything reaches the return:

Month-end and year-end: the same differences, taxed differently

GST only cares about realised differences. The profit and loss sees all of them, and income tax follows the profit and loss — mostly.

Xero revalues open foreign-currency invoices and bills at the current rate through the Unrealised Currency Gains account, and foreign-currency bank balances through Bank Revaluations. Neither holds posted entries; both are calculated whenever a report runs. If your software does not revalue automatically, post a revaluation journal at month-end and reverse it on the first day of the next month.

IRAS's e-Tax guide on foreign exchange gains or losses (sixth edition, January 2026) sorts exchange differences three ways:

Foreign-currency bank accounts are the trap. The year-end revaluation of a foreign-currency bank balance is capital by default, because the balance holds money for both capital and trading needs. IRAS will treat it as revenue if the account is designated for receiving trade receipts and paying revenue expenses — and since YA 2020 the account need not be used exclusively for that. Up to 12 capital transactions and S$500,000 of capital transactions a year, inflows and outflows counted together, still qualify.

Xero account GST F5 return Corporate income tax
Realised Currency Gains Box 3, as the absolute net figure Taxable or deductible on trade items
Unrealised Currency Gains Excluded Taxable or deductible on trade items
Bank Revaluations Excluded Capital, unless a designated account

For the tax computation, IRAS encourages a schedule that breaks the year's exchange differences down by source — trade receivables and payables, the designated bank account, fixed deposits, other bank balances, related-party loans and non-trade items. A Form C-S filer relying on the designated-account treatment does not submit the capital-transaction count with the return, but must be able to produce it if IRAS asks.

Both are easy if capital movements in the foreign-currency account — an equipment payment, a fixed-deposit placement, a transfer to another account — are tagged by a bank rule when they happen, and miserable if someone rebuilds them from twelve bank statements in November. The corporate tax filing guide covers the rest of that season, and the chart of accounts guide covers where the tags should live. Month to month, Xero's Foreign Currency Gains and Losses report shows exposure by currency; it belongs in the month-end close review, next to the bank reconciliation.

What to automate, in order

None of this needs a bigger finance team. It needs the decisions above turned into settings and checks, roughly in this order:

  1. Set the rate once. Make the policy source the system default — Xero's XE.com rate, or a monthly custom rate set for each date range.
  2. Detect overrides. Xero ties the right to change a rate to the invoicing roles, so in practice you catch overrides rather than prevent them. Compare every foreign-currency invoice and credit note with the policy rate for its date; anything outside a small tolerance, and any rate of exactly 1, goes to review with the name of the person who changed it.
  3. Fix the documents. SGD conversion on by default on invoice templates; each credit note checked against the rate of the invoice it reverses.
  4. Check supplier bills at extraction against their printed SGD GST, before they reach the return.
  5. Tag capital movements in foreign-currency bank accounts with bank rules as they happen.
  6. Reconcile Box 3 every quarter by drilling into the realised figure and clearing anything that is not an exchange difference. At year-end, produce the exchange-difference schedule from the tags.

Steps 1 and 3 are settings. The other four are checks that run as transactions arrive — and they replace the hours currently spent finding the same problems at quarter-end.

The bottom line

Foreign-currency invoicing comes down to one policy and what follows from it:

One acceptable rate, written down,
  used everywhere
→ SGD net, GST and total on every
  foreign-currency tax invoice
→ output tax fixed at the time of
  supply; realised differences
  to Box 3
→ input tax as printed on the
  supplier's invoice
→ trade differences taxed through
  the P&L; bank revaluations
  capital unless designated

If your foreign-currency invoices currently carry a mix of XE rates, bank rates and whatever the customer asked for, the fix is a policy and a handful of checks, not a new system. Use the Calcudesk automation ROI calculator to estimate what the quarterly clean-up costs now, and if you want the checks built into your Xero workflow, book a 30-minute discovery call — we will map where your rates come from before recommending anything.

Back to journal Get my opportunity map