Multi-CurrencyMyInvoisInternational TradeE-InvoicingLHDN

How to Handle Multi-Currency Invoices in MyInvois

How to issue multi-currency e-invoices in MyInvois: the exchange rate, the fields LHDN requires, tax reported in MYR, and the mistakes to avoid.

F
Finvo Team
14 min read

When multi-currency invoicing applies

This guide assumes you issue e-invoices already. Whether you have to at all depends on your turnover and phase, set out in the complete guide to e-invoicing in Malaysia.

If your Malaysian business invoices clients in a foreign currency — USD, SGD, EUR, GBP, CNY, or any other — you need to handle multi-currency e-invoicing correctly in MyInvois. This is common for:

  • Exporters selling goods to overseas buyers
  • IT and professional services firms billing foreign clients
  • Trading companies importing and exporting goods
  • Manufacturers with international supply chains
  • Freelancers and consultants working with foreign clients

Even if your business is entirely domestic, you might receive invoices in foreign currencies from overseas suppliers. If you issue self-billed e-invoices for those purchases, multi-currency rules apply. The Currency Exchange Rate is one of the conditional fields in LHDN's list — mandatory where applicable — as covered in the 55 MyInvois fields.

LHDN requires specific fields and calculations when an e-invoice involves a currency other than Malaysian Ringgit (MYR). Getting these wrong is one of the most common reasons for MyInvois rejection.

The currency fields in MyInvois

Every e-invoice submitted to MyInvois includes a document currency code — the currency in which the invoice is denominated. For most domestic transactions, this is MYR. For international transactions, it can be any three-letter code from the currency code list in the MyInvois SDK, which follows the ISO 4217 approach.

When the document currency is not MYR, these additional fields come into play:

Currency fields for a foreign-currency invoice

FieldDescriptionExample
Document Currency CodeThe currency of the invoiceUSD
Tax Currency CodeOptional. If provided, it can only be the document currency or MYRMYR
Currency Exchange RateThe rate at which the foreign currency is converted into MYR. Mandatory where applicable; MyInvois rejects a foreign-currency document that omits the element (input 0.00 where no rate applies)4.4700
Tax Amount in MYRTax stated in Ringgit, when you report tax in MYRRM 3,576.00

The key rule: if you provide a Tax Currency Code, it must be either the document currency or MYR, and all tax-related amounts must then use that currency (validation rules DC501 and DC512). In this guide's examples we report tax in MYR, so the Tax Currency Code is MYR. You can bill your client in USD and still state the tax component in Ringgit.

How the exchange rate works

The exchange rate in your e-invoice converts the document currency to MYR. IRBM's e-Invoice Specific Guideline (section 13) sets the order: first, comply with any legal or tax requirement on the exchange rate imposed by the relevant authorities (for example RMCD or IRBM), where applicable; where none applies, you may follow the exchange rate under your internal policy. The Specific Guideline requires the rate where the e-invoice has to be converted into a Ringgit equivalent. Separately, since 1 September 2025 MyInvois validation rejects any document whose invoice currency code is not MYR if the Currency Exchange Rate element is missing, so always include it on a foreign-currency document (the SDK says to input 0.00 where the rate is not applicable). The guideline does not name a single mandatory source (Bank Negara, commercial bank, xe.com), so be able to explain how your rate was derived if questioned.

Example calculation:

  • Invoice amount: USD 10,000.00
  • Exchange rate: 1 USD = 4.4700 MYR
  • MYR equivalent: RM 44,700.00
  • Service tax at 8%: RM 3,576.00 (calculated on the MYR equivalent)
  • Total in USD: USD 10,800.00 (shown to the customer)
  • Tax amount in MYR: RM 3,576.00 (reported to LHDN)

The examples on this page assume a taxable service at 8%, the service tax rate the Royal Malaysian Customs Department applies to most taxable services. Some services are taxed at 6%, and goods carry sales tax at 5%, 10% or a specific rate — confirm the rate for what you are selling in the MySST FAQs. The figures are arithmetic illustrations. Whether service tax applies at all to a particular supply made to an overseas customer is a separate question under RMCD's rules, so confirm that before copying the example.

Step-by-step: creating a multi-currency e-invoice

Step 1: Determine the invoice currency

This is straightforward — it is whatever currency you and your client have agreed upon. If you are billing a Singapore company in SGD, the document currency is SGD.

Step 2: Obtain the exchange rate

Get the exchange rate that your applicable rule or policy requires (commonly the rate for the invoice date). Common sources used by Malaysian businesses:

SourceProsCons
Bank Negara MalaysiaOfficial, defensiblePublished daily, may not cover all currencies
Your commercial bankMatches your actual conversion rateVaries by bank, may include spread
xe.com or similarReal-time, covers all currenciesNot an official Malaysian source
Contractual ratePre-agreed, no ambiguityMay differ significantly from market rate

