Stripe の API を使用してサブスクリプションを Stripe Billing に移行する
Stripe の API を使用して既存のサブスクリプションを Stripe に移行する方法をご紹介します。
Stripe API を使用して、サードパーティー、社内のシステム、または既存の Stripe アカウントから Stripe Billing に既存の サブスクリプションを移行する方法をご紹介します。
はじめに![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
- 移行のステージを確認していない場合は、最初に確認します。
- Stripe Billing のシステムを設定します。この事前準備は、サブスクリプションを Stripe にインポートする前に一度だけ行う必要があり、将来の移行時に繰り返す必要はありません。
- 現在の決済代行業者からのPAN データのインポートをリクエストする。 Stripe 内での移行を行う場合、すでに決済処理にStripeを使用しているため、この前提条件は必要ありません。
サブスクリプションをインポートする![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
顧客をインポートし、料金体系モデルを作成したら、サブスクリプションのインポートを開始できます。サードパーティーシステムから、それらの UI や API を使用してサブスクリプションデータをエクスポートすることも可能になります。いずれかのインターフェイスでこの方法を使用できない場合は、サブスクリプションの処理業者にお問い合わせください。
サブスクリプションをインポートするには、顧客リストを使用して、顧客ごとに適切なサブスクリプションを作成します。たとえば、登録者が古いモデルで月次の Basic
サブスクリプションプランを利用している場合は、Stripe でその登録者のサブスクリプションを作成するときに、そのレベルに関連付けられた月次の継続価格を使用します。
ソースデータを Stripe に対応させる![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
サブスクリプションを Stripe にインポートする前に、すべてのソースデータが Stripe が想定する形式に対応していることを確認してください。
サブスクリプションを移行する際の重要なフィールド![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
お客様が自社で構築した実装システムで使用し、Stripe では使用していない関連サブスクリプションデータがある場合、Stripe で作成するサブスクリプションの metadata
フィールドに、該当するデータを割り当てることができます。次の表で、サブスクリプションをインポートするときに重要な他のフィールドについて説明します。
フィールド | 説明 |
---|---|
customer | ソースデータの顧客 ID を Stripe の新しい顧客 ID に正しくマッピングしたことを確認します。 |
phases.items.price | ソースデータの価格 ID を Stripe の新しい価格 ID にマッピングしたことを確認します。 |
current_phase.start_date | Stripe に定義するサブスクリプションスケジュールが、元のソースデータと一致し、連続性を保っていることを確認します。たとえば、ソースシステムで顧客の年次サブスクリプションが 6 カ月残っている場合、billing_ と start_ にサイクル途中の期間が正しく反映されていることを確認します。 |
サードパーティーメタデータ | ソースデータから追加のデータフィールドをインポートします。これには、商品名、プラン名、サードパーティーのアプリケーション ID などが含まれます。 |
Tax の設定 | 納税者番号、VAT ID、またはその他の税金情報を含めます。 |
レガシー価格を準備する![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
レガシー料金のプレースホルダーを作成した場合、インポートするサブスクリプションと顧客にそれらの料金をマッピングする必要があります。レガシー料金があるサブスクリプションごとに、Subscription (サブスクリプション) API の price_data パラメーターを使用して、料金とサブスクリプションに関する情報を渡します。必須フィールドは次のとおりです。
パラメーター | 説明 |
---|---|
currency | 3 文字の ISO 形式で示された価格の通貨。 |
product | プレースホルダー商品の ID。これは、すべてのレガシー価格に使用できます。 |
recurring | 継続価格の金額と頻度に関する情報。 |
recurring.interval | 間隔の頻度: day 、week 、month 、year |
recurring.interval_count | 請求の間隔の数。たとえば、interval=day と interval_ を設定すると、30 日ごとに顧客に請求するようになります。最大の間隔は 1 年 (1 年、12 カ月、または 52 週) です。 |
recurring.unit_amount_decimal | unit_amount と同様ですが、より細かい小数点以下の金額をセント単位で小数第 12 位まで指定することができます。unit_ と unit_ のいずれか一方のみを指定できます。 |
Stripe にサブスクリプションデータをインポートする![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
ソースデータの準備ができたら、Stripe へのサブスクリプションのインポートを開始できます。
テスト環境![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
本番環境でインポートを実行する前に、テスト環境を使用して、少なくとも 一度は料金体系モデルのインポートプロセスを一通り実行してください。次の場合、スクリプトを再度マッピングする必要があります。
- テスト環境でデータを消去し、インポートを再実行する場合。
- テスト環境と本番環境で価格 ID が異なるため、本番環境に移行する場合
テスト環境では、テストクロックを使用して経時的にサブスクリプションをシミュレーションできます。これにより、移行したサブスクリプションが本番環境でどのように動作するかを確認できます。
サブスクリプションを作成する![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Subscription (サブスクリプション) API を使用してもサブスクリプションを作成できますが、Subscription Schedules (サブスクリプションスケジュール) API を使用することをお勧めします。この API を使用すると、将来に開始されるサブスクリプションをスケジュールできます。たとえば、月次サブスクリプションの開始までの日数が 30 日を超える場合は、これが唯一の方法になります。また、将来的にサブスクリプションを開始できるため、本番環境で顧客への請求を開始する前にインポート内容を確認できます。
さらに、Subscription Schedules API では phases
も使用できます。これにより、細かい間隔での税金処理、回収方法、クーポンの使用などの設定をより柔軟に定義できます。間隔ごとに異なる処理を定義することも可能です。たとえば、年次サブスクリプションの最初の 3 カ月にのみクーポンを適用することができます。
に開始するサブスクリプションを作成する方法を次に示します。
移行を確定する![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
サブスクリプションをインポートしたら、API を使用してサブスクリプションが Stripe に存在することを確認します。
List Subscription (サブスクリプションのリスト化) API を使用して、Stripe のすべての Subscription を表示します。created パラメーターを渡して、最近作成された Subscription をフィルタリングできます。