コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース

インドの継続支払い公開プレビュー

RBI の電子同意書に対応するために組み込みを更新する方法をご紹介します。

インド準備銀行 (RBI) は、インドで発行されたカードでの継続支払いに対するセキュリティ対策を強化する対策を導入する指令を発布しました (その後、2020 年 12 月および 2021 年 3 月に改正)。以下のような対策が導入されています。

  • 銀行は、3D セキュア (3DS) などの追加要素認証 (AFA) を使用して、1 回限りのプロセスでカード保有者を登録し、電子同意書を作成する必要があります。
  • 銀行/発行会社は、支払いが行われる 24 時間以上前にカード保有者に通知して、取引をオプトアウトできるようにする必要があります。
  • 15,000 INR (または他の通貨での相当額) を超える継続取引では、毎回 AFA を使用する必要があります。

インド所在の Stripe ユーザーまたは国際的な (IN 以外の) Stripe ユーザーのビジネスは、インドのカードを以下の目的で使用する顧客が存在する場合に影響を受けます。

  • オフセッション支払い
  • collection_method が charge_automatically に設定されているサブスクリプションまたは請求書

電子同意書を使用する支払いの仕組み

Stripe は、パートナープラットフォームと連携して、電子同意書の登録と顧客への引き落としの事前通知の送信をサポートしています。

注

現時点では、メキシコと日本の Stripe ユーザーは電子同意書をご利用いただけません。

Stripe の導入方法によっては、同意書を設定するための追加情報を Stripe に送信しなければならない場合があります。顧客が同意書を登録するには、AFA (3DS) を実行する必要があります。

サブスクリプションの後続のオフセッション支払いや自動引き落としについては重大な変更があります。実際の支払いの 24 時間以上前に、正確な引き落とし金額が記載された引き落としの事前通知が顧客に届いていなければなりません。引き落としの事前通知には、支払いに関する情報と、同意書をキャンセルするオプションが記載されます。支払い額が 15,000 INR または同意書の最大金額を超える場合は、引き落としの事前通知にリンクが記載され、そのリンクから AFA (3DS) を実行して支払いを承認します。

Stripe は、パートナープラットフォームと提携しているため、支払いリクエストの受信後、26 時間待機してから顧客に請求します (26 時間前の事前通知が必要となるダウンストリームでの問題の発生に備えて調整時間を追加します)。そのため、Stripe は支払いの回収を 26 時間延期します。

オフセッションの支払いの同意書がない場合、支払いは拒否されます。

実装

RBI 規制は、collection_method=charge_automatically を使用してインドで発行されたカードに請求するするサブスクリプションに影響します。

注

Stripe は、PaymentIntents または SetupIntents によるインドの継続支払いの電子委任状をサポートしていません。継続支払いの同意書を管理するには、以下で説明するようにサブスクリプションを使用します。

サブスクリプションの作成

API を使用して新しいサブスクリプションを作成する場合

  • デフォルトの支払い方法が設定されている場合、サブスクリプションは、支払い方法で最新の SetupIntent を使用して、対応する同意書を見つけようとします。
  • 同意書がない場合、mandate_options で関連パラメーターを渡していなくても、Stripe は自動的に作成を試行します。その後、顧客は支払いを認証する必要があります。

新しいサブスクリプションを作成する方法については、サブスクリプションの実装を構築するをご覧ください。

サブスクリプションの売上回収

Stripe は、失敗した可能性のある支払いの回収に役立つ自動リカバリー機能を多数用意しています。これらの支払いの失敗を独自に処理したい場合は、継続支払いの失敗に対して独自に処理するためのガイドを参照してください。それ以外の場合は、以下の推奨事項を参照してください。

注

インドで発行されたカードによる支払いは、一度だけ試行されます。この動作は、支払い再試行の設定による影響を受けません。インドで発行されたカードによる支払いが失敗した場合でも、サブスクリプションと請求書のステータスは、 「支払いの再試行がすべて失敗した場合」のサブスクリプションとメール通知の設定に基づき、更新されます。

3D セキュアのメール

サブスクリプションの更新時にデフォルトの支払い方法に同意書が存在しない場合、Stripe は新しい同意書を作成しようとします。同意書を登録するには、顧客は、AFA (3DS) を完了する必要があります。サブスクリプションとメール通知の設定 で Send a Stripe-hosted link for customers to confirm their payments when required を有効にして、必要に応じて顧客をオンセッションに戻し、認証を完了できるようにしてください。

注

サブスクリプションで現在使用されている同意書が inactive である場合、Stripe は新しい同意書の作成はしません。

失敗した支払いを管理する

サブスクリプションの支払いが失敗して、サブスクリプションが一時停止されたときの顧客への通知を有効にすることをお勧めします。サブスクリプションとメール通知の設定で有効にすると、Stripe は、失敗したカードの支払い方法の更新を求めるメールを顧客に送信できます。

同意書の作成

Stripe によって同意書が自動的に作成されるようにしている場合、同意書の詳細は請求書の基盤となる PaymentIntent と対応する Charge で返されます。また、トライアルを含むサブスクリプションを作成している場合には SetupIntent で返されます。

以下のいずれかに該当する場合、Stripe は同意書 ID を返しません。

  • カードがインドで発行されたカードではない。
  • 同意書の通貨が、カード発行会社または Stripe アカウントの国でサポートされていない。
  • インドで発行されたカードが Visa でも Mastercard でもない。Stripe は、この 2 つのカードブランドでのみ同意書をサポートしています。

