How To Cross NetSuite Foreign Currency Boundaries with the Account Clearing Model

This article is relevant if you seek to understand how to use NetSuite to cross foreign currency boundaries using the account clearing model.


For a number of clients, we have helped them solve interesting NetSuite foreign currency challenges. When I developed the architecture and programmed the Bitcoin Transaction Coordinator, I needed to spend much time thinking fundamentally about how NetSuite works with foreign currency structures.

An important pattern emerged that is common in accounting practices. I call it the Account Clearing model. That model will be explained and illustrated as I use it to cross NetSuite transactional foreign currency boundaries.

The NetSuite Foreign Currency Challenge

NetSuite gives us great power to work with foreign currencies natively. It’s important to understand the fundamentals for this discussion:

  1. Base (Local) Currency: a NetSuite subsidiary is based in a specific currency. This usually is the local currency. If you are a single company, and not using One World with subsidiary definitions, this is your company’s currency. Most of our clients are based in USD currency so I will use that reference in this discussion.
  2. Foreign Currency: all transactions that can post to the general ledger are priced for foreign currency — even the ones that you are conducting in base currency. Hence all transactions have a foreign currency dimension.
  3. Foreign Currency Pricing: NetSuite defaults its foreign currency prices from the daily foreign currency exchange rate table. These prices are provided by feeds offered by NetSuite — yet you can manually and automatically (via some scripts) supply your own prices. You can override the transactional foreign currency prices as needed. Side note: thinking about Bitcoin, which has global pricing markets always on, the daily price for foreign currency exchange is according to any standard you wish to keep.

Account Definition and Foreign Currency

NetSuite is flexible in that when you define a new general ledger account, you do not need to specify the currency. This is true except in one primary situation: bank accounts. NetSuite demands that bank accounts be denominated. If you decide to denominate any general ledger account in anything other than the base currency, you are forcing the use of that account to be limited to the designated currency. Hence, if the base currency is USD, and the bank account is denominated in GBP, then all operations on that bank account must be GBP.

The Account Clearing Model

The need for account clearing comes forth often when you are using one currency to settle a transaction denominated in another currency. This is common for many globally oriented organizations. The common cases are foreign currency customer invoices and vendor bills.

Many organizations leverage services offered by their bank institution to convert one currency to another. For example, if a customer gives you GBP to settle a GBP customer invoice, your bank may convert that for you automatically to USD. Likewise, you may owe GBP to a vendor but you don’t have GBP. Your bank can send GBP from your USD bank account to settle the transaction. Oftentimes, there are bank conversion fees built into those transactions; the easy way to handle that in our account clearing model is to modify the transaction’s exchange rate to “eat the fee” as part of the overall exchange rate.

The Key NetSuite Foreign Currency Innovation Capacity

The key to getting from one side of a transaction in one currency to the other side of a foreign currency transaction is to use an intermediate account clearing account. We can do this because NetSuite is flexible in one very important respect. If a bank account is denominated in the base currency (e.g, USD), then you can indeed transact in both base AND foreign currency. When using the clearing account technique, the idea is that the value of that account should always be zero — at a minimum at the time you close the books but ideally after each transaction.

Example Foreign Currency Transaction with Account Clearing

To help illustrate how this is used, we have the following hypothetical situation:

  1. Account #1000: USD Bank Account (the operating account)
  2. Account #1001: USD Denominated Bank Clearing Account
  3. Vendor Bill: denominated in GBP for 5,000

On Aug 1, 2018, the vendor bill is as follows:

5,000 GBP Vendor Bill priced at 1.30 USD/GBP using NetSuite native capacities. After recording the transaction, we view the GL impact:
Dr $6,500 Expense
 Cr $6,500 Accounts Payable

The GL expression defaults to showing information in base currency. This makes sense. You need to anchor the economic performance of all transactions in a base currency so that the purchasing power of the currency units is relatively constant to allow you to interpret the fundamental impact.

On Aug 31, 2018, it is time to pay the bill. The daily exchange rate reported in the NetSuite exchange rate table is 1.32. Because you do not have GBP and your vendor demands 5,000 GBP, you ask your bank to wire funds from your USD bank account to the vendor in GBP as a service. You expect to pay 6,600 USD (5,000 GBP times 1.32 USD/GBP rate). The bank is happy to help you and demands 6,650 USD.

How to Use the Account Clearing Method to Pay Foreign Currency Bill

In this situation, how do we perform the accounting in NetSuite?

Step 1: Pay Vendor Bill

Pay the foreign currency bill using account #1001: USD Denominated Bank Clearing Account. In this case, we know how much USD was required. Thus, we derive the exchange rate to be 1.33 (6,650 USD / 5,000 GBP). When you record the transaction and provide a transaction date of Aug 31, 2018, NetSuite will default the exchange rate to be 1.32 (the daily rate). Override the exchange rate to be 1.33. Indicate you are paying the entire bill with 5,000 GBP. When you do so, NetSuite will produce the following accounting:

Dr AP $6,650
Dr Realized gain / loss $150
 Cr AP $150
 Cr Clearing Account $6,650

Step 2: Transfer Funds to Clearing Account

In step two, I recommend using a Bank Transfer record. The bank transfer feature is helpful in clearing account methods especially when the foreign currency work lines up (there are situations in the account clearing model where they do not). However, there may be times that you need to use a different transaction type, such as a journal entry, to perform the second step.

Transfer $6,650 from the #1000 Checking Account to the #1001 Clearing Account. The value of this transaction is that it will help you find it easily in your #1000 Checking account bank reconciliation work.

Step 3: Confirm Clearing Account is Balanced

Now you should confirm that the clearing account is zero. You can run an Account Register to see the balance. You can also run a balance sheet. I have customized one to show foreign currency amounts to help you see the mechanics. Click on the respective images for a clearer representation.

Some Account Clearing Model Considerations

The example provided is meant to be fundamental. In my client situations, I have seen numerous foreign currency requirements. I have often have had to invent on this theme to help drive foreign currency operations while also making the bookkeeping work easy to understand and perform. I recommend exploring your transaction situations and especially consider the mechanics of multiple transactions with different exchange rates settling with a single transaction.

Get Expert NetSuite Help

The NetSuite financial system is flexible and robust. It’s not always obvious how to get more out of the business system. The key is to take fundamental accounting principles and apply them thoughtfully in the NetSuite system. Perhaps you would like stronger leadership in your NetSuite accounting and transaction operations: let’s have a conversation.

Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is Southern California's 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 25 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 - Google Plus - YouTube

| Category: Accounting, NetSuite | 2 Comments


  1. Meir Bulman
    Posted November 7, 2018 at 4:25 pm | Permalink

    Thanks, Marty. This is very helpful. Just a point to consider when setting up the clearing account: Be sure not to select “revalue open balance for foreign currency transactions”. Otherwise when performing a foreign currency revaluation for unrealized gains and losses, NetSuite will revalue the foreign currency transaction, and the account will no longer “clear” to zero in the base currency.

  2. Posted November 7, 2018 at 4:30 pm | Permalink

    Thank you Meir,

    That is a good add-on. Because the account is holding both local currency and foreign currency, and we are using the local currency values to net to zero, if we revalue, the account is going to move — that’s not desired.


Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>