A defensible default: Unless a legal or tax requirement says otherwise, many businesses adopt the Bank Negara Malaysia exchange rate for the invoice date as their internal policy. If Bank Negara does not publish a rate for a particular currency, your commercial bank's rate is a common fallback. This is a practice, not a HASiL rule.

Some contracts specify a fixed exchange rate or a particular rate source. Where no legal or tax requirement on the rate applies, you may follow it as part of your internal policy, and it helps to note it in the invoice.

Step 3: Calculate line items

Line items on the e-invoice are stated in the document currency (the foreign currency). Your client sees amounts in the currency they expect.

Example: IT consulting services billed in USD

Line ItemDescriptionQtyUnit Price (USD)Amount (USD)
1Senior developer — January 2026 (160 hours)16075.0012,000.00
2Cloud infrastructure management12,500.002,500.00
3Technical documentation1500.00500.00
Subtotal15,000.00

Step 4: Calculate tax in MYR

Convert the subtotal to MYR using your exchange rate, then calculate the tax:

  • Subtotal in USD: 15,000.00
  • Exchange rate: 4.4700
  • Subtotal in MYR: RM 67,050.00
  • Service tax at 8%: RM 5,364.00

The tax amount (RM 5,364.00) is reported in the Tax Currency Code (MYR) fields of the e-invoice.

Step 5: Present the total to your client

Your client sees the total in the document currency:

  • Subtotal: USD 15,000.00
  • Tax equivalent: USD 1,200.00 (RM 5,364.00 / 4.4700)
  • Total payable: USD 16,200.00

The e-invoice contains both the USD figures (for the client) and the MYR tax amounts (for LHDN).

Step 6: Include the exchange rate in the e-invoice

In the UBL document, the exchange rate goes in the cac:TaxExchangeRate element, with these child elements:

  • cbc:SourceCurrencyCode: USD (the document currency)
  • cbc:TargetCurrencyCode: MYR
  • cbc:CalculationRate: 4.4700 (the SDK says to input 0.00 if the exchange rate is not applicable)

The SDK defines no separate date element for the rate, so keep the rate's source and date in your own records.

This is a technical detail handled by your e-invoicing software — you should not need to construct UBL XML manually. But it is important to understand what is happening behind the scenes so you can verify correctness.

Common multi-currency scenarios

Exporting goods (FOB, CIF, etc.)

