コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで支払い方法を管理
    決済手段のタイプ
    カード
    Stripe 残高で支払う
    仮想通貨
    銀行口座引き落とし
      ACH ダイレクトデビット
        決済を受け付ける
        銀行情報の保存
        Charges API からの移行
        他の決済代行業者からの移行
        ブロックされた銀行口座
        SEC コード
      Bacs ダイレクトデビット
      カナダのプレオーソリデビット
      オーストラリアの BECS ダイレクトデビット
      ニュージーランドBECS ダイレクトデビット
      SEPA ダイレクトデビット
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
    リアルタイム決済
    店舗支払い
    ウォレット
    国ごとに現地の支払い方法を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
In-app Payments
決済シナリオ
複数の通貨を扱う
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
決済にとどまらない機能
会社を設立する
仮想通貨
Financial Connections
Climate
不正利用について
Radar の不正防止
不審請求の申請の管理
本人確認
ホーム支払いAdd payment methodsBank debitsACH Direct Debit

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

ACH ダイレクトデビットによる支払いを受け付ける

カスタムの決済フォームを構築するか、Stripe Checkout を使用して、ACH ダイレクトデビットによる決済を受け付けます。

注意

Stripe は、顧客の通貨、決済手段の制限、その他のパラメーターを評価して、決済手段オプションを自動的に提示します。決済を受け付けるの手順を使用して、Stripe ダッシュボードから決済手段を設定することをお勧めします。

引き続き、Checkout で顧客に提示する決済手段を手動で設定する場合は、このガイドを使用します。それ以外の場合は、導入済みのシステムを更新して、ダッシュボードで決済手段を設定してください。

アメリカの Stripe ユーザーは、支払いモードで Checkout を使用して、ACH ダイレクトデビットによる決済を受け付けることができます。

Checkout Session は、顧客の購買意図の詳細を表すものです。お客様は、顧客が何らかに対する支払いを行おうとしたときに Session を作成します。顧客が Checkout セッションにリダイレクトされると、Stripe は決済フォームを表示し、顧客はそこで購入を完了できます。顧客が購入を完了すると、元のサイトにリダイレクトされます。

Checkout を使用すると、支払い方法タイプとして us_bank_account を指定して Checkout セッションを作成し、決済が完了するまでそのステータスを追跡ならびに処理できます。

注

ACH ダイレクトデビットは通知遅延型の支払い方法であるため、決済後すぐには売上が利用可能になりません。通常、決済金額がお客様のアカウントに入金されるまでに 4 営業日かかります。

互換性を判断する

対応可能なビジネスの所在地: US

対応可能な通貨: usd

取引通貨: usd

支払いモード: Yes

セットアップモード: Yes

サブスクリプションモード: Yes

ACH Direct Debit 支払いをサポートするには、すべての明細項目で Prices を米ドル (通貨コード usd で表記するようにしてください。

顧客を作成または取得する
推奨
サーバー側

ユーザーがビジネスでアカウントを作成する際に、Customer オブジェクトを作成するか、このユーザーに関連付けられた既存の Customer を取得します。この Customer オブジェクトの ID を、顧客を表す社内の内部表記と関連付けることで、保存されている支払い方法の詳細を後で取得して使用することができます。Financial Connections のリピートユーザーの最適化を有効にするには、Customer にメールアドレスを含めます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d email={{CUSTOMER_EMAIL}}

決済を受け付ける

注

このガイドを使用する前に、まず Checkout で決済を受け付ける実装を構築します。

このガイドでは、ACH ダイレクトデビットを有効にする方法について順を追って説明し、カード支払いを受け付ける場合と、この支払い方法を使用する場合の違いを示します。

支払い方法として ACH ダイレクトデビットを有効にする

新しい Checkout セッションを作成する際は、以下を行う必要があります。

  1. us_bank_account を payment_method_types のリストに追加します。
  2. すべての line_items が usd 通貨を使用していることを確認します。
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=payment \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=us_bank_account \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][quantity]"=1 \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/cancel"

Financial Connections 手数料の詳細については、料金体系の詳細をご覧ください。

デフォルトでは、銀行口座の支払い情報の収集では、手動の口座番号入力と少額入金の確認のフォールバックオプションを使用し、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_session の値を含めることをお勧めします。

注文のフルフィルメントを実行する

決済の受け付け後に、注文のフルフィルメントを履行する方法を説明します。

連携をテストする

Financial Connections を使用して即時確認を行うシナリオをテストする方法をご紹介します。

サンドボックスで取引メールを送信する

銀行口座の詳細を収集し、同意書を受け付けたら、サンドボックスで同意書の確認メールと少額入金の確認メールを送信します。

ドメインが {domain} でユーザー名が {username} の場合、{username}+test_email@{domain} というメール形式を使用してテスト取引メールを送信してください。

たとえば、ドメインが example.com でユーザー名が info の場合、ACH Direct Debit 決済のテストには info+test_email@example.com という形式を使用します。この形式により、メールが正しくルーティングされます。+test_email サフィックスを含めない場合、メールは送信されません。

よくある間違い

テスト中にこれらのメールをトリガーするには、Stripe の本番環境利用の申請を行う必要があります。

