Guide/Rates concepts
Guide

Why banks, Google, and FX APIs show different exchange rates

The rates can differ even when nobody is wrong. A reference rate, a card rate, and a dealer quote answer different questions.

MMexchangerate.dev·Jul 14, 2026·5 min read

A number shown by Google, a bank, and an FX API is often a different kind of rate at a different moment. Compare the source, timestamp, direction, spread, and any separate fee before treating two numbers as a disagreement.

Key points
A displayed reference rate is not necessarily a price at which you can buy or sell currency.
Banks and card providers commonly include their margin in the rate, a separate fee, or both.
Two reference rates can differ because they use different sources or were published at different times.
For an honest comparison, line up the pair direction, timestamp, source, spread, and fees.

Different numbers answer different questions

A search result usually answers: what is a recent market reference for this pair? A bank or card provider answers: what amount will we give or take if you make this transaction? An FX API can answer either question, depending on its source and product. Those are different jobs, so the numbers need not match.

The first distinction is between an indicative rate and an executable quote. An indicative rate describes the market for display, analysis, reporting, or conversion estimates. An executable quote is a specific counterparty's price for a transaction. It includes a bid/ask spread, often a minimum amount, and sometimes an expiry measured in seconds.

Where the difference comes from

What you seeWhat it usually representsWhy it can differ
Search or market displayRecent indicative reference rateSource and refresh time can differ from another display
Bank or card conversionCustomer transaction rateProvider margin, spread, fixed fee, and timing
Cash exchange quoteLocal dealer buy or sell pricePhysical handling cost, inventory, and a wider spread
FX API responseReference or executable data, depending on the APISource class, timestamp, pair coverage, and product rules

The spread is the gap between a dealer's buy and sell prices. Some providers show it inside the exchange rate. Others show a market-looking rate and add a separate service fee. A lower-looking fee does not prove the conversion is cheaper until both parts are included.

Time and source matter as much as the number

Foreign exchange moves through the trading week. Two services can both publish a valid EUR/USD reference rate and still differ because one refreshed moments ago while another publishes a daily fix. The European Central Bank's reference rates are published once per business day; they are useful for a consistent daily reference, but they are not an intraday trading quote.

Pair direction is another easy source of apparent disagreement. USD/IDR and IDR/USD are reciprocals. If one provider rounds early and another shows more precision, converting one direction back into the other will not produce the same displayed value.

Read the metadata
A rate without its source and timestamp is incomplete. exchangerate.dev returns source, market_session, and data_updated_at so an application can show whether it is reading a live indicative rate or a daily reference rate.

How to compare providers fairly

  • Confirm that both prices use the same pair direction and the same amount.
  • Check the timestamp and whether either rate is a daily reference rather than an intraday observation.
  • Separate the quoted rate from any fixed or percentage fee.
  • Use the final amount delivered for a payment comparison, not the headline rate alone.
  • For data work, record the source and update time with every observation.

Choose the rate that matches the job

Use an indicative rate for a dashboard, accounting reference, historical analysis, price display, or a pre-payment estimate. Use a bank, broker, or payment processor quote when you need to settle a payment or execute a trade. Neither is a substitute for the other.

For an application that needs a current reference rate, start with the live EUR/USD page and preserve the source and market_session fields in your own interface. Indicative versus executable FX rates explains the boundary in more detail, and how to read source and session covers the metadata.

MM
exchangerate.dev
Rates concepts and practical guides for developers building with FX data.

Keep reading

GuideIndicative vs executable FX ratesRead ReferenceHow to read source and market sessionRead GuideECB reference rates explainedRead