Skip to main content

Terminology

Bank ID

When working with the Fluentax Exchange Rates API, you will be querying data for specific providers (banks, tax authorities). Each provider has a unique resource identifier, commonly referred to as a BankId.

Fluentax uses the following convention for the identifiers:

  • Central banks: {ISO-2 country code}CB. E.g. NOCB, SECB.
  • Tax authorities and other providers: {ISO-2 country code}{abbreviated provider name}. E.g. DEBMF, GBHMRC.

You can access the list of available bank identifiers via

Quote Type

Exchange rates can be quoted in two ways, direct and indirect. The type of quote depends on the bank.

Direct Quote

The cost of one unit of foreign currency is given in units of local currency.

Example:

{
"bankId": "NOCB",
"baseCurrency": "NOK",
"quoteType": "Direct",
"rates": {
"2020-09-24": {
"CHF": {
"rate": 1030.66,
"unitMultiplier": 2
}
}
}
}

Interpretation: 100 CHF = 1030.66 NOK or 1 CHF = 10.3066 NOK

Indirect Quote

The cost of one unit of local currency is given in units of foreign currency.

Example:

{
"bankId": "EUECB",
"baseCurrency": "EUR",
"quoteType": "Indirect",
"rates": {
"2020-09-24": {
"ARS": {
"rate": 88.0944
}
}
}
}

Interpretation: 1 EUR = 88.0944 ARS

Note

Quote type is only available for JSON and XML response formats. For tabular formats (CSV, XLSX), the From Currency and To Currency columns represent the quote.

Unit Multiplier

Some banks quote certain rates in 10, 100, 1000, etc. units of the foreign currency. This is usually used for currencies where the observed rate is so small that it can't be represented accurately by a fixed number of fractional digits without losing precision.

The Fluentax Exchange Rates API uses the SDMX Unit Multiplier notation to preserve the original precision and representation of these rates.

Unit Multiplier

The Unit Multiplier is a base 10 exponent that is specified so that multiplying the observation numeric values by 10^Unit Multiplier gives a value expressed in the unit of measure.

Examples (direct quote):

Unit Multiplier valueUnitDescriptionForeign CurrencyBank CurrencyRateInterpretation
<omitted> or <null> or 01UnitsEURHUF359.301 EUR = 359.30 HUF
110TensZARBGN1.060910 ZAR = 1.0609 BGN or 1 ZAR = 0.10609 BGN
2100HundredsVESCHF0.00005100 VES = 0.00005 CHF or 1 VES = 0.0000005 CHF
Tip

If unitMultiplier is specified, you can divide the rate by the ten raised to the power of unitMultiplier to get the actual rate.

C# example:

var actualRate = rate / (decimal)Math.Pow(10, unitMultiplier ?? 0);
Note

The Unit Multiplier notation is only used for JSON and XML response formats. Tabular formats (CSV, XLSX) use a Unit column instead, specifying the exact units (1, 10, 100, etc.).

Price Types

There are three main price types: mid, bid and ask. The Fluentax Exchange Rates API uses mid prices by default. For certain banks, bid and ask prices are available by specifying the price type in the query (e.g. /v1/Banks/ARBNA/DailyRates/Latest?priceType=Ask).

Tip

You can use the the Banks endpoint to get information about the supported price types and frequencies.

Mid (midpoint) price

The average of the bid price and the ask price.

Bid (buying) price

The bid or buying price is the price at which the bank buys foreign currency from the customer.

Ask (selling) price

The ask or selling price refers to the exchange rate used by the bank to sell foreign currency to the customer.

Frequencies

Banks and tax authorities publish average rates with varying periodicity. Depending on the bank, these rates may be provided on a daily, weekly, bi-weekly, monthly basis, or, in some cases, as a combination of these options.

Daily rates

Daily averages are updated daily. You can find the approximate publication times on our website, or you can use the Banks endpoint to access this information via the API. Banks publish the applicable rates for the given day (effectiveDate) on the day before, on the same day or the day after. This can also change around weekends and bank holidays where data is published for multiple days at once, so we recommend checking a period of 4-5 days to avoid missing any updates.

Tip

Publication times are given in local time. We also provide the time zone in IANA and Windows formats so you can convert it to your local time.

Tip

Most banks don't publish daily rates for weekends and bank holidays. You can use the BankHolidays endpoint to get the list of bank closing days for a given bank and time period. Please note that this service is provided for reference only. We cannot guarantee the accuracy of the data.

Monthly rates

Monthly average rates are updated on a monthly basis. Banks publish the applicable rates for the given month either:

  • at the end of the previous month - usually during the last week: ATBMF, CHFTA, CYMOF, GBHMRC, GRAADE
  • at the end of the month in question - usually on the last (working) day: MXCB
  • or at the beginning of the next month - usually on the first (working) day: DEBMF, EUECB

Similarly to the daily rates, the Fluentax Exchange Rates API uses the effectiveDate to identify the specific period to which the monthly rates refer, usually the first day of the month. However, in case of significant rate changes during the month, certain tax authorities (e.g. AADE GRAADE, BMF ATBMF, MOF CYMOF, HMRC GBHMRC) may publish weekly amendment rates with a different effective date. Therefore, we recommend that you monitor the monthly rates on a daily basis to identify any changes in a timely manner.

Weekly and biweekly rates

These average rates are updated on a weekly or biweekly basis. Similar to the daily rates, the Fluentax Exchange Rates API uses the effectiveDate to identify the specific period to which the weekly or bi-weekly rates refer. These rates remain valid between two publication dates.

Obsolete currencies

Obsolete currencies refer to currencies that are no longer in active circulation. Some banks may still provide exchange rates for these currencies. By default, obsolete currencies are excluded from responses if the effective date is after their withdrawal date. However, you can opt to include them by using the includeObsoleteCurrencies=true query parameter.

Tip

You can use the Currencies endpoint with the isObsolete=true parameter to retrieve a list of all obsolete currencies tracked by the Fluentax system. The response provides the withdrawal date and the code of the currency that replaced the obsolete one.