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

注

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

Bacs ダイレクトデビットの銀行詳細を保存する

今後の Bacs ダイレクトデビット支払いに備えて、Checkout を使用して支払い方法の詳細を保存する方法を紹介します。

ページをコピー

Stripe Checkout を使用して、事前に Bacs ダイレクトデビット支払いの詳細を収集し、後から最終的な金額や支払い日を決定します。この機能が役立つ用途を紹介します。

  • 支払い方法をウォレットに保存して、以降の購入を効率化する。
  • サービスの提供後に追加料金を回収する。
  • サブスクリプションの無料トライアルを開始する。

Stripe を設定する
サーバ側

まず、Stripe アカウントが必要です。今すぐ登録してください。

アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Customer の作成
サーバ側

将来の支払いで Bacs ダイレクトデビットの支払い方法を再利用するには、この支払い方法を Customer に関連付ける必要があります。顧客がお客様のビジネスでアカウントを作成するときに Customer オブジェクトを作成し、その Customer オブジェクトの ID を顧客を表す独自の内部表現に関連付け、保存した支払い方法の詳細を後で使用できるようにします。既存の Customer オブジェクトがある場合は、このステップをスキップしてください。

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Checkout セッションを作成する
クライアント側
サーバ側

Stripe Checkout は、Bacs ダイレクトデビットのルールに準拠したオンラインの支払いページを提供します。

自社の Bacs ダイレクトデビットフォームを設計する場合は、営業チームにお問い合わせください。

ダイレクトデビットによる支払いを受け付ける前に、顧客は Stripe Checkout を介して銀行口座情報を提供し、口座からの引き落としを許可する必要があります (同意書とも呼ばれます)。

Web サイトに決済ボタンを追加し、サーバー側のエンドポイントを呼び出して Checkout セッションを作成します。

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

setup モードで Checkout セッションを作成して、必要な情報を収集します。Checkout セッションを作成したら、レスポンスで返された URL に顧客をリダイレクトします。

Command Line
curl
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="bacs_debit" \ -d mode=setup \ -d customer=
{{CUSTOMER_ID}}
\ -d success_url="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d cancel_url="https://example.com/cancel"

顧客は支払い方法の詳細を指定すると、success_url にリダイレクトされます。これはお客様のウェブサイト上にあり、支払い方法が正常に保存されたことを顧客に知らせるページです。上記の例のように、success_url に {CHECKOUT_SESSION_ID} テンプレート変数を含めて、成功ページでセッション ID を使用できるようにします。

顧客が支払い方法の詳細を提供せずに Checkout セッションでお客様のロゴをクリックすると、Checkout は、cancel_url に移動して、顧客をお客様の Web サイトにリダイレクトします。このページは通常、顧客が Stripe Checkout にリダイレクトされる前に表示していた Web サイトのページです。

注意

次に挙げる理由により、支払い開始の検出時には、success_url へのリダイレクトのみに依存しないでください。

  • 悪意を持つユーザが、支払いをせずに success_url に直接アクセスし、商品やサービスにアクセスできるようになる可能性があります。
  • 顧客が支払いの成功後に success_url に到達するとは限りません。リダイレクトが発生する前に、顧客がブラウザタブを閉じることがあります。

注

Bacs ダイレクトデビットのルールでは、支払い詳細を収集したときに、顧客にメール通知を送信することが義務付けられています。デフォルトでは、これらのメールは Stripe によって自動的に送信されます。独自の Bacs 通知を送信することも選択できます。

支払い方法を取得する
サーバ側

顧客が支払いの詳細を送信した後に、PaymentMethod (決済手段) オブジェクトを取得します。PaymentMethod は、顧客のbank account情報を保存して今後の支払いに利用できるようにします。PaymentMethod は、success_url を使用して同期的に取得することも、Webhook を使用して非同期的に取得することもできます。

顧客が支払いの成功後に必ず success_url に到達するとは限らないため (たとえば、リダイレクトが行われる前に顧客がブラウザータブを閉じることもあります)、PaymentMethod を同期的に取得するか非同期的に取得するかは、ドロップオフの許容度によって異なります。Webhook を使用すると、組み込みでこの種のドロップオフを防止できます。

Session オブジェクトを含む checkout.session.completed Webhook を処理します。詳細については、Webhook を設定するをご覧ください。以下は、checkout.session.completed レスポンスの例です。