When you export goods, the invoice is typically in the buyer's currency or in USD. Key considerations:

  • Incoterms affect which charges are included in the invoice (freight, insurance, duties)
  • Each charge is a separate line item in the document currency
  • Tax treatment may differ: the sales tax treatment of exported goods depends on your circumstances (RMCD's Guide on Manufacturing and Import / Export has separate sections for direct export and export through a third party), so confirm yours in the guide on MySST or with RMCD before deciding what tax to show

Where an export carries no sales tax, the tax amount fields may show zero. For tax-exempt transactions, though, the SDK documentation (updated 17 July 2026) says cbc:TaxAmount is not required to be 0.00: you may report the actual tax that would have been payable before the exemption, and the presence of cbc:TaxExemptionReason does not mean the amount must be zero. Which treatment applies to your export is a sales tax question, not one the e-invoice decides. The Currency Exchange Rate element is still required whenever the invoice currency is not MYR (input 0.00 where the rate is not applicable); the Tax Currency Code is optional.

Importing goods (self-billed invoices)

When you purchase from a foreign supplier who does not submit e-invoices to MyInvois, you may need to issue a self-billed invoice. In this case:

  • You (the buyer) are the one submitting the e-invoice to LHDN
  • The document currency is whatever currency you paid the foreign supplier in
  • The exchange rate converts to MYR for tax reporting; for self-billed e-invoices for importation of goods, IRBM's guideline (section 13.4) allows Malaysian taxpayers to use their internal exchange rate
  • Keep the foreign seller in the supplier block and the Malaysian purchaser in the buyer block. The purchaser issues the self-billed invoice using document type 11; do not swap the party blocks.

This is one of the most common multi-currency scenarios for Malaysian SMEs.

Mixed-currency contracts

Some contracts have pricing in multiple currencies — for example, local labor billed in MYR and imported materials billed in USD. In MyInvois, a single e-invoice can only have one document currency. Your options:

  1. Issue separate e-invoices — One in MYR for local components, one in USD for imported components
  2. Convert everything to one currency — Bill the entire contract in MYR (or USD) and apply the exchange rate to the foreign-currency portions

Option 1 is cleaner from an accounting perspective. Option 2 is simpler if the contract allows it.

Recurring invoices in foreign currency

If you bill a foreign client the same amount every month (a retainer or subscription), the exchange rate will differ each month. Each monthly e-invoice needs:

  • The exchange rate your rule or policy requires for that invoice (commonly the rate for the invoice date)
  • Recalculated MYR tax amounts based on the new rate
  • The same document currency code

Do not carry over last month's exchange rate by default. Apply the rate that your applicable rule or policy gives for each invoice's own date.

Exchange rate disputes and audits

What if LHDN questions your exchange rate?

LHDN may ask how you arrived at an exchange rate, particularly for large transactions or rates that differ noticeably from published market rates. To protect yourself:

  • Document your rate source — Keep a record of where you obtained the rate (screenshot, bank statement, printout)
  • Apply the rate your rule requires — Commonly the invoice date, unless a legal or tax requirement or your internal policy points to another date. Avoid choosing a date arbitrarily
  • Be consistent — Use the same rate source across all your invoices. Switching between Bank Negara, your bank, and xe.com for different invoices raises questions

What about exchange rate gains and losses?

The exchange rate on the e-invoice is the rate you applied under your rule or policy (commonly the invoice date). If the actual payment arrives weeks later at a different rate, the resulting gain or loss is an accounting matter — it does not require a new e-invoice or an adjustment to the original.

For example:

  • Invoice date rate: 1 USD = 4.4700 MYR
  • Payment date rate: 1 USD = 4.5200 MYR
  • Invoice amount: USD 10,000
  • Expected MYR: RM 44,700
  • Actual MYR received: RM 45,200
  • Exchange gain: RM 500

This RM 500 gain is recorded in your books but does not generate a new e-invoice or modify the original.

Rounding and precision

Multi-currency invoices introduce rounding challenges. Precision is governed by the SDK's field-level formats and the validation rules that apply to your document:

  • Exchange rate: a decimal field (cbc:CalculationRate) of up to 15 characters
  • Rounding adjustment: an optional rounding amount (cbc:PayableRoundingAmount) is added to the amount payable, and it needs a currencyID attribute. The SDK's field table shows @currencyID='MYR', but its foreign-currency sample XML sets the rounding amount's currencyID to the document currency (USD), consistent with rule DC502 (monetary values use the DocumentCurrencyCode). On a foreign-currency invoice, follow the document currency rather than hardcoding MYR. Rounding to the nearest 5 sen is a Ringgit convention and your own practice, not an SDK rule
  • Amounts: The SDK field tables show 26 in the “Number of Chars” column for several xsd:decimal amounts. Separately, the 6 August 2026 release note announced a 26-digit limit for the listed amount fields, scheduled for production on 24 October 2026. Check the applicable field formats and validation rules; do not assume the character and digit descriptions mean the same thing. Amounts are commonly displayed to two decimal places, and totals must reconcile with the applicable line items and adjustments.

A common practice is to carry full precision through intermediate currency calculations and round only the amounts that appear on the e-invoice. Rounding inconsistently on line items can leave the total off by a few sen against the sum of the lines.

Example of a rounding issue:

Assume these are the final line amounts and there are no invoice-level discounts or charges.

  • 3 line items, each USD 33.33
  • Subtotal should be USD 99.99 (not USD 100.00)
  • If you round each line item to USD 33.33 and sum them, you get USD 99.99. Correct.
  • If you round the subtotal independently to USD 100.00, it does not match the sum of line items, and the document no longer reconciles.

In this example, the subtotal should reconcile with the three line amounts. For other invoices, also account for applicable document-level adjustments.

Supported currencies

MyInvois accepts the three-letter codes in the SDK's currency code list, which follows the ISO 4217 approach and also lists CNH for the international renminbi. RMB is not a listed code, so use CNY or CNH. The most commonly used in Malaysian business:

CurrencyCodeCommon Use Case
US DollarUSDInternational trade, tech services
Singapore DollarSGDSingapore-based clients, cross-border trade
EuroEUREuropean clients and suppliers
British PoundGBPUK-based clients
Chinese Yuan Renminbi (domestic)CNYChina trade
Chinese Yuan Renminbi (international, offshore)CNHOffshore RMB settlement
Japanese YenJPYJapanese companies in Malaysia
Thai BahtTHBThailand cross-border trade
Indonesian RupiahIDRIndonesia cross-border trade
Australian DollarAUDAustralian clients

Practical checklist for multi-currency invoicing

Before submitting a multi-currency e-invoice to MyInvois, verify:

  • Document currency code is correct (a code from the SDK currency list)
  • Tax currency code, if used, is MYR or the document currency, and all tax amounts use it
  • Exchange rate follows the applicable legal or tax requirement, or your internal policy, and is dated correctly
  • All line items are in the document currency
  • Tax amounts use the currency you declared as the Tax Currency Code
  • Subtotal and document totals reconcile with the line amounts and applicable invoice-level discounts or charges
  • Tax totals reconcile with the applicable taxable amounts, tax categories and adjustments
  • Exchange rate source is documented for your records

Related Articles