Stripe は、すべてのビジネスで INR の同意書をサポートします。以下の通貨は、国際的な (IN 以外の) ビジネスでのみサポートされています。

  • USD
  • EUR
  • GBP
  • SGD
  • CAD
  • CHF
  • SEK
  • AED
  • JPY
  • NOK
  • MYR
  • HKD

インドには、100 以上のカード発行銀行/会社があり、新しい要件のすべてに対応するためのプロセスには時間がかかると思われます。カード発行元が、まだ特定の通貨で電子同意書に対応していない場合があります。その場合は、Stripe は同意書 ID を返しません。

同意書のステータスとトラブルシューティング

Stripe が同意書を作成できない場合は、別のカードの使用を提案するか、サブスクリプションの send_invoice として collection_method を設定するなどの別のオプションを提供することができます。

また、顧客が同意書をキャンセルした場合などには、有効だった同意書が無効になることがあります。この場合、同意書は inactive になり、Stripe から mandate.updated イベントが送信されます。

Webhook の受信について、詳細は Webhook を受信するためのステップをご覧ください。

サブスクリプションの更新

銀行が送信する引き落としの事前通知は、少なくともビジネスの名前、取引金額、引き落としの日付または時刻、同意書の参照番号、引き落としの理由をカード保有者に通知するものです。混乱や支払い拒否を防止するために、同意書の詳細が顧客に対する実際の引き落としの内容と一致していることを確認してください。

Stripe によってサブスクリプションの同意書が自動的に作成される場合に、サブスクリプションを更新するには、顧客をオンセッションに戻して元のサブスクリプションをキャンセルすることをお勧めします。そうすると、以下のシナリオで新しいサブスクリプションが作成され、サブスクリプションの詳細が正確に反映された新しい同意書が作成されます。

  • サブスクリプションの請求期間の変更
  • 顧客が更新のたびに支払いを承認しなくても済むようにするサブスクリプションのアップグレード。コンテキストとして、Stripe は、デフォルトで amount_type=maximum を指定して同意書を作成します。amount_type=maximum を指定すると、最大金額を超える金額を顧客に請求できます。ただし、mandate_options[amount] または 15,000 INR (どちらか少ない方の金額) を超える金額の支払いは、顧客による承認が必要です。

例:

  • amount_type=maximum、amount=100000 を設定している場合は、顧客が 1,000 INR 以上の金額を認証する必要があります。
  • amount=2000000 を設定している場合、15,000 INR 以上の金額では顧客による認証が必要になります。

引き落としの事前通知

オフセッションの PaymentIntent が確定されると、カード発行会社は、引き落としの事前通知を顧客に送信します。PaymentIntent は、引き落としの事前通知の期間全体 (26 時間) にわたって processing ステータスに移行し、キャンセルすることはできません。

{ "object": "payment_intent", ... "processing": { "card": { "customer_notification": { "approval_requested": true, "completes_at": 1677307005 } }, "type": "card" }, ... "status": "processing", ... }

processing.card.customer_notification.approval_requested が true である場合、顧客は、カード発行会社から送信された引き落としの事前通知を使用して支払いを認証する必要があります。

processing.card.customer_notification.completes_at 属性は、Stripe がカードへの請求を試行する時刻を指定します。顧客の承認が必要な支払いが正常に処理された場合、顧客は、指定された時刻までに支払いを認証する必要があります。

エラーおよび拒否コード

以下のシナリオではエラーコード が返されます。

エラーコード説明
payment_intent_mandate_invalid無効な同意書を使用して継続支払いを試行するとこのコードが返されます。支払いを試行する前に同意書のステータスを確認することで、これを防ぐことができます。
india_recurring_payment_mandate_canceled無効な同意書を使用して継続支払いを試行するとこのコードが返されます。この時点で同意書がキャンセルされていることのみが明らかな場合に、発生する可能性があります。
processing_error(通常は一時的な) 処理中のエラーが見つかると、このコードが返されます。

電子同意書では、特定の拒否コードに、一般的なシナリオよりも具体的な説明が含まれる可能性が高くなります。

拒否コード説明
transaction_not_approved顧客が自動引き落としの権限を一時停止したか、必要な時点で支払いを認証していない場合に、後続の支払いを試行するとこのコードが返されます。

テスト

これらのテストカード番号を使用して、さまざまなシナリオをシミュレートできます。

サンドボックスでは、オフセッション PaymentIntent が processing ステータスから移行するのに約 15 分かかります。初回支払いのオンセッション PaymentIntent が processing ステータスになることはありません。

番号シナリオ
同意書の正常な設定と更新をシミュレーションします。
カード保有者がオフセッションの支払いに対する引き落としの事前通知を受け取り、任意の金額の同意書による支払いのキャンセルまたは一時停止を行うシナリオをシミュレーションします。
任意の金額の同意書によるオフセッションの支払いの際に、カード発行会社がカード保有者への引き落としの事前通知の送信に失敗するシナリオをシミュレーションします。
カード保有者による任意の金額の同意書のキャンセルをシミュレーションします。

制限事項

以下の制限事項にご注意ください。

  • Stripe は、2021 年 10 月 1 日以降に作成されたサブスクリプションでのみ同意書の自動作成を試みます。それより前に作成されたサブスクリプションがある場合は、サブスクリプションをキャンセルして新しいサブスクリプションを作成して、同意書が作成されるようにします。
  • Chargesおよび Sources API を使用して同意書を作成することはできません。
  • 既存の同意書をサブスクリプションに渡すことはできません。
  • 同意書はキャンセルや更新ができません。
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc