Multi-Currency Basics

If your company does business in multiple countries, then this article describing xTuple's multi-currency support is a must read. Support for transactions in multiple currencies as well as exchange rate tracking is built into the core software.


The multi-currency integration in xTuple ERP is comprehensive. The costing, purchasing, sales, payables, and receivables functions are all integrated to support multi-currency. All transactions processed in foreign currencies are converted to the base currency based on the exchange rate effective at the time of the transaction—and all transactions are then posted to the general ledger in the base currency. Currency gains and losses which are attributable to fluctuating rates are also posted to the general ledger, using a currency gain/loss account. Since the system tracks gains/losses, the impact of currency fluctuations can be tracked throughout a transaction’s life cycle.

Note: The scenarios described in this section refer to items and other data found in the xTuple ERP demo database, which is available for download from the xTuple website. The demo databases have been pre-loaded with a default currency of U.S. dollars and the foreign currencies British pounds and euros. The expiration date on these currencies has been set well into the future. During the course of the following exercise, you will set up a new exchange rate for British pounds to simulate the normal fluctuations that take place in the currency markets on a daily basis.

Foreign Currency Invoices

To illustrate xTuple ERP's multi-currency integration, we will enter a miscellaneous invoice using a foreign currency (in this case, British pounds) and post it with today's date. We will then set up a new exchange rate having tomorrow's date. Next, we will enter a cash receipt and assign it tomorrow's date, as well. Finally, we will post the cash receipt and observe the resulting G/L transactions.

We will begin by entering a miscellaneous invoice, indicating as we go that the customer does business in British pounds. To begin entering the invoice, follow these steps:

  • Locate the "Accounting" module from the top menu
  • Select the "Accounts Receivable" submenu
  • Select the "Invoice" submenu
  • Choose the "List Unposted" option
  • Click the NEW button
  • Enter customer number "XTRM" in the "Customer #" field—or use the browse button to locate and select this customer
  • Click the COPY TO SHIP-TO button


Entering in a New Invoice

  • Move to the "Line Items" tab
  • Click the NEW button
  • On the new "Invoice Item" screen, select the "Miscellaneous" option
  • Enter the following values:
    • Item: "Product Design Services"
    • Description: "Design of new product concept and delivery of prototype"
    • Sales Category: NORMAL-SALE
    • Qty. Ordered: 1
    • Qty. Billed: 1
    • Net Unit Price: 10,000 (followed by the TAB key)

Note: The customer in this scenario is billed in British pounds. Notice how the currency conversion takes place automatically after you enter the net unit price—and then hit the TAB key.


New Invoice Line Item

  • Click the SAVE button to return to the "Invoice" screen
  • Click the SAVE button again to return to the "Unposted Invoices" screen
  • You may optionally print your invoice
  • Right-click on the invoice you just created
  • Select the "Post" option from the right-click menu
  • The "Get G/L Distribution window will open


Setting G/L Dates

  • Click CONTINUE
  • Exit the "Unposted Invoices" screen

Setting New Exchange Rates

Our next task is to simulate the effects of a fluctuating exchange rate. To do so, we will enter a new exchange rate for British pounds that is effective as of tomorrow. To access the "Currency Exchange Rates" screen, follow these steps:

  • Locate the "System" module from the top menu
  • Choose "Setup" to open the "Setup" window
  • Drop-down the "Master Information" submenu
  • Choose the "Exchange Rates" option


Exchange Rates

First we will set the current exchange rate for British pounds to expire as of today. This will ensure that any transactions posted after today will not use today's exchange rate. To expire today's exchange rate, follow these steps:

  • Open the "Exchange Rates" screen
  • Double-click on the most recent "GBP" currency entries
  • Change the value in the "End Date" field to today's date
  • Click the SAVE button


Currency Exchange Rate

Now we will create a new exchange rate for British pounds that is effective starting tomorrow. To create a new exchange rate, follow these steps:

  • Open the "Exchange Rates" screen
  • Click the NEW button
  • Enter the following information:
    • Currency: GBP
    • Exchange Rate: 1.689
    • Start Date: Enter tomorrow's date
    • End Date: Enter 12/31/2016


Updating Currency Exchange Rates

  • Click the SAVE button
  • Return to the "Exchange Rates" screen
  • Verify you have a rate for British pounds that expires on the current date, as well as a different rate that is effective starting tomorrow

Receiving Cash in Foreign Currencies

Now, let's suppose our customer sends us a check in British pounds to cover the full invoice amount. To simulate the normal time lag that occurs between the date when an invoice is posted and the date when cash is received and applied, we will give this cash receipt a distribution date of tomorrow. Since we have just finished entering a new exchange rate with an effective date of tomorrow, the posting of the cash receipt will result in a currency gain/loss being posted to the general ledger. So let's get started.

To enter a cash receipt with a distribution date of tomorrow, follow these steps:

  • Locate "Accounting" from the top menu
  • Select the "Accounts Receivable" submenu
  • Select the "Cash Receipt" submenu
  • Choose the "Edit List" option
  • Click the NEW button
  • Enter the following information:
    • Customer #: XTRM (followed by the TAB key)
    • Amount Received: 10,000 (i.e., British Pounds)
    • Check/Document#: 12011
    • Post to: GBank-GBank
    • Application Date: Enter tomorrow's date (e.g., +1)
    • Distribution Date: Enter tomorrow's date (e.g., +1)
      • Note that tomorrow has a different exchange rate than today and this will result in a currency gain/loss posting to the general ledger
  • Click on the APPLY TO BALANCE button

Note: Selecting the APPLY TO BALANCE button will distribute the 10,000 cash receipt to the invoice you previously entered and posted. 

The invoice information is displayed in the "Open Items" section of the "Cash Receipt" screen:


Cash Receipt Screen Application in Foreign Currency

  • Click the SAVE button on the "Cash Receipt" screen
  • Return to the "Cash Receipts Edit List" screen
  • Right-click on your cash receipt
  • Select the "Post" option from the right-click menu


Posting Cash Receipts

Now let's look at the general ledger postings that resulted from these transactions—and the impact that the fluctuating exchange rates had on them.

General Ledger Transactions and Multi-currency

We will need to open one of the G/L module's displays to view our recent G/L transaction activity. To view recent G/L activity, follow these steps:

  • Locate "Accounting" from the top menu
  • Select the "General Ledger" submenu
  • Select the "Reports" submenu
  • Choose the "Transactions" option
  • The "General Ledger Transactions" window will open
  • Enter the following information:
    • Start Date: Enter tomorrow's date (i.e., +1)
    • End Date: Enter tomorrow's date (i.e., +1)


  • Click the QUERY button


G/L Transactions Screen Showing the Results of Multi-Currency Transactions

Note: You may want to adjust the width of the "Account" column so you can view the entire account name. Also, if you want to see the invoice transaction posting to the G/L, change the start date to today's date and query again.

As you can see in the example, the invoice, which was entered as 10,000 British pounds, was converted to the base currency at the then-prevailing exchange rate. Next, we changed the exchange rate to tomorrow's date and entered, applied, and posted a cash receipt for 10,000 British pounds. The difference between the value in the base currency when the invoice was originally posted and the value in base currency when the cash receipt was applied is reflected in the entry in the currency gain/loss account. In our example, the exchange rate has worked against us, as the British pound weakened relative to the base currency.