独立サイトの通貨と価格設定:多通貨表示、為替レート更新、税金計算、決済
1. 多通貨表示の3つの技術的誤解
1つ目の誤解:フロントでJavaScriptを使いリアルタイムに為替APIを呼び出して換算する。買い手がページを開いたときのレートで価格が表示されますが、商品をカートに入れ、住所を入力して会計に進むころにはレートが変わり、会計価格と表示価格が合いません。B2Cサイトでは返品率が上がり、B2Bサイトでは買い手がそのまま離脱して問い合わせに移ります。
2つ目の誤解:多通貨表示だけを行い、税金の現地化をしない。EUの買い手は税込価格(MwSt. inkl.)を見ることに慣れており、米国の買い手は税抜価格に消費税の概算を加えた表示に慣れています。EUのユーザーに税抜価格を表示すると、さらに20%の税金が加わると誤解し、そのまま離脱します。3つ目の誤解:B2Bの問い合わせ型サイトで無理にオンライン決済を接続する。B2Bの注文は通常金額が大きく、見積もりや支払サイトが必要で、オンライン決済チャネルでは対応できず、無理に接続するとチャージバックのリスクが増えます。価格戦略の議論はこちら海外価格設定:コスト積み上げから価値基準へ。
| 技術的誤解 | 実際の結果 | 正しい方法 |
|---|---|---|
| フロントのJSでリアルタイム換算 | 表示価格と会計価格の差が1%超 | 毎日一括取得し、フロントと管理画面で同じレート |
| 通貨だけ変えて税金は変えない | EUの買い手が20%の税金が加わると誤解 | 仕向国ごとに税込/税抜で表示 |
| B2Bサイトで無理にオンライン決済 | 高額注文はチャージバックのリスクが高い | 多通貨は表示のみ、問い合わせ見積もりへ |
| 為替レートは商家の直物レートを使用 | 中央銀行価格より3%から5%高い | 中央銀行の仲値に1%から2%のバッファを加える |
| 手動の通貨切り替えがない | VPNユーザーが誤った通貨を見る | 下部に通貨セレクターを追加し、デフォルトはIPで判定 |
2. 為替レート更新のペース:1日1回、リアルタイムは不要
多通貨表示の為替レート更新頻度は、B2B独立サイトでは1日1回を推奨し、UTC 0時に一括取得してデータベースキャッシュに丸1日書き込みます。フロントでリアルタイムに為替APIを呼び出さないでください。理由は3つあります。第1に、リアルタイム呼び出しはページ読み込みの遅延を増やし、Core Web Vitals指標に影響します。第2に、為替APIには呼び出し回数の制限があり、リアルタイム呼び出しはコストが高くなります。第3に、リアルタイム換算は表示価格と会計価格のずれを招きます。
為替レートの取得元は3つおすすめです。欧州中央銀行の毎日定盤価格(無料で安定)、XE API(無料枠が小規模サイトなら十分)、Open Exchange Rates(無料版は月1000回)。為替レートのキャッシュには1%から2%の販売者向けバッファを上乗せすることをおすすめします。決済チャネルの実際の決済レートは中央銀行の仲値より少し高くなるためです。B2B見積もり段階での為替変動管理は次を参照為替変動管理、本記事ではフロント表示のみを扱います。
| 為替レートの選択肢 | 更新頻度 | 適用シーン | コスト |
|---|---|---|---|
| 欧州中央銀行の定盤価格 | 1日1回 | 欧州中心のB2Bサイト | 無料 |
| XE API | 1日1回 | 多通貨B2Bサイト | 無料枠が小規模サイトに十分 |
| Open Exchange Rates | 毎時 | 高頻度B2Cサイト | 無料版は月1000回 |
| Stripeの自動換算 | 決済時にリアルタイム | 純粋なB2Cの少額注文 | Stripeはカード通貨で決済 |
三、税金計算:倉庫所在地ではなく仕向国ごとに
税金計算の核心ルールは、倉庫所在地ではなく仕向国ごとです。ドイツの買い手があなたの商品を買う場合、中国から直送してもEU倉庫から発送しても、ドイツ向けサイトには19%のMwStを含む価格を表示しなければなりません。米国の買い手が買う場合は税抜価格を表示し、会計時にその州の税率で消費税を加算します。このルールは仕向地原則(destination principle)と呼ばれ、EUのVAT規則も米国の売上税規則もこの原則に従っています。
シナリオ例:産業用センサーを扱う輸出企業が、サイトのデフォルトでUSD税抜価格を表示しているとします。ドイツの買い手がページを開くと、センサーが$100と表示され、頭の中では19%のドイツ付加価値税を足して119ドルで計算します。サイトが税金のローカライズをしていないと、価格が不透明だと感じ、そのまま問い合わせで「including VAT?」と聞いてきます。正しい方法は、ドイツのIPからのアクセス時は自動でEURの税込価格に切り替え「€109.90 inkl. MwSt」と表示し、米国のIPからのアクセス時は「$99.00 + sales tax」と表示することです。問い合わせフォームの信頼性は次を参照問い合わせフォームの信頼性。
| 地域 | 価格の表示方法 | 税金の扱い | 一般的な税率 |
|---|---|---|---|
| EU(ドイツ) | EUR税込価格 | MwStを含み、別途加算なし | 19%(標準)/7%(軽減) |
| EU(フランス) | EUR税込価格 | TVAを含む | 20% |
| アメリカ | USD税抜価格 | 会計時に州ごとに消費税を加算 | 0%から10%で州により異なる |
| 英国 | GBP税込価格 | VATを含む | 20% |
| 日本 | JPY税込価格 | 消費税を含む | 10% |
四、決済:主通貨で受け取り、カード通貨で支払う
多通貨の価格設定と決済は別物です。価格設定レイヤーでは、フロントで買い手の現地通貨で価格を表示し、見通しを持ってもらいます。決済レイヤーでは、販売者であるあなたは最終的に自分の主通貨(通常はUSDまたはCNY)で受け取ります。間の為替交換は決済チャネルが行うので、サイト上で自分で為替ロジックを組まないでください。
推奨構成:買い手にはEURの税込価格を表示し、会計時はStripeを選択、Stripeがカードの通貨で請求します(ユーロカードならユーロ、ドルカードならその時点の為替レートでドル)。決済時にStripeが資金をあなたのメイン通貨に換算して銀行口座へ入金します。こうすればメイン通貨の価格を1セット管理するだけで済み、表示は為替キャッシュ、決済は決済チャネルに任せられます。サイトのバックエンドに独自の為替ロジックを書くのはやめましょう。保守コストが高く、ミスも起きやすいです。決済チャネルの選定と手数料比較は問い合わせフォームの信頼性同サイトの決済関連記事をご覧ください。
| 工程 | 通貨 | 為替レートの出所 | 注意点 |
|---|---|---|---|
| 表示価格 | 買い手の現地通貨 | 毎日キャッシュする中央銀行レート | 1%〜2%の販売者バッファを加算 |
| カートに追加 | 買い手の現地通貨 | 表示時と同じキャッシュを使用 | セッション内で固定、変動なし |
| 会計時の請求 | カード保有者の通貨 | Stripe/PayPalのリアルタイムレート | このレートで決済されることを買い手に伝える |
| 販売者の入金 | メイン通貨(USD/CNY) | 決済チャネルの換算レート | 着金時に1%〜3%の為替損失 |
5. B2B問い合わせ型サイトの多通貨戦略
B2Bの独立サイトとB2CのECサイトでは、多通貨戦略がまったく異なります。B2Bの注文は金額が大きく(通常数千〜数十万ドル)、見積書や支払サイト、数量に応じた段階価格が必要で、オンライン決済チャネルでは対応できません。そのためB2Bサイトの多通貨は、買い手が慣れた通貨で価格を見られるようにして商談のコストを下げ、問い合わせへ誘導することだけを目的にします。
具体的には、表示通貨をIPで自動切り替えし、下部に手動の通貨セレクター(USD/EUR/GBP/JPY/AUD)を置き、価格は毎日キャッシュしたレートで換算、表示価格の横に”Reference price, final quote in USD”と明記します。問い合わせフォームには”Preferred currency”のドロップダウンを追加し、見積もりを希望する通貨を買い手に選んでもらいます。納期の約束と見積もりの基準は納期コミットメント。
| サイトタイプ | 多通貨の進め方 | 決済方法 | 為替レートの更新 |
|---|---|---|---|
| B2CのECサイト | 表示から決済までの全工程 | Stripe/PayPalのオンライン決済 | 毎時または毎日 |
| B2B問い合わせサイト | 表示のみ、決済なし | 問い合わせへ誘導、T/Tで対応 | 1日1回 |
| ハイブリッドサイト | 小口SKUはオンライン決済、大口は問い合わせ | 金額に応じて自動で振り分け | 1日1回 |
FAQ よくある質問
表示価格と会計価格の差はどこまで許容されますか?
為替レートはどのくらいの頻度で更新すべきですか?
EUのVATはサイトでどう表示しますか?
B2B独立サイトでオンライン決済を導入すべきか?
StripeとPayPalの多通貨決済は何が違う?
為替レートのキャッシュに業者バッファを加えるべきか、加えるならどれくらい?
最後に
多通貨価格設定の技術的な核心は為替ではなく一貫性です。フロントで見た価格、カート内の価格、結算時の価格は、必ず同じレートのセットを使わなければなりません。リアルタイム換算は先進的に見えますが、実際には価格の変動を買い手に押し付け、最終的に返品率とカゴ落ち率になります。
導入は3ステップです。第一に、毎日定時に中央銀行のレートを一度取得し、データベースにキャッシュします。第二に、目的国別に税込・税抜価格を表示し、EUは税込、米国は税抜とします。第三に、B2Bサイトの多通貨は表示のみで決済せず、問い合わせに誘導します。B2CサイトはStripeでカード通貨決済を使い、為替ロジックを自作しないでください。
覚えておきたい一言:多通貨価格設定とは、サイトに為替を任せることではなく、買い手が慣れた通貨で変わらない価格を見られるようにすることです。
