ACH ダイレクトデビットによる支払いを受け付ける
カスタムの決済フォームを構築するか、Stripe Checkout を使用して、ACH ダイレクトデビットによる決済を受け付けます。
注意
Stripe は、顧客の通貨、決済手段の制限、その他のパラメーターを評価して、決済手段オプションを自動的に提示します。決済を受け付けるの手順を使用して、Stripe ダッシュボードから決済手段を設定することをお勧めします。
引き続き、Checkout で顧客に提示する決済手段を手動で設定する場合は、このガイドを使用します。それ以外の場合は、ダッシュボードで決済手段を設定できるように、構築済みのシステムを更新してください。
アメリカの Stripe ユーザーは、支払いモードで Checkout を使用して、ACH ダイレクトデビットによる決済を受け付けることができます。
Checkout セッションは、顧客の購買意図の詳細を表すものです。お客様は、顧客が何らかに対する支払いを行おうとしたときにセッションを作成します。顧客が Checkout セッションにリダイレクトされると、Stripe は決済フォームを表示し、顧客はここで購入を完了できます。顧客が購入を完了すると、元のサイトにリダイレクトされます。
Checkout を使用すると、支払い方法タイプとして us_
を指定して Checkout セッションを作成し、決済が完了するまでそのステータスを追跡ならびに処理できます。
注
ACH ダイレクトデビットは通知遅延型の支払い方法であるため、決済後すぐには売上が利用可能になりません。通常、決済金額がお客様のアカウントに入金されるまでに 4 営業日かかります。
互換性を判断する
ACH ダイレクトデビット支払いに対応するには、Checkout セッションが次の条件をすべて満たしている必要があります。
- ラインアイテムの価格はすべて、米ドル (通貨コード
usd
) で示す必要があります。
顧客を作成または取得する推奨サーバー側
ユーザーがビジネスでアカウントを作成する際に、Customer オブジェクトを作成するか、このユーザーに関連付けられた既存の Customer を取得します。この Customer オブジェクトの ID を、顧客を表す社内の内部表記と関連付けることで、保存されている支払い方法の詳細を後で取得して使用することができます。Financial Connections のリピートユーザーの最適化を有効にするには、Customer にメールアドレスを含めます。
決済を受け付ける
注
このガイドを使用する前に、まず Checkout で決済を受け付ける実装を構築します。
このガイドでは、ACH ダイレクトデビットを有効にする方法について順を追って説明し、カード支払いを受け付ける場合と、この支払い方法を使用する場合の違いを示します。
支払い方法として ACH ダイレクトデビットを有効にする
新しい Checkout セッションを作成する際は、以下を行う必要があります。
us_
をbank_ account payment_
のリストに追加します。method_ types - すべての
line_
がitems usd
通貨を使用していることを確認します。
デフォルトでは、銀行口座の支払い情報の収集では、手動の口座番号入力と少額入金の確認のフォールバックオプションを使用し、Financial Connections で顧客のアカウントを即時確認します。Financial Connections を設定し、ACH の実装を最適化するために追加の口座データにアクセスする方法については、Financial Connections に関するドキュメントをご覧ください。たとえば、Financial Connections を使用して、ACH 決済の開始前にアカウントの残高を確認できます。
注
顧客がアカウントを認証した後で、追加データにアクセスを拡張するには、権限を拡張してアカウントを再度関連付ける必要があります。
顧客が Financial Connections ではなく少額入金による確認を選択した場合、Stripe は指定された銀行口座に 2 件の少額入金を送金します。この入金が顧客のオンライン銀行明細書に表示されるまでには 1 ~ 2 営業日かかります。入金の到着予定日に、入金額の確認と Stripe での銀行口座確認を行うためのリンクが記載されたメールが顧客に届きます。確認が完了すると、決済の処理が開始されます。
支払い方法の詳細を保存できるようにするため、ACH ダイレクトデビットの決済モードセッションを作成するときに、payment_intent_data.setup_future_usage パラメーターに off_
の値を含めることをお勧めします。
注文のフルフィルメントを実行する
決済の受け付け後に、注文のフルフィルメントを履行する方法を説明します。
連携をテストする
Financial Connections を使用して即時確認を行うシナリオをテストする方法をご紹介します。
テスト環境で取引に関するメールを送信する
銀行口座の詳細を収集し、同意書を受け付けたら、テスト環境で同意書の確認メールと少額入金の確認メールを送信します。これを実行するには、支払い方法の詳細を収集するときに、payment_
フィールドに {any-prefix}+test_
の形式でメールアドレスを指定します。
よくある間違い
テスト環境でこれらのメールをトリガーするには、Stripe の本番環境利用の申請を行う必要があります。
Test account numbers
Stripe では、手動入力の銀行口座の組み込みが本番環境に移行する準備が整ったかどうかを確認するため、テスト用の口座番号と対応するトークンをいくつか用意しています。
Account number | トークン | Routing number | 動作 |
---|---|---|---|
000123456789 | pm_ | 110000000 | 支払いは成功します。 |
000111111113 | pm_ | 110000000 | 口座が解約済みであるため、支払いは失敗します。 |
000111111116 | pm_ | 110000000 | 口座が見つからないため、支払いは失敗します。 |
000222222227 | pm_ | 110000000 | 残高不足のため、支払いは失敗します。 |
000333333335 | pm_ | 110000000 | 引き落としがオーソリされていないため、支払いは失敗します。 |
000444444440 | pm_ | 110000000 | 通貨が無効であるため、支払いは失敗します。 |
000666666661 | pm_ | 110000000 | 支払いで少額入金の送金が失敗します。 |
000555555559 | pm_ | 110000000 | 支払いによって不審請求の申請が開始されています。 |
000000000009 | pm_ | 110000000 | 支払いは無期限に処理中のままになります。これは PaymentIntent のキャンセルをテストするのに便利です。 |
000777777771 | pm_ | 110000000 | The payment fails due to payment amount causing the account to exceed its weekly payment volume limit. |
テスト取引を完了する前に、自動的に支払いに成功または失敗するテスト用のすべての口座を確認する必要があります。確認するには、下記の少額入金のテスト用の金額または明細書表記コードを使用します。
少額入金の金額と明細書表記コードをテストする
さまざまなシナリオを再現するために、これらの少額入金の金額「または」明細書表記コードの値 0.01 を使用します。
少額入金の金額 | 明細書表記コードの値 0.01 | シナリオ |
---|---|---|
32 and 45 | SM11AA | アカウントの確認をシミュレーションします。 |
10 および 11 | SM33CC | 許容された確認回数の超過をシミュレーションします。 |
40 および 41 | SM44DD | 少額入金のタイムアウトをシミュレーションします。 |
その他の考慮事項
少額入金確認の失敗
銀行口座で少額入金による確認が進行中のときに、顧客は次の 3 つの理由で確認に失敗することがあります。
- 少額入金を顧客の銀行口座に送金できなかった (これは通常、銀行口座が解約済みまたは使用不可であるか、銀行口座番号が不正確である場合に発生します)。
- 顧客が口座の確認に 10 回失敗した。この試行回数の上限を超えると、その銀行口座は確認することも、再利用することもできなくなります。
- 顧客が 10 日以内に銀行口座を確認しなかった。
これらのいずれかの理由で銀行口座の確認に失敗した場合、checkout.
イベントを処理して、新たに注文を行うよう顧客に連絡できます。