Stripe を活用して、請求書を送る」では、Stripe と連携する Questetra の自動工程を組み合わせて顧客に請求書を送付する仕組みについて説明しました。Questetra の自動工程には別途[Stripe: 請求書で課金]というアイテムがあります。[Stripe: 請求書で課金]では、Stripe に登録されている「顧客の支払い方法(クレジットカード)」に自動的に課金することができます。本記事では[Stripe: 請求書で課金]と[Stripe: 請求書をメール送付]の違いや、それぞれの用途、[Stripe: 請求書で課金]での自動課金の仕組みについて説明します。

1. Questetra の自動工程

Questetra のワークフローでは、Stripe と連携して顧客に請求・課金するためのビルトイン自動工程として、次の2つの工程を利用することができます。

Stripe: 請求書をメール送付

Stripe 上の確定済み請求書を顧客にメール送付します。顧客はメールに含まれる支払いリンクから支払うことができます。

Stripe: 請求書で課金

Stripe 上の確定済み請求書にもとづき、顧客に課金します。デフォルトの支払方法への課金が失敗した場合は、顧客に紐づけられている予備の支払方法(カード)に対して課金します。すべての課金に失敗した場合、エラーになります。

2. Stripe での決済方法

Stripe ではクレジットカードの他、モバイルウォレットやコンビニ払いといった方法で決済が可能です。Stripe アカウントの管理者はそれらの決済方法の中から希望するものを選択し、有効にすることで顧客に支払い方法として提供します。

クレジットカードを介した決済について、Stripe では[オンセッション]と[オフセッション]という支払い形式があります。

  • オンセッション
    • 顧客が決済フローでアクティブであり、当該の支払い方法を認証できる状況で支払いが発生した場合、その支払はオンセッションと呼ばれます。
  • オフセッション
    • 顧客が直接関与せずに、以前に収集した支払い情報を使用して支払いが行われる場合、その支払はオフセッションと呼ばれます。

Stripe では将来のオフセッション支払いに備えて、支払い認証情報を保存するための仕組みが提供されています。詳細は、Stripe の「Setup Intents API」のドキュメントをご確認ください。

前記の Questetra 自動工程は、それぞれ以下のように Stripe の支払い形式に対応しています。また、次のようなシーンでの利用が想定されています。

[Stripe: 請求書をメール送信]

  • オンセッション支払いに対応します
  • 顧客を請求書メールから Stripe の支払いページに誘導し、支払い手続きをしてもらいます
    • 支払いページでは、Stripe アカウント管理者が許可している支払い方法が提示されます
  • 「カード情報を再利用する」ように自動工程を設定すると、支払い方法はクレジットカードのみに限定されます
    • 将来のオフセッション支払いに備え、顧客のカード情報に加え、認証に関する情報が登録されます
  • 1回限りの支払いやサブスクリプションでの初回支払い時にカード情報を登録してもらう場合などに使用します

[Stripe: 請求書で課金]

  • オフセッション支払いに対応します
  • 顧客は支払い手続きに関与しません(事前の合意が必要です)
  • 顧客の登録済み支払い方法(クレジットカード)に課金します
    • 「デフォルト」として登録されている支払い方法を対象とします
    • 「デフォルトの支払い方法」への課金が失敗すると、登録されている他のカードへの課金を試みます
  • 課金即時に支払いが行われます
  • 複数回に渡る課金がある場合やサブスクリプションの2回目以降の支払いで使用すると、顧客が都度支払い手続きを行う負担を軽減できます

3. Stripe と Questetra の連携設定

Stripe を活用して、請求書を送るー2.Stripe と Questetra の連携設定」を参照してください

4. サンプルアプリ

Stripe を活用して、請求書を送る」で作成/テストを行ったアプリに「請求書で課金」工程を追加します。選択型データ項目「請求方法」を追加し、選択結果が分岐条件にて参照されるようにします。

ワークフローアプリの設定

データ項目

データ項目名データ型フィールド名必須「請求情報を入力」工程説明
件名編集可プロセスの件名です。
顧客ID文字型 (単一行)q_customer_id編集可Stripe に登録されている顧客の Stripe での ID を入力します。
支払期日日時型q_payment_datetime編集可支払期日を入力します。
請求明細テーブル型q_billing_statement編集可テーブル項目(列設定)は左から、文字(「商品名」)、数値(「単価」)、数値(「数量」)としておきます。(左から3列目までの設定が上記以外の場合自動工程の処理時にエラーとなります。)
請求書メモ文字型(複数行)q_invoice_note編集可請求書に記載される注意書き等を入力します。
請求方法選択型(ラジオボタン)q_charge_type編集可課金方法を[請求書をメール送付][請求書で課金]のいずれかで指定します。(分岐条件にて参照されます。)
★ 今回追加するデータ項目
請求書ID文字型(単一行)q_invoice_id表示のみStripe に作成された請求書ドラフトの ID が取得されます。
請求書URL文字型(単一行)q_invoice_url表示のみStripe に作成された請求書ドラフトの 閲覧できる Stripe のページ URL  が取得されます。
データ項目の設定

「請求書ドラフト作成」工程

「請求書ドラフト作成」工程では、データ項目に入力された内容に応じて、Stripe にて請求書のドラフトが作成されます。

設定は「Stripe を活用して、請求書を送る」と同様。

「請求書ドラフト確定」工程

「請求書ドラフト確定」工程では、作成された請求書がドラフト状態から確定状態に変更されます。Stripe は確定された請求書について支払いページを生成します。

設定は「Stripe を活用して、請求書を送る」と同様。

