All NetSuite accounts support multiple-currencies. While every account (and subsidiary in a NetSuite OneWorld account) must have a base currency, you can conduct transactions in other currencies.
NetSuite does a good job with its multiple currency support. Yet, there is one currency function that NetSuite does not support. That is NetSuite will not satisify obligations in currencies other than the originating transaction.
NetSuite Revenue / Expense Transaction must be Satisfied in Originating Currency
Using NetSuite, if you generate a revenue transaction in one currency, you must satisfy that transaction in the same currency. For example, your base currency is USD. Suppose that you agree to sell goods to someone in Europe in USD. You then later learn that your European customer wants to pay you in Euro. NetSuite will allow you to accept a payment in Euro. However, you won’t be able to apply that payment to the invoice because the original transaction is denominated in USD.
If you do not intend to hold those Euros, you can basically pay a money exchanger or bank to convert your Euro to USD for a fee. You then would accept the payment in NetSuite as USD and the difference you would charge to Bank Charge or Currency Conversion expense. This is a common practice for companies that do few foreign currency transactions.
But what if you want to hold those Euros and not convert them to your local USD currency? Well, you then have a situation where NetSuite thinks you have an open invoice and you have an unapplied payment. On net, the customer amount due may be zero (or close to it due to currency exchange rate fluctuations), you now have an customer aging that shows Accounts Receivable open debits (invoices) and open credits (payments).
Applying NetSuite Multiple-Currency Transactions
While developing a custom NetSuite application to allow the acceptance and payment of the virtual currency Bitcoin, we encountered this situation. So we decided to develop a general purpose utility to help NetSuite customers in this situation.
Here is the basic flow.
The Accounting for Multiple Currency Payments
To satisfy this challenge, our method is to create an expense account that we call: Frx Conversion Gain / Loss. The purpose of this account is to work through the flows to naturally apply these multiple-currency transactions.
Here is the example:
- Invoice in USD: $140 (net Debit to AR)
- Customer Deposit in EUR: â‚¬100 (net Credit to Customer Deposit Liability)
These two transactions were meant to be applied to each other as payment in full.
First, create a Credit Memo for the Invoice
Dr $140 Frx Conversion Gain / Loss
Cr $140 Accounts Receivable
Next, create an Invoice for the Customer Deposit
Dr â‚¬100 Accounts Receivable
Cr â‚¬100 Frx Conversion Gain / Loss
Finally, apply the new invoice to the Customer Deposit
Dr â‚¬100 Customer Deposit Liability
Cr â‚¬100 Accounts Receivable
In our minds, we think the three transactions are cumbersome and error prone. So we solved it by creating a custom NetSuite utlity.
NetSuite Multiple Currency Application
Our utility is primarily designed to address situations like the example above. Namely, producing invoices in one currency but accepting customer deposits in another. However, it can easily be adapted to handle different transactional situations.
The basic logic is to allow for the selection of an open invoice for a particular customer. That invoice can be denominated in any currency. After you select the invoice, a list of unapplied deposits for that customer denominated in any currency besides the invoice is presented. You are then presented with the amounts you want to apply from each transaction. By default, the open remaining amounts are offered — which may be just right if the deposits and invoices are in a perfect one-to-one relationship.
You are presented with options to change the date and the period for which the transaction will be applied. Ideally, this date would be the earliest date that the obligation was indeed satisfied, which most likely would not be today.
Finally, the amounts you select to apply to each other form the basis of the exchange rate that will be recorded on the non base currency transaction. This rate may be different from the market rate on the day you apply the currency — depending on the nature of the transaction, you may actually be incurring a realized currency gain or loss. Under normal foreign currency transactions, you can produce revenue in a foreign currency, and later receive payment in that foreign currency. Because time has elapsed, when you actually receive that foreign currency, its purchasing power may go up or down as the exchange rate changes and thus you experience a currency gain or loss. NetSuite takes care of this great. Yet in our situation, we have to impute the exchange rate as an agreement between both parties to settle an obligation with different foreign currencies. Our expense account method allows us to help account for these differences as well.
- NetSuite Foreign Currency Transaction Application Considerations
- Converting NetSuite Customer Deposits to Credit Memos
- Avoid the Temptation to use Journal Entries
If you are looking to clean up your NetSuite books for foreign currency transactions that will not apply, let’s have a conversation. You may find this utility most helpful.