{ "id": "evt_1Ep24XHssDVaQm2PpwS19Yt0", "object": "event", "api_version": "2019-03-14", "created": 1561420781, "data": { "object": { "id": "cs_test_MlZAaTXUMHjWZ7DcXjusJnDU4MxPalbtL5eYrmS2GKxqscDtpJq8QM0k", "object": "checkout.session", "billing_address_collection": null, "cancel_url": "https://example.com/cancel", "client_reference_id": null, "customer": null, "customer_email": null, "display_items": [], "mode": "setup", "setup_intent": "seti_1EzVO3HssDVaQm2PJjXHmLlM", "submit_type": null, "subscription": null, "success_url": "https://example.com/success" } }, "livemode": false, "pending_webhooks": 1, "request": { "id": null, "idempotency_key": null }, "type": "checkout.session.completed" }

Checkout セッションで作成された SetupIntent の ID である setup_intent キーの値を書き留めます。SetupIntent は、今後の支払いに利用できるように顧客のbank account情報を設定するために使用されるオブジェクトです。この ID を使用して SetupIntent オブジェクトを取得します。

Command Line
cURL
curl https://api.stripe.com/v1/setup_intents/seti_1EzVO3HssDVaQm2PJjXHmLlM \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

設定後のイベントを処理する
サーバ側

Checkout セッションが完了すると、支払い詳細が同意書として銀行に送信されます。

同意書は、収集後にいつでも変更される可能があります。同意書の変更が行われるのは、顧客が銀行に同意書の修正を指示した場合や、銀行自体が変更された場合 (たとえば、顧客が別の銀行に変更した場合など) などが考えられます。同意書が変更されると、Stripe は 以下のイベントを送信します。

イベント名説明支払いの受け付けが可能か
mandate.updated同意書が Bacs ネットワークによって拒否、キャンセル、または再度有効化された場合に発生します。mandate.status を確認し、同意書を引き続き使用できるかどうかを判断してください。はい (新しいステータスが active の場合)
payment_method.automatically_updated顧客の銀行口座詳細が変わった場合に発生します。はい

これらのイベントはダッシュボードでも確認できますが、Webhook を設定すると、プログラムで処理することができます。

組み込みをテストする

There are several test bank account numbers you can use in a sandbox to make sure this integration is ready.

銀行コード口座番号説明
10880000012345支払いが成功し、PaymentIntent が processing から succeeded に変化します。
10880090012345支払いが 3 分後に成功し、PaymentIntent が processing から succeeded に変化します。
10880033333335支払いが承認されますが、すぐに debit_not_authorized エラーコードによって失敗し、PaymentIntent が processing から requires_payment_method に変わります。同意書は inactive になり、この PaymentMethod を再び使用することはできません。
10880093333335支払いが debit_not_authorized エラーコードによって 3 分後に失敗し、PaymentIntent が processing から requires_payment_method に変化します。同意書は inactive になり、この PaymentMethod を再び使用することはできません。
10880022222227支払いが insufficient_funds エラーコードによって失敗し、PaymentIntent が processing から requires_payment_method に変化します。同意書は active のままで、この PaymentMethod は再使用が可能です。
10880092222227支払いが insufficient_funds エラーコードによって 3 分後に失敗し、PaymentIntent が processing から requires_payment_method に変化します。同意書は active のままで、この PaymentMethod は再使用が可能です。
10880055555559支払いが 3 分後に成功し、PaymentIntent が processing から succeeded に変わりますが、不審請求の申請が直ちに作成されます。
10880000033333支払い方法の作成は成功しますが、同意書が顧客の銀行によって拒否され、即座に inactive に変化します。
10880000044444Bacs ダイレクトデビットの設定を求めるリクエストが、口座番号が無効なため即座に失敗し、顧客は送信前に情報を更新するように求められます。支払いの詳細は収集されません。
10880034343434The payment fails with a charge_exceeds_source_limit failure code due to the payment amount causing the account to exceed its weekly payment volume limit.
10880012121212The payment fails with a charge_exceeds_weekly_limit failure code due to the payment amount exceeding the account’s transaction volume limit.

テストの実行には前述の任意の口座番号を使用できます。ただし、Bacs ダイレクトデビットによる支払いは処理に数日かかるため、3 分の遅延で動作するテスト用口座番号を使用して、本番環境の支払いの動作のシミュレーションをしやすくします。

注

By default, Stripe automatically sends emails to the customer when payment details are initially collected and each time a debit will be made on their account. These notifications aren’t sent in sandboxes.

支払い方法を将来の支払いに使用する
サーバ側

PaymentMethod を設定した後、PaymentIntent を作成して確定することで、将来の Bacs ダイレクトデビットによる支払いの受け付けが可能になります。

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="bacs_debit" \ -d payment_method=
{{PAYMENT_METHOD_ID}}
\ -d customer=
{{CUSTOMER_ID}}
\ -d confirm=true \ -d amount=100 \ -d currency=gbp
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc