Skip to content
Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
DictionaryIISO Code
Core CRMIntermediate

ISO Code

An ISO Code in Salesforce is a short, standardized text value that follows an International Organization for Standardization specification.

§ 01

Definition

An ISO Code in Salesforce is a short, standardized text value that follows an International Organization for Standardization specification. The platform uses three families of these codes. ISO 4217 gives every world currency a three-letter code such as USD, EUR, GBP, and JPY. ISO 3166 gives every country a two-letter code such as US, GB, and IN. A language and locale key such as en_US combines a two-character language code with an ISO 3166 country code to identify the user's language and regional formatting.

The currency code is the one most admins meet first, because it drives the CurrencyIsoCode field that appears on every record once Multiple Currencies is turned on. Country codes feed the State and Country/Territory Picklists, and locale keys feed user language and the Translation Workbench. In each case Salesforce leans on the published standard so the same value means the same thing across reports, integrations, and customer-facing pages. Using the wrong variant (USA instead of US, or en instead of en_US) is a frequent source of broken data flows and silent display bugs.

§ 02

Three standards, one job: making values mean the same thing everywhere

ISO 4217 currency codes

ISO 4217 is the standard that assigns a three-letter alphabetic code to each currency in circulation. Salesforce uses these exact codes wherever money is involved. Common ones are USD for the US Dollar, EUR for the Euro, GBP for the British Pound, JPY for the Japanese Yen, and INR for the Indian Rupee. When an org enables Multiple Currencies, every amount field gets a companion currency value stored in the CurrencyIsoCode field, and that value is one of these codes. The standard also defines how many decimal places a currency uses, which is why JPY shows no decimals while USD shows two. Salesforce respects those rules when it formats and rounds amounts. Because the codes are global and stable, an integration can send USD to a finance system and trust that both sides read it the same way. The catch is that the field expects the standard code, not a symbol or a spelled-out name. Sending $ or "US Dollars" instead of USD will fail validation or land in the wrong place. Sticking to the ISO 4217 letters keeps currency data portable.

How CurrencyIsoCode behaves on records

Once Multiple Currencies is active, Salesforce adds the CurrencyIsoCode field to standard and custom objects that carry currency fields. On the page it shows up as a currency picker beside each amount, defaulting to the user's personal currency. The amount is stored in the chosen currency, and Salesforce converts it to the corporate currency when a report needs a single comparable number. The CurrencyType object holds the list of active currencies for the org, with one row flagged as the corporate currency and a conversion rate on each row. A few places lock the field down. On a PriceBookEntry record the CurrencyIsoCode is set when the row is created and cannot be edited afterward, so a product price in EUR stays a EUR price for its lifetime. In Apex you read and set this field like any other, which lets triggers and classes branch on the record's currency. Reports and list views can filter and group by CurrencyIsoCode, which is handy for spotting records that landed with an unexpected currency after a data load.

ISO 3166 country and state codes

ISO 3166 is the standard for country codes, and it underpins the State and Country/Territory Picklists feature. When that feature is on, the country and state fields in addresses become picklists drawn from a standardized list rather than free text. Salesforce ships 235 countries and territories by default, plus the states or provinces of countries like the United States, Canada, Australia, Brazil, China, India, Ireland, Italy, and Mexico. Each entry has two parts you can configure. The code value is the short ISO-based identifier, and the integration value is a separate text label that flows to external systems. When a record saves, Salesforce keeps the code and integration values in sync so reports and integrations stay consistent. The big win is data hygiene. A free-text country field collects USA, U.S.A., United States, and a dozen typos that every downstream system then has to clean. A picklist backed by ISO 3166 collects one canonical value per country. Enabling the feature on an existing org triggers a background process that backfills the code fields on records already in the database.

Language and locale keys

Salesforce identifies a user's language with a key that pairs a two-character language code with a region. A plain language uses two characters, such as en for English. A language that varies by region uses a five-character locale key that adds an ISO 3166 country code, such as en_US for US English, en_GB for British English, fr_FR for French, and de_DE for German. This LanguageLocaleKey value lives on the User record and decides which language the interface renders in. Salesforce groups languages into three tiers. Fully supported languages translate the whole product interface. End-user languages translate the parts users see but not the full admin setup. Platform-only languages let you localize your own custom apps and labels without official product translations. Language availability is tied to API version, so a newer locale key may need a recent API version to work. The Translation Workbench uses these keys to define source and target language pairs when you translate custom labels, picklist values, and other metadata for a global audience.

Worked example: a EUR opportunity in a USD org

Picture a company headquartered in the United States, so USD is the corporate currency. The sales team also closes deals in Europe, so an admin adds EUR as an active currency under Manage Currencies. A rep in Germany has their personal currency set to EUR. When that rep creates an Opportunity for 50,000 euros, Salesforce stamps the record's CurrencyIsoCode as EUR and stores the amount as 50000. On the opportunity page the amount renders with a euro symbol because the currency code carries that formatting. A regional pipeline report set to the rep's currency shows the figure as a EUR value. A global pipeline report rolls everything up to USD using the conversion rate on the EUR row of CurrencyType, so finance sees one comparable total. If the org later turns on Dated Exchange Rates, that global report uses the rate that was effective on the opportunity's close date instead of today's rate, which keeps historical numbers stable. The same record also carries a country code on its address if State and Country Picklists are on, so the EUR deal is cleanly tagged as German for territory and tax logic.

Integration and data-load pitfalls

ISO codes are the contract two systems agree on, so most integration bugs in this area are mismatches. A finance system might expect the currency as USD while a marketing tool sends the locale string en_US, and the two never line up. A Salesforce export might send the country as US while the destination wants the three-letter USA or the full name. The fix is to write down, field by field, exactly which standard and which form each integration expects, then map to it on the way out. Data loads have their own trap. When you load records with Data Loader into a multi-currency org, the CSV needs a CurrencyIsoCode column with valid active codes, or rows fall back to a default currency and quietly misreport. Loading a currency that is not active in the org fails the row outright. For country picklists, a load that supplies a code value not present in the configured list will not match, so the address lands incomplete. Validating the codes in the file against the org's active currencies and configured countries before the load saves a painful cleanup afterward.

Why the standard matters for reporting

Reporting is where sloppy codes show their cost. Because CurrencyIsoCode is a real field, a report can group revenue by currency to reveal how much pipeline sits in each market. It can also convert everything to the corporate currency for a single bottom line, which only works because every row carries a valid ISO 4217 code that maps to a conversion rate. Swap in a bad code and that row either fails to convert or is dropped from the rollup, so totals drift without an obvious error. Country codes do the same job for geography. Grouping accounts by an ISO 3166 country code gives a clean count per market, while a free-text field splits the same country across several spellings and undercounts each one. Language keys feed localized report labels and the formatting of dates and numbers for the viewer. The thread through all of it is consistency. The standards exist precisely so that a value entered in one place, by one user, in one integration, lines up with the same value everywhere else, and that alignment is what makes cross-currency and cross-country reporting trustworthy.

§ 03

Turn on Multiple Currencies and add an ISO 4217 currency

The most common ISO Code task is turning on Multiple Currencies and adding an ISO 4217 currency so records can carry a CurrencyIsoCode. Do this in a sandbox first, because enabling Multiple Currencies cannot be reversed.

  1. Enable Multiple Currencies

    In Setup, open Company Information, then use the related currency setup to enable Multiple Currencies. Read the warning carefully. The switch is permanent for the org, so confirm you have tested in a sandbox first.

  2. Set the corporate currency

    In Manage Currencies, confirm the corporate currency, which should match your headquarters currency. Every other currency converts to this one for org-wide reporting.

  3. Add an active currency

    Choose New under Active Currencies, pick the ISO 4217 currency you need (for example EUR), set its conversion rate and decimal places, and save. Salesforce validates the code against the standard.

  4. Decide on dated rates

    If you report across currencies over time, enable Advanced Currency Management so reports use Dated Exchange Rates effective on the transaction date rather than a single static rate.

Corporate currencyremember

The single currency, expressed as an ISO 4217 code, that all amounts convert to for org-wide reports. Set it to your headquarters currency.

Active currenciesremember

The list of ISO 4217 codes users can pick on records. Only active codes are valid in the CurrencyIsoCode field and in data loads.

Conversion rate typeremember

Choose static rates (one rate per currency) or Dated Exchange Rates (rates valid for date ranges) via Advanced Currency Management.

Decimal placesremember

Set per currency to match ISO 4217 rules, so JPY shows zero decimals while USD and EUR show two.

Gotchas
  • Enabling Multiple Currencies is a one-way change. There is no supported path back to single-currency, so always pilot in a sandbox.
  • The CurrencyIsoCode on a PriceBookEntry is locked after creation. To change a product price currency you recreate the entry.
  • Data Loader rows without a valid active CurrencyIsoCode fall back to a default and misreport. Include the column and validate the codes first.
  • A currency that is not in the active list is rejected. Add the ISO 4217 code under Manage Currencies before loading or referencing it.

Prefer this walkthrough as its own page? How to ISO Code in Salesforce, step by step

§

Trust & references

Sources

Cross-checked against the following references.

Official documentation

Straight from the source - Salesforce's reference material on ISO Code.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

Q1. What does an ISO Code most commonly refer to in a Salesforce multi-currency org?

Q2. Can multi-currency, with its ISO Code and conversion-rate plumbing, be turned off once enabled?

Q3. Why does Salesforce support dated exchange rates alongside the ISO Code on currency fields?

§

Discussion

Loading…

Loading discussion…