テスト用口座番号

Stripe では、手動入力の銀行口座の組み込みが本番環境に移行する準備が整ったかどうかを確認するため、テスト用の口座番号と対応するトークンをいくつか用意しています。

口座番号トークン金融番号動作
000123456789pm_usBankAccount_success110000000支払いは成功します。
000111111113pm_usBankAccount_accountClosed110000000口座が解約済みであるため、支払いは失敗します。
000000004954pm_usBankAccount_riskLevelHighest110000000この支払いは、不正利用のリスクが高いため、Radar によってブロックされています。
000111111116pm_usBankAccount_noAccount110000000口座が見つからないため、支払いは失敗します。
000222222227pm_usBankAccount_insufficientFunds110000000残高不足のため、支払いは失敗します。
000333333335pm_usBankAccount_debitNotAuthorized110000000引き落としがオーソリされていないため、支払いは失敗します。
000444444440pm_usBankAccount_invalidCurrency110000000通貨が無効であるため、支払いは失敗します。
000666666661pm_usBankAccount_failMicrodeposits110000000支払いで少額入金の送金が失敗します。
000555555559pm_usBankAccount_dispute110000000支払いによって不審請求の申請が開始されています。
000000000009pm_usBankAccount_processing110000000支払いは無期限に処理中のままになります。これは PaymentIntent のキャンセルをテストするのに便利です。
000777777771pm_usBankAccount_weeklyLimitExceeded110000000支払い額がアカウントの週次支払い額の上限を超えているため、支払いが失敗しました。

テスト取引を完了する前に、自動的に支払いに成功または失敗するテスト用のすべての口座を確認する必要があります。確認するには、下記の少額入金のテスト用の金額または明細書表記コードを使用します。

少額入金の金額と明細書表記コードをテストする

さまざまなシナリオを再現するために、これらの少額入金の金額「または」明細書表記コードの値 0.01 を使用します。

少額入金の金額明細書表記コードの値 0.01シナリオ
32 および 45SM11AAアカウントの確認をシミュレーションします。
10 および 11SM33CC許容された確認回数の超過をシミュレーションします。
40 および 41SM44DD少額入金のタイムアウトをシミュレーションします。

売上処理の動作をテストする

テスト取引は即座に売上として処理され、利用可能なテスト残高に追加されます。この動作は、利用可能な残高で取引が売上として処理されるまでに数日かかることがある、本番環境とは異なります。

その他の考慮事項

少額入金確認の失敗

銀行口座で少額入金による確認が進行中のときに、顧客は次の 3 つの理由で確認に失敗することがあります。

  • 少額入金を顧客の銀行口座に送金できなかった (これは通常、銀行口座が解約済みまたは使用不可であるか、銀行口座番号が不正確である場合に発生します)。
  • 顧客が口座の確認に 10 回失敗した。この試行回数の上限を超えると、その銀行口座は確認することも、再利用することもできなくなります。
  • 顧客が 10 日以内に銀行口座を確認しなかった。

これらのいずれかの理由で銀行口座の確認に失敗した場合、checkout.session.async_payment_failed イベントを処理して、新たに注文を行うよう顧客に連絡できます。

オプション即時の確認のみ

デフォルトでは、ACH ダイレクトデビットによる支払いで、顧客は銀行口座の即時確認、または少額入金を使用できます。オプションとして、Checkout セッションを作成するときに payment_method_options[us_bank_account][verification_method] パラメーターを使用して、銀行口座の即時確認のみを要求するように設定することもできます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d mode=payment \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=us_bank_account \ -d "payment_method_options[us_bank_account][verification_method]"=instant \ -d "payment_method_options[us_bank_account][financial_connections][permissions][0]"=payment_method \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][quantity]"=1 \ --data-urlencode success_url="https://example.com/success" \ --data-urlencode cancel_url="https://example.com/cancel"

オプションFinancial Connections 銀行口座のデータにアクセスする

PaymentIntent の作成時に、追加のデータ権限をリクエストする場合にのみ、Financial Connections データにアクセスできます。

顧客が決済フローを完了すると、返される us_bank_account PaymentMethod には、Financial Connections アカウントを指す financial_connections_account ID が含まれます。この ID を使用して口座データにアクセスします。

よくある間違い

顧客が手動入力および少額入金によって関連付けた銀行口座には、Payment Method の financial_connections_account ID がありません。

