コンテンツにスキップ
アカウント作成/サインイン
Stripe ドキュメントのロゴ
/
AI に質問
アカウントを作成サインイン
導入方法
決済管理
売上管理
プラットフォームとマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要決済を受け付ける構築済みのシステムをアップグレード
オンライン決済
概要ユースケースを見つける
Payment Links を使用する
事前構築済みの決済ページを使用する
Elements を使用したカスタム統合の構築
アプリ内実装を構築
Managed Payments を使用する
継続課金
対面決済
Terminal
決済手段
決済手段を追加
    概要
    支払い方法の導入オプション
    ダッシュボードで決済手段を管理
    決済手段のタイプ
    カード
    Stripe 残高で支払う
    ステーブルコインでの支払い
    銀行口座引き落とし
      ACH ダイレクトデビット
      Bacs ダイレクトデビット
      カナダのプレオーソリデビット
      オーストラリアの BECS ダイレクトデビット
      ニュージーランドBECS ダイレクトデビット
      SEPA ダイレクトデビット
        決済を受け付ける
        銀行情報の保存
    銀行へのリダイレクト
    銀行振込
    クレジットトランスファー (Sources)
    後払い
    リアルタイム決済
    店舗支払い
    ウォレット
    国ごとに現地の決済手段を有効化
    カスタムの決済手段
決済手段を管理
Link による購入の迅速化
決済業務
アナリティクス
残高と売上処理にかかる期間
コンプライアンスとセキュリティ
通貨
支払い拒否
不審請求の申請
不正利用防止
Radar の不正防止
入金
領収書返金とキャンセル
高度な連携システム
カスタムの決済フロー
柔軟なアクワイアリング
オフセッション決済
複数の決済代行業者のオーケストレーション
決済以外の機能
会社を設立する
暗号資産
エージェント型コマース
M2M 決済
Financial Connections
Climate
本人確認
アメリカ
日本語
ホーム決済管理Add payment methodsBank debitsSEPA Direct Debit

メモ

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

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

SEPA ダイレクトデビット支払いの受け付けについて説明します。

メモ

Stripe の債権者 ID を使用して SEPA ダイレクトデビット支払いを処理する場合は、構築済みの Checkout ページを使用して、SEPA ダイレクトデビットの同意書を収集することをお勧めします。

Web サイトでの SEPA ダイレクトデビット支払いの受け付けは、支払いを追跡するオブジェクトの作成、支払い方法に関する情報と同意書承認の収集、および支払いを処理するための Stripe への支払いの送信で構成されます。Stripe はこの PaymentIntent と呼ばれる支払いオブジェクトを使用して、支払いが完了するまで、支払いのすべての状態の追跡と処理を行います。

顧客が Bancontact または iDEAL で銀行口座情報を認証できるようにすることで SEPA ダイレクトデビット PaymentMethod を設定することもできます。

Stripe を設定する
サーバ側

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

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

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Customer を作成または取得する
サーバ側

以降の支払いに SEPA ダイレクトデビットの口座を再利用するには、その口座を Customer に関連付ける必要があります。

顧客がお客様のビジネスでアカウントを作成する際、Customer オブジェクトを作成してください。この Customer オブジェクトの ID を、顧客を表す独自の内部表記と関連付けることで、保存した支払い方法の詳細を後で取得して使用することができます。

新しい Customer を作成するか、または既存の Customer を取得して、この支払いに関連付けます。サーバに以下のコードを含め、新しい Customer を作成します。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

PaymentIntent を作成する
サーバ側

PaymentIntent は、顧客から決済を収集する意図を表すオブジェクトであり、決済プロセスのライフサイクルの各段階を追跡します。まず、サーバーで PaymentIntent を作成し、収集する金額と eur 通貨を指定します (SEPA ダイレクトデビットは他の通貨に対応していません)。すでに Payment Intents API を使用した統合がある場合は、PaymentIntent の 決済手段タイプのリストに sepa_debit を追加します。Customer の id を指定します。

再利用するために SEPA ダイレクトデビットの口座を保存するには、setup_future_usage パラメーターを off_session に設定します。SEPA ダイレクトデビットはこのパラメーターの値として off_session のみを受け付けます。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=eur \ -d setup_future_usage=off_session \ -d customer=
"{{CUSTOMER_ID}}"
\ -d "payment_method_types[]"=sepa_debit \ -d "metadata[integration_check]"=sepa_debit_accept_a_payment

