Multi-currency support

Platform supports conversion between monetary values in different currencies. It is common for businesses to keep their accounting books in one currency (let us call this the base currency), while sending and receiving money in several other currencies. In addition, exchange rates between currencies tend to change over time. Platform provides a multi-currency framework for all customers.

The following illustrates multi-currency functionality:

Although the Base Currency field is read-only, you can use it in formula fields and triggers, as well as to calculate totals in list views and reports. Modifying an exchange rate on a particular date will not affect any Base Currency values that already have been calculated because, unlike formula fields which are dynamically computed, Base Currency fields are calculated and stored in your database. However, when you edit and save an existing record, this value will automatically be updated using the currently available exchange rate corresponding to the assigned rate date.

To start using multi-currency, follow these steps:

  1. Set up currency codes
  2. Set up exchange rate
  3. Enabling multi-currency attribute on the object definition
  4. Money amounts in base currency

Set up currency codes

When you set up currency codes, the currencies you specify will be shared picklist items available to end-users. To set up currency codes, navigate to the Currency Codes page from Setup Home > Administration Setup > Currency Codes. Enter a list of the currency names and currency codes you want to support. Mark the currency to use as the default by prefixing it with the symbol {D}. For example:

{D}US Dollar|USD

Set up exchange rate

To manage exchange rates, a user must have a role of Administrator or Manage Exchange Rates administrative permission. Set exchange rates manually by navigating to Setup Home> Administration Setup > Exchange Rates. On the Exchange Rates page, select a date and click Next. Enter exchange rates as decimal numbers values of the selected base currency and supported currencies. By entering the exchange ratio between one unit of foreign currency and one unit of base currency, the inverse is handled for you automatically. For example, defining a EUR / USD ratio as x also defines a USD / EUR ratio as 1/x.

 

You can also use the SOAP API to store exchange rates (see Platform SOAP Methods). If you will be using multi-currency capabilities on a daily basis you might consider building an automated integration with another web service to retrieve exchange rates and populate them in Platform for you.

 

Enabling multi-currency attribute on the object definition

If you enable the Multi-Currency attribute on objects, Platform adds two new fields:

  • Currency Code, to specify the type of currency for a particular record such as an invoice.
  • Rate Date, used to determine the date for the exchange rate calculation, which is the current date by default. This field ensures that the exchange rate calculation for a record does not change over time as the exchange rates change.

Money amounts in base currency

You can optionally create a Base Currency field that corresponds to each a new or existing Currency field as desired. In this case, the Currency field holds the actual currency amount determined by the Currency Code field at the record level and the Base Currency field holds a read-only amount that Platform calculates by converting the value from the Currency field into the base bookkeeping currency. The Rate Date field, as explained above, determines the date of conversion.

For example, an invoice record has the following field values:

  • Currency Code: British Pound
  • Rate Date: 08/18/2015
  • Amount (editable): 2000.00
  • Base Amount (read-only): $2,894.40

The exchange rate on 08/18/2015 is set to: GBP / USD = 1.4472. Platform calculates and displays the value for the base amount (which is configured to use USD) as $2,894.40.