Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.

CurrencySettings

Represents an organization's currency settings, including turning on multiple currencies, configuring active currencies, setting the corporate currency, and enabling currency effective dates. This type extends the Metadata metadata type and inherits its fullName field.

In the package manifest, all organization settings metadata types are accessed using the Settings name. See Settings for details.

File Suffix and Directory Location

CurrencySettings values are stored in the Currency.settings file in the settings directory. The .settings files are different from other named components because there's only one settings file for each settings component.

Version

CurrencySettings is available in API version 47.0 and later. The corporateCurrency and currency fields, and the deploy behavior for enableMultiCurrency, are available in API version 68.0 and later.

Fields

Field Name Field Type Description
corporateCurrency string The ISO 4217 code of the org's corporate currency, such as USD or EUR. The corporate currency's conversion rate is fixed at 1.0; all other currencies are denominated against it. Setting this field in a deploy switches the org's corporate currency, which demotes the previously corporate currency and rebases conversion rates. The new corporate currency must already be registered in the org and be active. Has no effect unless enableMultiCurrency is true, either previously or in the same deploy. Available in API version 68.0 and later.
currency Currency[] One or more currency entries. New currencies are inserted; entries that match an existing currency by isoCode update its active, scale, and conversionRate values. Has no effect unless enableMultiCurrency is true, either previously or in the same deploy. See Currency Fields. Available in API version 68.0 and later.
enableCurrencyEffectiveDates boolean Indicates whether effective dated currency is enabled (true) or not (false). This field has a default value of false. To enable this preference, enableMultiCurrency must be set to true
enableCurrencySymbolWithMultiCurrency boolean Indicates whether the currency symbol (true) or ISO code (false) displays in multi-currency orgs. This field has a default value of false. This field has no effect if enableMultiCurrency is set to false.
enableMultiCurrency boolean Indicates whether multiple currencies are enabled (true) or not (false). This field has a default value of false. Starting in API version 68.0, deploying true against an org that doesn't have multi-currency enabled turns on multi-currency for the org. Deploying true against an org that already has multi-currency enabled is a no-op. When multi-currency is turned on, the corporate currency is taken from corporateCurrency if provided in the same deploy; otherwise it defaults to the org's locale-derived currency.

Turning on multi-currency is irreversible. After you deploy enableMultiCurrency=true, the org can't return to single-currency operation through Metadata API. Deploying enableMultiCurrency=false against an org that has multi-currency enabled returns an error. See Considerations for Enabling Multiple Currencies for more information.

Important

isMultiCurrencyActivationAllowed boolean Deprecated in API version 49.0 and later. Regardless of the value in this field, a Salesforce admin can activate multiple currencies.

In API version 48.0 and earlier, if Customizable Forecasting was enabled, this field indicated whether Salesforce Customer Support could activate multiple currencies (true) or the feature couldn't be activated (false).

This field is only visible if multiple currencies are disabled. It has a default of false to provide an extra layer of protection against accidentally enabling multiple currencies when Customizable Forecasting was enabled. In API version 48.0 and earlier, customers with Customizable Forecasting enabled in their orgs had to contact Salesforce Customer Support to activate multiple currencies. Customers set this field to true when Salesforce Customer Support requested that they do so to validate their request to activate multiple currencies.

Customizable Forecasting was retired in Summer '20. Users can't access the Customizable Forecasting feature and its underlying data via the user interface or API. To predict sales revenue and quantities from your opportunity pipeline, use Salesforce Forecasting.

Note

isParenCurrencyConvDisabled boolean Indicates whether parenthetical currency conversion is disabled (true) or enabled (false). This field has a default value of true. When this field is set to false, Salesforce displays converted currency amounts to users whose personal currency differs from the currency of the record they're viewing.

Currency Fields

Represents one entry in the org's currency type list. Used as the element type of the CurrencySettings.currency collection. Available in API version 68.0 and later.

Field Name Field Type Description
active boolean Indicates whether this currency is available for users to assign to records (true) or not (false). Inactive currencies can't be set as the corporate currency. Defaults to true for new currencies. Optional.
conversionRate double The conversion rate from this currency to the corporate currency. Must be 1.0 if this entry is the corporate currency. Required for new currencies.
isoCode string The currency's ISO 4217 code, such as USD, JPY, or EUR. The code must be one of the ISO codes that Salesforce supports; an unsupported code returns an error. Required.
scale int The number of decimal places to use for this currency. Valid values are 0 through 6. Optional.

Declarative Metadata Sample Definition

The following is an example of a CurrencySettings file that turns on multi-currency and seeds two currencies.

1<?xml version="1.0" encoding="UTF-8"?>
2<CurrencySettings xmlns="http://soap.sforce.com/2006/04/metadata">
3    <enableMultiCurrency>true</enableMultiCurrency>
4    <corporateCurrency>USD</corporateCurrency>
5    <currency>
6        <isoCode>USD</isoCode>
7        <active>true</active>
8        <conversionRate>1.0</conversionRate>
9        <scale>2</scale>
10    </currency>
11    <currency>
12        <isoCode>JPY</isoCode>
13        <active>true</active>
14        <conversionRate>110.0</conversionRate>
15        <scale>0</scale>
16    </currency>
17    <enableCurrencyEffectiveDates>false</enableCurrencyEffectiveDates>
18    <enableCurrencySymbolWithMultiCurrency>false</enableCurrencySymbolWithMultiCurrency>
19    <isParenCurrencyConvDisabled>false</isParenCurrencyConvDisabled>
20</CurrencySettings>
The following is an example package.xml that references the previous definition.
1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>Currency</members>
5        <name>Settings</name>
6    </types>
7    <version>47.0</version>
8</Package>

Wildcard Support in the Manifest File

The wildcard character * (asterisk) in the package.xml manifest file doesn’t apply to metadata types for feature settings. The wildcard applies only when retrieving all settings, not for an individual setting. For details, see Settings. For information about using the manifest file, see Deploying and Retrieving Metadata with the Zip File.