支払い方法の詳細と同意書承認を収集する
クライアント側

Stripe Elements を使用してクライアントで支払い情報を収集する準備ができました。Elements は、支払いの詳細を収集するための構築済み UI コンポーネントのセットです。

Stripe Element には、HTTPS 接続を介して支払い情報を Stripe に安全に送信する iframe が含まれています。組み込みを機能させるには、決済ページのアドレスの先頭を http:// ではなく https:// にする必要があります。

HTTPS を使用せずに実装をテストできます。本番環境で決済を受け付ける準備が整ったら、HTTPS を有効化します。

Stripe Elements を設定する

Stripe Elements は Stripe.js の機能として自動的に使用できるようになります。支払いページに Stripe.js スクリプトを含めるには、HTML ファイルの head にこのスクリプトを追加します。常に js.stripe.com から Stripe.js を直接読み込むことにより、PCI への準拠が維持されます。スクリプトをバンドルに含めたり、そのコピーを自身でホストすることがないようにしてください。

submit_payment.html
<head> <title>Submit Payment</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>

支払い確認ページで次の JavaScript を使用して Elements のインスタンスを作成します。Payment Element が SEPA ダイレクトデビット決済詳細情報を収集できるように、モード、通貨、金額を を渡してください:

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const options = { mode: 'payment', currency: 'eur', amount: 1099, // Automatically save the payment method for future payments setup_future_usage: 'off_session', }; const elements = stripe.elements(options);

Payment Element を追加する

Payment Element には、決済フォーム内に配置する場所が必要です。決済フォームに一意の ID を持つ空の DOM ノード (コンテナ) を作成します。SEPA ダイレクトデビットが有効になると、Payment Element は SEPA ダイレクトデビットフォームと同意書の承認テキストを自動的に表示します:

submit_payment.html
<form action="/charge" method="post" id="payment-form"> <div id="payment-element"> <!-- The Payment Element will be inserted here. --> </div> <!-- Add the client_secret from the PaymentIntent as a data attribute --> <button id="submit-button" data-secret="{{CLIENT_SECRET}}">Submit Payment</button> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> </form>

フォームが読み込まれたら、Payment Element の インスタンスを作成 し、それを Element コンテナにマウントします。Payment Element は顧客の名前、メール、IBAN を自動的に収集し、同意書の承認テキストを表示します:

// Create and mount the Payment Element const paymentElement = elements.create('payment'); paymentElement.mount('#payment-element');

Stripe に支払いを送信する
クライアント側

PaymentIntent オブジェクト全体をクライアントに送信するのではなく、ステップ 3 の client secret を使用します。これは、Stripe API リクエストを認証する API キーとは異なります。

それでも、client secret は支払いを完了できるため、慎重に扱う必要があります。記録したり、URL に埋め込んだり、その顧客以外に公開されることがないようにしてください。

ユーザーがフォームを送信したら、stripe.confirmPayment を使用して決済を完了します。Payment Element は顧客の名前、メール、IBAN を自動的に収集し、同意書の承認を処理します:

const form = document.getElementById('payment-form'); const submitButton = document.getElementById('submit-button'); const clientSecret = submitButton.dataset.secret; form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/complete', }, }); if (error) { // Show error to your customer (for example, payment details incomplete) const errorMessage = document.getElementById('error-message'); errorMessage.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. } });

PaymentIntent の成功を確認する

SEPA Direct Debit is a delayed notification payment method, so funds aren’t immediately available. When the payment has been submitted successfully, the PaymentIntent status is updated from requires_confirmation to processing. After the payment has succeeded, the PaymentIntent status is updated from processing to succeeded.

PaymentIntent のステータスが更新されると、以下のイベントが送信されます。

イベント説明次のステップ
payment_intent.processing顧客の支払いは、Stripe に正常に送信されました。開始された支払いの成功、または失敗の結果を待ちます。
payment_intent.succeeded顧客の決済が成功しました。顧客が購入した商品またはサービスのフルフィルメントを行います。
payment_intent.payment_failed顧客の支払いが拒否されました。顧客にメールまたはプッシュ通知で連絡し、別の決済手段をリクエストします。

支払いが成功したことを確認し、顧客に支払い完了を通知するには、Webhook を使用することをお勧めします。

setup_future_usage および customer が設定されているため、支払いが processing 状態になると、PaymentMethod が Customer オブジェクトに関連付けられることに注意してください。この関連付けは、支払いが最終的に成功するか、失敗するかには関係なく行われます。

組み込みをテストする

Stripe は、システムの本番環境への移行準備が整っているかを確認する際に使用できるテスト用の番号をいくつか用意しています。SEPA ダイレクトデビットを使用する Checkout システムをテストする際は、SEPA ダイレクトデビットのテスト用番号を使用できます。

IBAN をテストする

Payment Element でこれらのテスト用 IBAN を使用して、SEPA ダイレクトデビットの導入をテストします。Payment Element は IBAN を自動的に検証し、これらのテスト値のいずれかを入力すると同同意書を表示します。

アカウント番号トークン説明
IE29AIBK93115212345678pm_success_iePaymentIntent のステータスは、processing から succeeded に変化します。
IE24AIBK93115212345671pm_successDelayed_ieThe PaymentIntent status transitions from processing to succeeded after at least three minutes.
IE02AIBK93115212345679pm_failed_iePaymentIntent のステータスは、processing から requires_payment_method に変化します。
IE94AIBK93115212345672pm_failedDelayed_ieThe PaymentIntent status transitions from processing to requires_payment_method after at least three minutes.
IE51AIBK93115212345670pm_disputed_iePaymentIntent のステータスは、processing から succeeded に変化しますが、不審請求の申請が即座に作成されます。
IE10AIBK93115200343434pm_exceedsWeeklyVolumeLimit_ie支払金額がアカウントの週次支払い金額の上限を超えるため、支払いは charge_exceeds_source_limit エラーコードで失敗します。
IE69AIBK93115200121212pm_exceedsWeeklyTransactionLimit_ie支払い金額がアカウントの取引金額の上限を超えているため、支払いは charge_exceeds_weekly_limit エラーコードで失敗します。
IE10AIBK93115202222227pm_insufficientFunds_ie支払いは insufficient_funds エラーコードで失敗します。

メモ

Payment Element は、顧客のタイプに応じて IBAN およびその他の決済情報を自動的に検証します。エラーメッセージは Payment Element 内にインラインで表示されるため、検証を手動で処理する必要はありません。

オプション顧客の引き落とし日を設定する

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

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

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

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

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

オプションプレフィックスを使用して同意書参照番号をカスタマイズする

SEPA ダイレクトデビットの同意書参照番号をカスタマイズすると、同意書の識別をシンプルに行えます。これを行うには、オプションの payment_method_options.sepa_debit.mandate_options.reference_prefix 値を指定します。一意のシーケンスの先頭に reference_prefix を追加して、参照全体が一意のままになるようにします。

reference_prefix は以下の要件を満たしている必要があります。

  • 最大長: 12 文字
  • 数字または大文字で始める必要があります
  • 使用できる文字:
    • 大文字
    • 番号
    • スペース
    • 特殊文字: .、/、&、-、_
  • 先頭に STRIPE を付けることはできません。

プレフィックスには任意の区切り文字を含めます。デフォルトでは区切り文字は追加されません。末尾のスペースは、最大 1 スペースまでトリミングされます。有効な接頭辞を使用すると、結果の参照は常に 24 文字の長さになります。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d amount=100 \ -d "payment_method_types[]"=sepa_debit \ -d "payment_method_options[sepa_debit][mandate_options][reference_prefix]"=EX4MPL3-

生成される参照は EX4MPL3-19CNCI920C2M02O3 のようになります。

エラーコードメッセージ
invalid_sepa_mandate_reference_prefix_formatreference_prefix は最大 12 文字で、使用できるのは大文字、数字、スペース、および特殊文字 /、_、-、&、. のみです。先頭に STRIPE を付けることはできません。

参照情報

  • 今後の支払いのために SEPA ダイレクトデビットの詳細を保存する
  • Connect での支払い
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • Discord で Stripe の開発者とチャットしてください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM は llms.txt を参照してください。
  • Powered by Markdoc