Exchange-rate sources and methodology
Flexchange provides reference conversions. The website and iOS app use separate rate feeds, so their numbers and update times can differ. Neither is a quote for a money transfer or card payment.
Website sources
The web converter first requests rates from Frankfurter’s v1 API. If that request fails or returns invalid data, it tries the Fawaz Ahmed Currency API through its CDN. The converter displays the provider actually used and the date supplied with the rates.
These are daily reference feeds, not a live trading feed. Different providers may publish different values. The website offers a selected set of currencies. A currency missing from the snapshot stays listed as unavailable; a conversion requires a rate for both selected currencies.
Refresh timing and freshness
Website rate responses can be cached for up to 12 hours. Opening or refreshing the page can therefore reuse an existing response rather than fetch a newly published rate. The displayed date is the provider’s rate date, not the time you opened the page.
We mark website data as potentially stale when its rate date, measured from midnight UTC, is more than four days old. This warning is a coarse age check, not a promise that newer data is suitable for a transaction. Weekends, holidays, publication schedules, and outages can leave the most recent available date unchanged.
If neither provider supplies usable data, we show an unavailable message instead of inventing a rate. The initial page can show a default USD-to-EUR conversion, or a validated selection from a shared link, before JavaScript runs. The two pair pages start with their named currencies. Interactive changes require JavaScript.
Other web calculators and pair history
The multi-currency calculator uses the same dated snapshot for comparisons and every expense row. A missing rate prevents a complete total. The fee calculator instead uses the provider rate and charges you enter; its prefilled quote is illustrative.
The USD/EUR and EUR/TRY pages keep current common-amount tables separate from ECB annual averages for 2020–2024. Historical averages describe past observations, not a current rate or forecast; the series and download links appear beside each table.
App rates and offline use
The app’s backend obtains rates from ForexRateAPI. Free and Premium use different update schedules, with more frequent refreshes for Premium. The website’s 12-hour cache policy does not describe the app’s schedule.
When previously synced rates are available on the device, the app can use them for offline conversion. An offline result cannot incorporate changes published after that sync. Reconnect and let rates update before relying on a current estimate. See offline conversion and plan differences.
Conversion and rounding
For a direct pair, converted amount = original amount × exchange rate. For two currencies quoted against a shared base, we divide the target currency’s rate by the source currency’s rate, then multiply by the amount.
For example, using invented rates of 0.90 EUR and 0.75 GBP per USD, the EUR-to-GBP rate is 0.75 ÷ 0.90 = 0.833333… . A 120 EUR estimate becomes 100 GBP. Displayed results are rounded for readability; calculations use the returned numeric rates.
Why your actual payment may differ
A card issuer, bank, or transfer service may apply its own conversion time, spread, fees, or rounding. The ECB also describes its reference rates as informational and discourages using them for transactions.
Compare the provider’s final quote with the same currency direction and amount. Our guides explain card-rate differences and conversion fees. For a suspected data issue, email hello@flexchange.app with the pair, displayed date, and source.