SetupIntent、PaymentMethod、BankAccount を使用する
PaymentMethod
オブジェクトを使用し、今後の使用に備えてアメリカの銀行口座のアカウント認証情報を保存できます。PaymentMethod
を作成したら、同じオブジェクトを繰り返し使用し、金融口座に対する入出金を行うことができます。ユースケースに応じて、PaymentMethod
を Customer
オブジェクトまたは Stripe アカウントに関連付けることができます。
- 決済手段を、サードパーティーへのアウトバウンド支払いに使用するには、
PaymentMethod
をCustomer
オブジェクトに関連付けします。 - 決済手段を、Stripe アカウントと同じビジネスに属する外部口座間のインバウンド送金またはアウトバウンド送金に使用する場合には、
PaymentMethod
を連結アカウントまたはプラットフォームアカウントに関連付けます。
注
Customer
オブジェクトは、外部銀行口座の所有者を表す第三者 (法人) を定義します。
以前に BankAccount オブジェクトを使用して、Stripe で顧客の支払い詳細を収集したことがある場合は、これらのリクエストで、BankAccount
の代わりに PaymentMethod
を使用できます。InboundTransfers
の場合、このケースでは、BankAccount
status
の値は verified
である必要があります。全機能をご利用いただくために、可能な限り PaymentMethods
のご使用をお勧めします。
場合によっては、ACH 送金を受け取る側の銀行から、口座情報 (口座番号や金融番号など) が変更されたことが Stripe に通知されます。Stripe は、PaymentMethod
オブジェクトまたは BankAccount
オブジェクトに関連付けられている口座に対してこのような通知を受け取った場合、オブジェクトを自動的に更新します。詳細については、ACH の変更通知の処理ガイドをご覧ください。
SetupIntent を作成して us_bank_account
の詳細を保存する
SetupIntents
を使用すると、Stripe API の資金移動エンドポイントで使用するための決済手段を設定できます。SetupIntents
を使用し、顧客やアカウントの認証情報を決済手段として保存して、それを使用する予定のオブジェクトに合わせて最適化します。たとえば、アメリカの銀行口座を設定する際に、インバウンド送金を使用してその外部口座から引き落としを行う予定の場合、銀行口座を確認する必要があります。Stripe は、その設定プロセス全体を通じて SetupIntent
オブジェクトを更新します。
以下の例では、双方向への資金移動が可能な銀行口座を持つ SetupIntent
を使用しています。支払いの作成と銀行口座の確認のために決済手段を設定する方法の詳細については、ACH ダイレクトデビットによる将来の支払いに備えて詳細を保存するガイドをご覧ください。SetupIntents
で金融口座の資金を管理するするための決済手段を設定する際には、以下のフィールドが重要です。
flow_directions
: この配列は、決済手段のフローの方向性を定義します。設定可能な値はinbound
とoutbound
で、その決済手段が金融口座で出金または入金、あるいはその両方向で資金を移動できるかどうかを示します。また、既存の決済手段を双方向として設定することもできます。attach_to_self
: この決済手段をコンテキスト内のAccount
オブジェクトに関連付けるかどうかを示すブール値フラグ。これをtrue
に設定すると、アカウントに関連付けられた決済手段を作成し、インバウンド送金やアウトバウンド送金など、このアカウントが保有する資金移動フローを管理できます。customer
: 設定完了時に決済手段が関連付けられるCustomer
オブジェクトの ID。Customer
に関連付けられた 決済手段を、アウトバウンド支払いで使用して、サードパーティーや顧客に送金できます。また、これらの決済手段を Stripe PaymentsPaymentIntents
で使用して資金を受け取ることもできます。顧客に関連付けられた決済手段を作成する際には、attach_to_self
属性をfalse
に設定するか、ブランクのままにする必要があります。
権限
‘inbound’ フロー方向 (InboundTransfers
など) の決済手段を使用するには、ユーザーから許可を得る必要があります。この同意書 (Mandate
オブジェクト) を事前に作成し、それを決済手段と関連付けしておくことで、それ以降の決済手段への請求が可能になります。
外部口座から資金を引き落とす方法を示す規約を Web サイトおよびアプリに追加し、ユーザーがオプトインできるようにします。規約には、少なくとも以下の内容が含まれている必要があります。
- ユーザーの代わりに 1 回の引き落としまたは一連の引き落としを開始することための、ユーザーからの許可
- 予測される引き落とし頻度 (1 回限りまたは継続)
- 引き落とし金額の決定方法
インバウンド送金では、外部のアメリカの銀行口座から引き落としをするには同意書によるユーザーの許可が必要ですが、アウトバウンド送金またはアウトバウンド支払いでの銀行口座への送金には許可は必要ありません。
SetupIntent を作成する
SetupIntent
を作成するには、payment_method
パラメーターで既存の決済手段を使用するか、インラインの payment_method_data
パラメーターを使用して新しい認証情報を指定する必要があります。
POST /v1/setup_intents
を使用して SetupIntent
を作成します。
成功するとレスポンスで、新しく作成された SetupIntent
オブジェクトが返されます。
SetupIntent
は、以下のいずれかのステータスになります。
ステータス | 説明 | 次のステップ |
---|---|---|
succeeded | 銀行口座が即座に確認されたか、確認が不要でした。 | アクションは不要です。 |
requires_action | 銀行口座の確認を完了するには、追加のアクションが必要です。 | 詳細な設定ステップについては、next_action をご覧ください。 |
SetupIntent
の確定に成功した後、Stripe は、同意書と収集された銀行口座情報の確認メールをユーザーに送信します。デフォルトのメールでは Stripe Payments に言及するため、Stripe Payments を使用せずに Stripe Treasury を使用している場合は、Stripe のメールをオフにして、代わりにカスタムメッセージを送信することができます。