Skip to main content

Currency and Conversion Rates

Currency conversion is essential for any organisation that operates across multiple currencies. The platform stores conversion rate types and daily rates that are used whenever a transaction needs to be converted from one currency to another — for example, when a foreign-currency invoice is posted to a ledger with a different functional currency.

Although the rate tables are defined in the FND (Foundation) namespace, they are consumed primarily by the General Ledger and other financial modules.

Conversion rate types​

A Conversion Rate Type categorises exchange rates so that different contexts can use different rate sources:

AttributePurpose
Rate type codeUnique identifier within the tenant (e.g. SPOT, CORPORATE, BUDGET)
NameHuman-readable name with i18n support
DescriptionOptional longer description
Pivot currencyOptional pivot currency for triangulated conversions (see below)
StatusActive/inactive lifecycle state

Common rate types:

CodeTypical use
SPOTMarket rate at the time of the transaction
CORPORATEA single rate set by treasury for a given period
BUDGETRate used in budgets and forecasts, typically set at plan time
USERA user-supplied rate on an individual transaction

Tenants can define additional rate types through the standard setup process.

Daily rates​

A Daily Rate records the conversion factor between two currencies for a specific date and rate type:

AttributePurpose
Rate typeThe conversion rate type
From currencySource currency code (ISO 4217)
To currencyTarget currency code (ISO 4217)
Conversion dateThe date this rate applies to
Conversion rateThe multiplier (from-amount × rate = to-amount)
Inverse rateThe inverse multiplier (to-amount × inverse = from-amount)
StatusActive/inactive lifecycle state

Rates are stored as directional pairs. If a rate is entered for NZD → USD, the platform automatically calculates and stores the inverse (USD → NZD) so that lookups work in both directions.

The fnd_get_daily_rate function​

The fnd_get_daily_rate function is the primary entry point for currency conversion lookups. Given a from-currency, to-currency, conversion date, and rate type, it returns the applicable rate by following this resolution order:

  1. Direct match — look up the exact from/to/date/type combination
  2. Inverse match — look up the reverse pair (to/from) and return the stored inverse rate
  3. Triangulation — if the rate type has a pivot currency defined, convert through the pivot (from → pivot → to) by multiplying the two rates

If no rate is found after all three steps, the function raises an error.

Example​

For a conversion from NZD to EUR on 2026-01-15 using the CORPORATE rate type with USD as the pivot currency:

  1. Look for a direct NZD → EUR CORPORATE rate on 2026-01-15
  2. If not found, look for EUR → NZD and invert
  3. If not found, look for NZD → USD and USD → EUR, then multiply

How it fits together​

  • FND currencies — rate types and daily rates reference ISO 4217 currency codes from the FND currency master
  • Ledgers — the ledger's functional currency determines when conversion is needed
  • Transactions — any transaction in a currency different from the ledger's functional currency triggers a rate lookup

Further reading​