サブスクリプションビジネスの成長に役立つ6つのStripe Checkout便利機能

SaaSをはじめとしたサブスクリプションビジネスにおいて、損益分岐点を超える契約・ユーザーを獲得することはとても重要なタスクです。特に「最初の顧客１０件」を獲得することは、サービスの成功を左右する重要な局面でもあります。損益分岐点にはまだ到達していなかったとしても、そのサービスに満足する会社が１０社出てきたということは、そのサービスにニーズがあることを示しています。その頃には顧客のニーズについて繰り返し聞くようになるでしょうし、企業としての信頼が芽生えだし、新たな顧客の紹介や推薦を得られるようにもなります。

この重要な局面について、どのように取り組むべきかについては、Stripeが公開しているガイド記事[最初の顧客 10 社を獲得する方法](https://stripe.com/jp/guides/atlas/starting-sales)をぜひチェックしてみてください。

https://stripe.com/jp/guides/atlas/starting-sales

## 少ない手間で、申し込み・決済フローの最適化を実現する方法

より多くのユーザーを獲得するためには、魅力的なオファーの提示やストレスのない申し込みフローを用意することが重要です。しかし多くの場合、開発リソースはサービスのコア機能やユーザーの要望を叶えるための実装にほとんど占有されています。そのため、開発リソースが限られている場面では、Stripeにおける[Stripe Checkout](https://stripe.com/jp/payments/checkout)のような、少ない手間・コードで組み込みができ、ノーコードで機能や振る舞いの調整も可能なソリューションがとても役に立ちます。

https://zenn.dev/yoshii0110/articles/a0b8abf7b462ab

https://zenn.dev/flutteruniv_dev/articles/cc784c78b02939

この記事では、SaaSやサブスクリプションビジネスのプロモーションや申し込みフロー改善に利用できる、Stripe Checkoutの便利機能を６つ紹介します。

## SaaS / サブスクリプションビジネスの成長に役立つ６つのStripe Checkout便利機能

### 1: 決済手段を登録せずに、サービスを申し込みできるようにする方法

アルファ版・ベータ版でサービスを提供する場合や、「機能を体験してもらうことで、価値を伝えたい」と考えている場合には、無料プランや無料トライアルなどを顧客に提示します。


![スクリーンショット 2024-04-04 14.00.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/b5280524-154c-2647-27c6-388d91ad420e.png)

Stripe Checkoutを利用する場合、`payment_method_collection`を`if_required`に設定するだけで、「決済を必要としない申し込み」についてはメールアドレスだけの入力で申し込みを受け付けられます。

```diff_javascript
    const session = await stripe.checkout.sessions.create({
      line_items: [{
        price: 'price_xxxxx',
        quantity: 1
      }],
      mode: 'subscription',
      success_url: 'https://example.com',
      cancel_url: 'https://example.com',
+      payment_method_collection: 'if_required',
    })
```

https://qiita.com/hideokamoto/items/117fbce40cab851ca0a8

また、Stripeダッシュボードでは、以下の内容などを確認できるレポート画面があります。


- 　トライアル申し込み数
- 　新規サブスクリプション登録者数  
- 　トライアルからの有料プランへのコンバージョン率

![スクリーンショット 2024-04-04 14.01.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/276349ae-7841-7dbc-d47c-b148f751d898.png)

これらの機能を活用することで、トライアル・無料プランユーザーの管理や有料プランへのコンバージョンなどについてもStripe上で管理・分析することができます。

無料オファーを提示する方法については、以下の記事でより詳しく紹介していますので、こちらも併せてご覧ください。

https://qiita.com/hideokamoto/items/e262a5d22f3ec375a87d

### 2: クーポン機能によるプロモーション

Stripeには非常に強力なクーポン機能が用意されています。割引率や金額の設定だけでなく、クーポンの利用条件や有効期限などを細かく設定することができます。

![スクリーンショット 2024-04-04 14.36.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/d6fdd689-187d-dc73-c6da-766d44b9610c.png)

このクーポン機能も、Stripe Checkout側では1行パラメータを追加するだけで実装できます。

```diff_javascript
const session = await stripe.checkout.sessions.create({
  success_url: 'https://example.com',
  mode: 'subscription',
+  allow_promotion_codes: true,
  line_items: [
    {
      price: 'price_xxxxx',
      quantity: 1,
    },
  ],
});
```

クーポンを利用できる設定を組み込みしておき、マーケティング施策に合わせたプロモーションコードを都度発行することで、必要な時に必要なプロモーションやキャンペーンを実施できる体制を作ることができます。

https://qiita.com/hideokamoto/items/90c96f90b1db9f4c4d6e


### 3: アップセル・クロスセル機能を使った追加の提案

Stripe Checkoutでは、クーポン以外にも顧客に提案・オファーを出す方法があります。それがこのアップセル・クロスセル機能です。

事前にStripeへ登録した商品に設定を行うことで、次のような「より長期プランの契約」を提案するアップセルを、ノーコードで実装できます。

![スクリーンショット 0003-12-10 21.58.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/f215828b-c9f5-bfa6-4384-7bdb1a73004a.png)

また、オプションプランや機能などの提案を行う「クロスセル機能」についても、ダッシュボードからの操作のみで追加・変更ができます。

![スクリーンショット 0004-03-04 14.44.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/6bcc3c66-7ca7-0d89-e178-12e01b586307.png)

どちらもダッシュボード上での設定のみで追加や変更、削除ができますので、季節性のあるオプションを提案したい場合などにも、簡単にテストすることができます。

https://qiita.com/hideokamoto/items/669d8b02195ac148dd3e

https://qiita.com/hideokamoto/items/dcb11d03b3fe5516c4ba

### 4: GUIでカスタマイズできる「埋め込み型料金表」

複数の料金プランや「年額・月額」などのバリエーションを提示する場合、「サービスの料金表」を作成する必要があります。そして多くの場合、「料金表に表示する情報」と「システムが参照する料金プラン情報」が個別で管理されます。そのため、新しい機能をリリースした際に「サイトの料金表には、この機能の情報が載っていない」との問い合わせが来たり、場合によっては「システム側の実装とサイト側の表示で対象プランが異なってしまう」といったトラブルも発生する恐れがあります。


![pricing-table-embed.1870143348d02d3e487d0c3e59c30bd0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/d6924977-00ed-acf3-cc0c-14f733a82cfb.png)

Stripeの場合、「Stripe上に登録したデータを元に、料金表を作成する」機能が用意されています。これはStripeダッシュボードから生成したコードスニペットをサイトやアプリケーションに埋め込むだけで、複数の料金プランを表示するUIを埋め込みできる機能です。

```html
<script async src="https://js.stripe.com/v3/pricing-table.js"></script>
<stripe-pricing-table
  pricing-table-id="prctbl_xxxx"
  publishable-key="pk_test_xxxx"
>
</stripe-pricing-table>
```

コードを見ていただくとわかるように、料金表に表示する商品や料金プラン、見た目などについてはダッシュボードからコードを書かずにカスタマイズできます。


![スクリーンショット 2022-09-07 16.19.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/7102c6fa-2940-39cf-d57b-838db00a0f22.png)

この機能を利用することで、サービスの料金体系や機能情報についても、Stripe上に集約管理することができます。

https://qiita.com/hideokamoto/items/d2fe70ead58b6689ff17

### 5:　カスタムフィールドで顧客の情報をより詳しく収集する

「ホスティングサービスにおけるサービスのドメイン名」や「ギフトサービスでの宛名」など、サービスによっては追加で顧客から提供してもらう必要がある情報もあります。これらについても、Checkoutのカスタムフィールド機能を利用して、決済フローの中で収集できます。


![スクリーンショット 2023-05-22 18.02.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/c4dfe1c1-bab2-4ebc-3c48-3b4afac22fa1.png)

こちらについては、[Checckout Sessionを作成するAPIリクエスト](https://docs.stripe.com/api/checkout/sessions/create#create_checkout_session-custom_fields)の中で指定する必要があります。

```diff_javascript
	const session = await stripe.checkout.sessions.create({
		mode: 'payment',
		success_url: 'https://example.com/success',
		cancel_url: 'https://example.com/cancel',
		line_items: [{
			price: 'price_xxxx',
			quantity: 1
		}],
+		custom_fields: [
+		  {
+			key: 'noshigami',
+			label: {
+				type: 'custom',
+				custom: '熨斗紙の宛名(オプション)'
+			},
+			optional: true,
+			type: 'text',
+		  },
+		  {
+			key: 'roasing',
+			label: {
+				type: 'custom',
+				custom: '焙煎度合い'
+			},
+			dropdown: {
+				options:[{
+					label: '浅煎り',
+					value: 'light'
+				}, {
+					label: '中煎り',
+					value: 'midium',
+				}, {
+					label: '深煎り',
+					value: 'city'
+				}]
+			},
+			type: 'dropdown',
+		  }
+		],
	})
```

もしGUIで設定・変更を行いたい場合は、[microCMSなどのCMS](https://microcms.io/)を別途利用してもよいかもしれません。

https://qiita.com/hideokamoto/items/11f54da6da338f756056

### 6: 見た目のカスタマイズ

製品のリニューアルなどで配色や見た目が大きく変更されることも、立ち上げ期のサービスでは珍しくない話です。その場合には、決済・申し込みフローについても配色の調整が必要となります。

Stripe Checkoutを利用している場合、ダッシュボードから配色やロゴなどを変更できます。

![スクリーンショット 0004-02-17 11.41.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/5fb03583-a417-3a91-22a7-fac3ca55a0de.png)

フォントなどの調整が可能ですので、気になった方は下の記事もチェックしてください。

https://qiita.com/hideokamoto/items/0fca21987e5875d91258

## Stripe Checkout以外の、SaaS運用に役立つ機能を一部紹介

Stripe Checkout以外にも、SaaSやサブスクリプションの立ち上げに便利な機能は数多く用意されています。その中でもここ１・２年でリリースされた注目の機能を3つ紹介します。それぞれの機能がどのようなメリットをもたらすのかについても簡単に説明します。

### 1: テストクロックを利用した、請求・プラン変更シミュレーション

サブスクリプションビジネスでは、運用フェーズにおいて時間経過に伴う様々なイベントが発生します。

- 支払いが失敗した場合の、利用停止処理や社内への通知
- 未払いの請求の支払いが成功した場合のアカウント復旧フロー
- プランを変更した時点での差額の計算や請求タイミング
- etc

このような出来事は、時間経過に伴って発生します。Stripeを利用している場合は、テスト環境のサブスクリプションについては、[テストクロック機能](https://docs.stripe.com/billing/testing/test-clocks/simulate-subscriptions)を利用してシミュレーションができます。

![スクリーンショット 2024-04-02 10.54.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/5e3fbbd8-dc25-edb3-5c6e-577215732a8d.png)

この機能は作成済みのサブスクリプションへも、ダッシュボードからシミュレーションが可能です。そのため事前のシミュレーションだけでなく、問題が発生した際のデバッグなどにも利用できます。

https://qiita.com/hideokamoto/items/42bec78843a5f12529ad

https://qiita.com/hideokamoto/items/634bde6e3cd577f3b292

テストクロック機能を活用することで、様々なシナリオを事前にテストすることができ、運用フェーズでのトラブルを未然に防ぐことが可能になります。

### 2: カスタマーポータルを利用した、請求・決済マイページのローコード化

クレジットカード情報の更新や過去の請求書・領収書のダウンロード・プラン変更といったユーザー側でアクションが必要なタスクもサブスクリプションには存在します。これらの操作について、顧客側で対応できるようにするための「請求マイページ」についても、Stripeではノーコード・ローコードで提供できます。

https://support.stripe.com/questions/billing-customer-portal?locale=ja-JP

![スクリーンショット 2023-07-14 13.55.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/00d4bd6b-5f60-06ee-5caa-a5b80507ae94.png)

ディープリンク機能を組み合わせることで、段階的に独自の組み込みに切り替えることもできますので、「まずはカスタマーポータルから始めよう」という判断をすることで、開発工数や保守の手間を最小化することが可能です。

![スクリーンショット 2023-07-18 10.29.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/8fb69baa-f95c-d27f-c78d-2419142b9d32.png)

https://qiita.com/hideokamoto/items/747e568b209d03767079

https://qiita.com/hideokamoto/items/cae0f79a1a844477c9cc

https://qiita.com/hideokamoto/items/41381832f806619e9be6

カスタマーポータルを活用することで、顧客の利便性を向上させつつ、開発工数を抑えることができます。また、ディープリンク機能を利用することで、段階的に独自の組み込みに移行することも可能です。

### 3: 未払いが発生した時に備えるSmart Retry機能とオートメーション

長期間にわたって請求を行うサブスクリプションでは、支払いの回収に失敗することが少なくありません。これはクレジットカードの有効期限切れや紛失等による利用停止、そして銀行振込等の入金漏れといった様々な理由で発生し、これによって「意図しない解約」が発生することもあります。ユーザーは利用継続を希望しているにも関わらず、支払いが失敗したためにキャンセル・解約となるケースは、ユーザー・ベンダーどちらにもマイナスの影響を与えます。

https://stripe.com/jp/resources/more/involuntary-churn-101-what-it-is-why-it-happens-and-seven-ways-to-reduce-it

この「意図しない解約」を防止するため、Stripeではスマートリトライやオートメーションといった機能を提供しています。例えば支払いの失敗を予防するための機能として、「次回のプラン更新を予告するメール」や「有効期限が近づいているクレジットカードを利用していることを通知するメール」などをStripeから１クリックで送信できるようにする機能を用意しています。

![スクリーンショット 2024-04-05 10.33.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/8f87c569-18a5-049c-0d49-84ac5bbbd764.png)

また、支払いが失敗した場合にも、機械学習ベースまたは手動で設定した条件によって、再請求を実施する仕組みが用意されています。

![スクリーンショット 2024-04-05 10.34.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/9f806a05-4ba3-24d1-dc37-e596abbfc5ec.png)

https://docs.stripe.com/billing/collection-method

売上回収に関するレポートもダッシュボードから見ることができます。現在の未払いがどれくらいで、回収できているのが何割か、といった分析もコードを書く必要なく実施できます。

![スクリーンショット 2024-04-05 10.37.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/2b2e4801-d696-d306-3e68-30cc2e20ae99.png)
https://dashboard.stripe.com/revenue_recovery

https://docs.stripe.com/billing/revenue-recovery/recovery-analytics

このほかにも、カスタムのワークフローをノーコードで構築できるオートメーション機能も、[Billing Scaleプラン](https://stripe.com/jp/billing/pricing)を利用されている方は利用できます。

![スクリーンショット 2024-04-01 16.42.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/4aca614e-16b2-0e23-3827-bfdb85c0cb41.png)
https://docs.stripe.com/billing/revenue-recovery/automations


Smart Retry機能とオートメーションを活用することで、意図しない解約を防止し、売上回収率を向上させることができます。また、これらの機能はダッシュボードから設定・管理できるため、コードを書くことなく運用が可能です。


https://qiita.com/hideokamoto/items/1f74ec18dcc0b99f835a

## 開発時にも、リリース後にもStripe Checkoutを活用しよう

今回は、Stripe CheckoutのSaaS・サブスクリプションビジネスを立ち上げる際に便利な機能を紹介しました。Stripe Checkoutを利用することで、開発工数の削減や保守が必要なコードの量を減らすことができます。そしてさらに、リリース後のユーザー獲得キャンペーンや価格改訂・機能追加などについても、様々な機能を活用することで、追加の開発工数を必要とせず、ダッシュボードから数クリックの操作を行うだけで対応が可能になります。

このようにStripeでは、決済やサブスクリプションの組み込みだけでなく、バックオフィス業務の効率化やカスタマイズも可能です。また、レポーティングや分析・データウェアハウスまたは外部システムへの連携などもシームレスに行えるため、「決済・注文・サブスクリプション申し込みの受け付けを**終えた後**」についても効率化や改善・自動化できます。

![スクリーンショット 2023-08-22 13.51.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366300/859fcf9f-fd2e-d2bc-bcb7-f86a30042686.png)
https://stripe.com/jp/use-cases/finance-automation

「バックオフィス業務の自動化・効率化」に興味がある方は、以下のドキュメントから詳細を確認してみましょう。

https://stripe.com/jp/use-cases/finance-automation

https://stripe.com/docs/finance-automation

https://marketplace.stripe.com/