Financial Connections アカウント ID を特定するには、Checkout セッションを取得して payment_intent.payment_method 属性を拡張します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/checkout/sessions/
{{SESSION_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"="payment_intent.payment_method"
{ "id": "{{CHECKOUT_SESSION_ID}}", "object": "checkout.session", // ... "payment_intent": { "id": "{{PAYMENT_INTENT_ID}}", "object": "payment_intent", // ... "payment_method": { "id": "{{PAYMENT_METHOD_ID}}", // ... "type": "us_bank_account", "us_bank_account": { "account_holder_type": "individual", "account_type": "checking", "bank_name": "TEST BANK", "financial_connections_account": "{{FINANCIAL_CONNECTIONS_ACCOUNT_ID}}", "fingerprint": "q9qchffggRjlX2tb", "last4": "6789", "routing_number": "110000000" } } // ... } }

追加の口座データを使用して、Financial Connections で ACH の実装を最適化する方法をご紹介します。

オプション不審請求の申請を解決する
サーバー側

一般的に、顧客は銀行を通じて、個人口座では引き落とし後 60 日以内、事業用口座では 2 営業日以内に ACH Direct Debit 決済に対する不審請求の申し立てを行うことができます。まれなケースとして、この申し立て期限を過ぎてからでも、引き落としに対して不審請求の申し立てを行える場合があります。

顧客が決済に対して不審請求を申請すると、Stripe は charge.dispute.closed Webhook イベントを送信し、PaymentMethod のオーソリは取り消されます。

まれに、PaymentIntent が succeeded に変わった後に、Stripe が銀行から ACH の失敗を受け取ることがあります。この場合、Stripe は以下の reason で不審請求の申請を作成します。

  • insufficient_funds
  • incorrect_account_details
  • bank_can't_process

この場合、Stripe は失敗の手数料を請求します。

この PaymentMethod を再利用する今後の決済では、次のエラーが返されます。

{ "error": { "message": "This PaymentIntent requires a mandate, but no existing mandate was found. Collect mandate acceptance from the customer and try again, providing acceptance data in the mandate_data parameter.", "payment_intent": { ... } "type": "invalid_request_error" } }

このエラーには、requires_confirmation の状態の PaymentIntent が含まれています。決済を続けるには、以下を行う必要があります。

  1. 今後の決済で不審請求が申請されないように、顧客の不審請求の申請を解決します。
  2. 顧客からの承認をもう一度確認します。

支払いの承認を確認するには、Stripe.js を使用してオンラインで顧客から同意書の承認を収集するか、Stripe API を使用してオフラインで確認します。

注意

顧客が同じ銀行口座からの複数の支払いに対して不審請求を申請する場合、Stripe は該当の銀行口座をブロックします。解決策については、Stripe サポートにお問い合わせください。

Command Line
cURL
No results
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "mandate_data[customer_acceptance][type]"=offline

オプション支払いの参照情報

支払い参照番号は銀行で生成され、これを使用して銀行口座の所有者は銀行で資金を確認できます。支払いが成功すると、ダッシュボードと Charge オブジェクト内に支払い参照番号が表示されます。

支払いの状態支払いの参照値
保留中利用不可
失敗利用不可
成功利用可能 (091000015001234 など)

また、charge.succeeded Webhook を受け取ったら、payment_method_details の内容を確認して、payment_reference を見つけます。

次のイベントの例は、成功した ACH 支払いと支払い参照番号を示しています。

{ "id": "{{EVENT_ID}}", "object": "event", // omitted some fields in the example "type": "charge.succeeded", "data": { "object": { "id": "{{PAYMENT_ID}}", "object": "charge", //... "paid": true, "payment_intent": "{{PAYMENT_INTENT_ID}}", "payment_method": "{{PAYMENT_METHOD_ID}}", "payment_method_details": { "type": "us_bank_account", "us_bank_account": { "account_holder_type": "individual", "account_type": "checking", "bank_name": "TEST BANK", "fingerprint": "Ih3foEnRvLXShyfB", "last4": "1000", "payment_reference": "091000015001234", "routing_number": "110000000" } } // ... } } }

destination_details の内容を表示して、返金された ACH 支払いに関連付けられた refund reference を見つけます。

次のイベントの例は、返金参照番号が指定された、成功した ACH 返金のレンダリングを示しています。 返金 の詳細をご覧ください。

{ "id": "{{EVENT_ID}}", "object": "event", "type": "charge.refund.updated", "data": { "object": { "id": "{{REFUND_ID}}", "object": "refund", //... "payment_intent": "{{PAYMENT_INTENT_ID}}", "destination_details": { "type": "us_bank_transfer", "us_bank_transfer": { "reference": "091000015001111", "reference_status": "available" } } // ... } } }

オプション顧客の振替日を設定する
サーバー側

予定期日を指定して、Stripe が顧客の銀行口座から引き落としを行う日付を制御できます。予定期日は、現在の日付から 3~15 日以内の日付に指定しなければなりません。

目標期日は、売上が顧客の口座を離れる日を期日指定します。設定日の 3 営業日前までの目標期日を設定された PaymentIntent をキャンセルできます。

次のいずれかの条件を満たす予定期日は、翌営業日まで引き落としが延期されます。

  • 週末、祝日、またはその他の非営業日に当たる予定期日。
  • 3 営業日以内に到来する予定期日。

このパラメーターは、ベストエフォート方式で機能します。顧客の銀行は、祝日の関係やその他の理由により、異なる日付に引き落としを処理する場合があります。

注意

target date (目標期日) を使用する場合は、認証方法を microdeposits に設定することはできません。これは、確認プロセスが目標期日よりも長くなり、支払いの到着が予定よりも遅れる可能性があるためです。

参照情報

  • 将来の決済に備えて ACH ダイレクトデビットのプリオーソリデビットの詳細を保存する
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 早期アクセスプログラムにご参加ください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc