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
- our API Reference
- our Exchange Rates API product page (follow the view details link to view the identifier)
- or by calling the Banks endpoint (this will only return the banks available in your subscription).
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
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.
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 value | Unit | Description | Foreign Currency | Bank Currency | Rate | Interpretation |
---|---|---|---|---|---|---|
<omitted> or <null> or 0 | 1 | Units | EUR | HUF | 359.30 | 1 EUR = 359.30 HUF |
1 | 10 | Tens | ZAR | BGN | 1.0609 | 10 ZAR = 1.0609 BGN or 1 ZAR = 0.10609 BGN |
2 | 100 | Hundreds | VES | CHF | 0.00005 | 100 VES = 0.00005 CHF or 1 VES = 0.0000005 CHF |
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);
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
).
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.
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.
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.
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.