海外の空港で買い物をすると、「カードで支払う通貨を選んでください」と言われることがあります。今いる国の通貨で支払うとなると、実際に自分が日本円で支払う金額がいくらになるかがぱっとわからないのが買い物を躊躇わせがちです。どの国にいても日本円で支払うといくらになるかをそのお店ですぐわかるという意味で、支払う人が使いたい通貨でも決済ができるという体験は事業者にとってとても重要です。
Stripeはこの複数通貨での支払い体験を、ノーコードまたは数行で実現させる「Adaptive Pricing」機能を提供しています。今回はこの機能がサブスクリプション決済にも対応したということで、Payment Linksでノーコードに試してみました。
Adaptive Pricing とは
Stripe の Adaptive Pricing は、ユーザーの所在地を機械学習で判定し、決済画面を現地通貨に自動変換する機能です。150か国以上に対応しています。
事業者側の追加費用はゼロで、為替手数料(2〜4%)は顧客が負担する仕組みになっています。顧客がアカウントの基準通貨で支払うことを選んだ場合、この手数料はかかりません。
サブスクリプションの場合、初回の signup だけでなく renewal にも対応しています。安定化バッファー(stability buffer)という仕組みにより、月次更新のたびに請求金額が大きく変動するのを抑えます。
サブスク利用時に対応する決済手段は、カード・Link・Apple Pay・Google Pay の 4 種類です。
ダッシュボードで設定を確認する
Adaptive Pricingが利用できるかどうかは、設定ページで確認できます。設定 > Payments > Adaptive Pricing タブを開きましょう。

ノーコードで利用できる Payment Links や Managed Payment機能を利用している場合は、設定不要です。もし Checkout や Elements( Stripe.js )などを使う場合は、有効化されているかどうかをチェックしておきましょう。
サブスク商品を日本円で作る
商品カタログから新しい商品を作ります。料金の通貨を JPY に設定し、請求サイクルを「月次」にします。

プレビューに ¥1,000 / 月 のように表示されていれば正しく設定できています。
日本アカウントで使うなら、日本円が必須
この機能ですが、大きな制約が1つあります。それは「アカウントの settlement currency(基準通貨)で設定した料金でのみ動作する」ことです。
Adaptive Pricing requires the currency for your prices to be one of your settlement currencies.
https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing
日本の Stripe アカウントなら基準通貨は JPY です。USD の料金を作っても Adaptive Pricing は発動しません。
もし「試しても動作しない!」となった場合は、「料金が日本円になっているか」もしくは「試しているStripeアカウントは、日本のアカウントとして設定されているか」をチェックしましょう。
Payment Links を作成する
商品ができたら、Payment Links を作成します。タイプは「商品またはサブスクリプション」を選択し、先ほど作った商品を追加します。

プレビューに ¥1,000 /月 が表示されていることを確認して「リンクを作成」を押します。
テストで現地通貨表示を確認する
Adaptive Pricingは顧客のIPアドレスなどで通貨を判定します。しかしそれでは動作テストのためにVPNなどを駆使する必要があります。テストを行うときは、URLにテスト用パラメーターを追加しましょう。
Payment Links の URL に prefilled_email パラメータを追加します。これによって、特定の国からアクセスした場合の表示をシミュレートできます。
https://buy.stripe.com/test_xxxx?prefilled_email=test+location_FR@example.com
XX の部分は ISO 3166-1 alpha-2 の国コードです。いくつか国と通貨とコードのパターンをまとめてみました。
| 国コード | 国 | 表示される通貨 |
|---|---|---|
FR |
フランス | EUR |
US |
アメリカ | USD |
BR |
ブラジル | BRL |
AU |
オーストラリア | AUD |
GB |
イギリス | GBP |
フランスのユーザーには EUR で、アメリカのユーザーには USD で表示されます。

テスト決済を行ってみましょう。Stripeで表示されるサブスクリプションでは、日本円となっています。ユーザーは自国の通貨で決済できる、そのうえ自分のアカウントに届く売上は、料金として登録した日本円で届くという構図ですね。

まとめ
海外展開などを始める際、通貨ごとの料金設定やそれを適用する実装などを行うのは非常に工数がかかります。しかしStripeのAdaptive Pricingを使えば、ECの決済だけでなくSaaSのサブスクリプションについても、自国の通貨でさえ設定をしておけば問題なくなるという、とてもシンプルな設計が実現できます。
Payment Linksを使って対応するケースは少ないかもしれませんが、社内で多通貨決済の対応方法について議論になった場合などで、「Stripeだとこんな感じですよ」とすぐに動くデモを作るのにはとても便利です。
「まず動くものを見せて判断する」という進め方ができるのが、Payment Links で試す一番の理由です。
Checkout や Stripe.js を利用した実装も可能ですので、これらについてはまた後日紹介します。
