ガイドガイド

銀行・Google・FX APIで為替レートが異なって表示される理由

誰も間違っていなくてもレートは異なることがある。参照レート、カードレート、ディーラーの気配値は、それぞれ違う問いに答えている。

2026年9月20日 · 5分で読了

Google、銀行、FX APIが示す数字は、多くの場合、異なる種類のレートを異なる瞬間に表示している。2つの数字を「食い違い」と決めつける前に、情報源、タイムスタンプ、方向、スプレッド、別建ての手数料の有無を比較してほしい。

  • 表示された参照レートは、必ずしもその通貨を売買できる価格ではない。
  • 銀行やカード会社は、レートにマージンを含めるか、別建ての手数料を課すか、あるいはその両方を行うのが一般的である。
  • 2つの参照レートが異なるのは、情報源が違うか、公表時刻が違うためであることが多い。
  • 公正に比較するには、ペアの方向、タイムスタンプ、情報源、スプレッド、手数料をそろえて見る必要がある。

異なる数字は異なる問いに答えている

検索結果が答えるのはたいてい「このペアの直近の市場参照値は何か」という問いである。銀行やカード会社が答えるのは「この取引をした場合、実際にいくら受け渡すか」という問いである。FX APIはその情報源とプロダクト次第で、どちらの問いにも答えられる。役割が違うのだから、数字が一致する必要はない。

最初に区別すべきは、インディケーティブレートと約定可能な気配値の違いである。インディケーティブレートは、表示・分析・レポーティング・換算の見積もりのために市場を描写するものである。約定可能な気配値は、特定の取引相手が提示する取引価格であり、買値・売値のスプレッド、最低取引額、時には数秒単位の有効期限を伴う。

違いが生まれる場所

表示される内容通常意味するもの異なる理由
検索や市場表示直近のインディケーティブ参照レート情報源と更新タイミングが表示ごとに異なりうる
銀行・カードの換算顧客取引レートプロバイダーのマージン、スプレッド、固定手数料、タイミング
現金両替の気配値現地ディーラーの買値・売値現物取扱コスト、在庫、より広いスプレッド
FX APIのレスポンスAPIによって参照値か約定可能なデータか情報源の種類、タイムスタンプ、カバーするペア、プロダクトのルール

スプレッドとは、ディーラーの買値と売値の差である。プロバイダーによってはこれを為替レート自体に組み込んで表示し、別のプロバイダーは市場価格に見える数字を示したうえで別建てのサービス手数料を加える。手数料が低く見えるからといって、両方を合算するまでは換算が安いとは言い切れない。

数字そのものと同じくらい時刻と情報源が重要

外国為替は取引週を通じて動いている。2つのサービスがどちらも有効なEUR/USDの参照レートを公表していても、一方が数分前に更新し、もう一方が日次フィックスを公表しているだけで値が異なることがある。欧州中央銀行の参照レートは営業日に1回だけ公表される。一貫した日次参照としては有用だが、日中の値動きに素早く反応しなければならないアプリケーションにとって適切な入力ではない。

ペアの方向も、一見した食い違いを生みやすい要因である。USD/IDRとIDR/USDは逆数の関係にある。一方のプロバイダーが早い段階で丸め、もう一方がより高い精度で表示している場合、一方向を逆方向に換算し直しても同じ表示値にはならない。

メタデータを読む

sourceとtimestampのないレートは不完全である。exchangerate.devはsource、market_session、data_updated_atを返すため、ライブのインディケーティブレートを読んでいるのか、日次参照レートを読んでいるのかをアプリケーション側で判別できる。

Googleに為替レートAPIはある?

Googleが文書化しているGOOGLEFINANCEはGoogle Sheetsの関数であり、アプリケーションのバックエンド向け本番REST APIではない。セル内で使うなら便利だが、Googleは気配値が最大20分遅れる場合があり、過去のGOOGLEFINANCEデータはSheets APIやApps Scriptから取得できないと明記している。

google sheets · cell formula
=GOOGLEFINANCE("CURRENCY:USDEUR")

サーバー側でJSON、明確なリクエスト上限、観測時刻が必要なら、専用のFXエンドポイントを使う。この呼び出しはキーなしで動く。

curl · anonymous JSON
curl "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR"

レスポンスにはレートに加えてsource、market_session、data_updated_atが含まれる。作業がSheets内だけならGOOGLEFINANCEを使い続けるか、Google Sheets向けガイドを参照してほしい。

プロバイダーを公正に比較する方法

  • 両方の価格が同じペアの方向・同じ金額を使っているか確認する。
  • タイムスタンプを確認し、どちらかが日中観測値ではなく日次参照値かどうかを見る。
  • 提示されたレートと、固定または定率の手数料を切り分けて考える。
  • 決済比較には見出しのレートだけでなく、最終的に受け渡される金額を使う。
  • データ用途では、観測ごとにsourceと更新時刻を記録する。

用途に合ったレートを選ぶ

ダッシュボード、会計上の参照、過去分析、価格表示、決済前の見積もりにはインディケーティブレートを使う。決済や取引の執行が必要な場合は、銀行・ブローカー・決済事業者の気配値を使う。どちらも互いの代わりにはならない。

現在の参照レートを必要とするアプリケーションには、EUR/USDのライブページから始め、sourceとmarket_sessionフィールドを自社インターフェースにも保持してほしい。インディケーティブレートと約定可能な為替レートではこの境界線をより詳しく解説し、sourceとセッションの読み方ではメタデータについて説明している。

よくある質問

なぜ銀行のレートはGoogleで見るレートより不利なのか?

表示される市場レートは通常インディケーティブな参照値である。銀行が提示するのは取引レートであり、スプレッドや手数料、あるいはその両方が含まれることがある。すべての費用を差し引いた最終的な受取額で比較してほしい。

Googleにはアプリのバックエンド向け為替レートAPIがある?

Googleが文書化しているGOOGLEFINANCEはGoogle Sheetsの関数であり、本番REST契約ではない。Sheets内では使えるが、Googleは過去データをSheets APIやApps Scriptから取得できないとしている。JSON、クォータ、鮮度フィールドが必要なバックエンドには専用のFX APIが必要である。

アプリはGoogle、銀行、FX APIのどこからレートを取得すべきか?

用途に情報源を合わせること。検索のような表示には現在の任意のインディケーティブ参照値を使い、銀行やカードの換算はその特定の取引にのみ適用され、FX APIは情報源の種類次第でどちらの役割も果たせる。参照レートと約定可能なレートの違いについては[インディケーティブレートと約定可能な為替レート](/learn/indicative-vs-executable-fx)で詳しく解説している。

なぜ2つのFX APIは異なるレートを返すのか?

情報源の種類が異なる、更新タイミングが異なる、ペアのカバー経路が異なる、あるいは丸めの精度が異なる可能性がある。情報源、タイムスタンプ、ペアの方向、どちらかが約定可能かどうかを比較してほしい。

関連記事

無料のAPIキーで始める

無料プランで月5,000リクエスト。クレジットカードは不要です。

無料キーを取得