Marty Zigman Marty Zigman
Prolecto Labs Accelerator Templates

Solve NetSuite’s Multiple Mixed Currency Payments Challenge

Accounting NetSuite Reporting

Tags: , , , , ,

This article is relevant if you are using NetSuite and you have transactions denominated in one currency but you want to apply payments in another currency.

Background

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:

  1. Invoice in USD: $140 (net Debit to AR)
  2. 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.

Related Articles

  1. NetSuite Foreign Currency Transaction Application Considerations
  2. Converting NetSuite Customer Deposits to Credit Memos
  3. Avoid the Temptation to use Journal Entries

Summary

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.

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - YouTube

About Marty Zigman

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

Biography • Website • X (Twitter) • Facebook • LinkedIn • YouTube

5 thoughts on “Solve NetSuite’s Multiple Mixed Currency Payments Challenge

  1. Steve Endow says:

    Hi Marty,

    Great article and interesting solution to address the Netsuite limitation.

    Are there any potential audit implications of imputing the exchange rate when applying the foreign currency payment using your technique? i.e. the company is no longer recording a currency gain or loss on such transactions.

    With a volatile currency like Bitcoin, or even the Rupee recently, the gain or loss could be significant.

  2. Marty Zigman says:

    Steve,

    Thank you for the follow up question. I believe we are good. Let’s use the above example to continue the thinking:

    1. On 9/1, I sell the good for $140 USD. At that time, the market rate for the EUR is $1.40 to €1.
    2. On 9/30, I agree to accept €100 to satisfy the obligation. At that time, the market rate for the EUR is $1.35 to €1.

    I am free to accept anything to satisify an obligation even though this may affect my purchasing power. In this case, I was willing to accept €100 to satisfy a $140 obligation. Yet, the market would suggest that I accept €103.70 ($140 USD / €135.00 EUR).

    If the user of our (cool) utility dates the transaction at 10/1, then it will record the underlying transaction rate at $1.40 to €1. There is no issue here. This records the fundamental exchange rate we agreed to satisfy the obligation.

    Yet, NetSuite tracks daily exchange rates and will have recorded on 9/30 the EUR exchange rate of USD at €135.00. If we were to perform a currency revaluation as of that date (a function built into NetSuite typically run at month end), NetSuite would see that we have €100 in our possession. It would record a $5 loss because we have less purchasing power.

    I went ahead and created transactions to mimic this scenario and got the expected behavior.

  3. Erik Segerstolpe says:

    Really great and neat solution. Would you say this still is a challenge in NetSuite 7 years later? or with the new Intercompany framework, will NetSuite get native features to handle this you think?

  4. Marty Zigman says:

    Hello Erik,

    I need to ground out the new intercompany framework to contrast the approach. That will be a subsequent article, no doubt!

    Marty

Leave a Reply

Your email address will not be published. Required fields are marked *