「請求書をメール送付」工程

「請求書をメール送付」工程では、請求書を顧客の登録アドレス宛に送信するよう Stripe に指示します。(Stripe のテスト環境ではメール送信は実行されません。)

項目名必須説明
C1: API シークレットキーを設定した認証設定 *Stripe への接続に使用する HTTP 認証設定を名前で指定します。(「Stripe と Questetra の連携設定」を参照)
C2: 確定済み請求書の ID *データ項目「請求書ID」を指定します。
C3: 顧客が使用したカードの情報を、次回以降の請求で再利用しないオフにします。
C4: 支払い完了時、顧客に領収書をメール送付するオンにします。
[Stripe: 請求書をメール送付]の設定項目

送付された請求書メールには、Stripe の支払いページへのリンクが含まれています。メール受信者(顧客) はリンクから支払いページに移動して支払い手続きを行います。

Stripe アカウントの管理者が設定した支払い方法が、顧客に提供されます。ただし[Stripe: 請求書をメール送付]の設定項目[C3: 顧客が使用したカードの情報を、次回以降の請求で再利用しない]オプションで「再利用する(=『再利用しない』を OFF にする)」設定がされていれば、クレジットカードでの支払いに限定されます。

クレジットカードで支払いが行われた場合、Stripe はそのカード情報を顧客情報と紐づけて登録します。また、他の支払い方法が登録されていなければ「デフォルトの支払い方法」として登録されます。登録時に「再利用する」設定がされていれば、「支払い方法」は認証情報と共に保存されます。 

  • 通常(1回だけ)の支払いに対する請求の場合は[C3: 顧客が使用したカードの情報を、次回以降の請求で再利用しない]オプションを On に設定します
  • サブスクリプションなど、初回の支払い以降の支払いで[Stripe: 請求書で課金]を使った自動課金を行う場合は、このオプションを Off に設定して初回の請求を行います

「請求書で課金」工程

項目名必須説明
C1: API シークレットキーを設定した認証設定 *Stripe への接続に使用する HTTP 認証設定を名前で指定します。(「Stripe と Questetra の連携設定」を参照)。
C2: ドラフト状態の請求書の ID *データ項目「請求書ID」を指定します。
C3: 課金完了時、顧客に領収書をメール送付するオンにします。
[Stripe: 請求書で課金]の設定項目

Stripe に登録されている「顧客の支払い方法(登録済みクレジットカード)」に対して、直接課金します。顧客への事前の通知や承認を得ることなく課金されますので、別途、課金に関する合意を得ていることが前提となります。( 「決済手段を保存する許可を得る」Stripe ドキュメント

Stripe では[デフォルト]として登録されている支払い方法に対して課金が試みられます。「デフォルトの支払い方法」への課金が失敗した場合は、成功するまですべての他に登録されている支払い方法への課金が試みられます。この時、認証情報と共に保存された支払い方法では課金が成功する確率が高くなります。

すべての登録された支払い方法で課金に失敗した場合は工程がエラー終了します。

動作確認

アプリをリリースした後に動作確認します。シナリオとしては初回の請求を[Stripe: 請求書をメール送付]で行い、以降の請求を[Stripe: 請求書で課金]で自動課金するというサブスクリプションの支払いに対しての請求を想定しています。

新規プロセスを開始し、「Stripe を活用して、請求書を送る」を参考にして必要な項目を入力します。追加した「請求方法」項目は、初回では「請求書をメール送付」を選択します。入力工程を完了すると「請求書をメール送付」工程へと遷移して Stripe からメールが送信されます。
送信された請求書メールから Stripe の支払画面に移動し、Stripe にて用意されている「テストカード」の情報を使って支払いを完了します。 (「テストカードの使用方法」Stripe ドキュメント

ここまで完了したら Stripe のダッシュボードで動作を確認してみましょう。

  • [支払い]タブ
    • [成功✓]した支払いが一覧に追加されています
    • クリックで細詳を確認できます
  • [顧客]タブ
    • 顧客の一覧から、請求対象に指定した顧客の詳細を開きます
    • [支払い方法]のセクションに、使用したテストカードが追加登録されています
  • [Billing]タブ →[インボイス]
    • 請求書の一覧に送信された請求書が追加されています
    • クリックで細詳を確認できます

再び新規プロセスを開始して、同じ顧客を対象に「請求方法」項目を「請求書で課金」に指定してテスト実行します。入力工程を完了し、しばらく待ってから Stripe のダッシュボードにて課金の成否を確認します。[支払い]タブに新たに[成功]した支払いが追加されていて、登録された[支払い方法]で支払いが完了していることが確認できます。

  • Stripe の「テスト環境」のみ(本番環境を持たない)の場合は、Stripe アカウントの[オーナー]の登録メールアドレスと名前で顧客登録した顧客をテスト対象にします
    • Stripe アカウントオーナーのメールアドレス以外で登録された顧客にはメールは送信されません
  • Stripe の[テストカード]には「支払いに失敗するカード」や「国別」「カードブランド」など、様々なテストカードが用意されています
Stripe ダッシュボード

Appendix

[請求書をメール送付]と[請求書で課金]の自動工程を組み合わせて利用することで、サブスクリプション契約における繰り返し課金の仕組みを構築することも可能となります。例えば、課金スケジュールは Google カレンダーで管理し、[開始: Google カレンダー: 予定開始時]工程を利用して課金プロセスを自動開始します。(高度な設定となりますので、ここでの説明は割愛します。)

%d人のブロガーが「いいね」をつけました。