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

注

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

ニュージーランドの BECS ダイレクトデビットによる決済を受け付ける

ニュージーランドの銀行口座引き落としによる決済を受け付けるカスタムの支払いフォームを構築します。

ページをコピー

ウェブサイトでのニュージーランドの BECS ダイレクトデビットによる決済の受け付けは、支払いを追跡するオブジェクトの作成、支払い方法に関する情報と同意書承認の収集、支払いを処理するための Stripe への支払いの送信で構成されます。

Stripe では、Payment Intent (支払いインテント) と呼ばれる決済オブジェクトを使用して、決済が完了するまでの状態のすべてを追跡および処理します。

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 を作成または取得する
サーバー側

以降の支払いに銀行口座を再利用するには、その口座を Customer に関連付けます。

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

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

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

PaymentIntent を作成する
サーバー側

PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトで、決済プロセスのライフサイクルの各段階を追跡します。

まず、サーバーで PaymentIntent を作成し、回収する金額と通貨 nzd を指定します。Payment Intents API を使用したシステムがすでにある場合は、PaymentIntent の支払い方法のタイプのリストに nz_bank_account を追加します。Customer の ID を指定します。

さらに、setup_future_usage パラメーターに値 off_session を指定して、将来の使用に備えてその支払い方法を Customer に保存します。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-05-28.basil; nz_bank_account_beta=v2" \ -d "payment_method_types[]"=nz_bank_account \ -d customer=
{{CUSTOMER_ID}}
\ -d amount=1099 \ -d currency=nzd \ -d setup_future_usage=off_session

返された PaymentIntent には、client secret が含まれています。これは、PaymentIntent オブジェクト全体を渡すことなく安全に支払いプロセスを完了するために、クライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。

client secret を取得する

PaymentIntent には、client secret が含まれています。これは、支払いプロセスを安全に完了するためにクライアント側で使用されます。client secret をクライアント側に渡す際は、いくつかの方法を使用できます。

ブラウザーの fetch 関数を使用して、サーバーのエンドポイントから client secret を取得します。この方法は、クライアント側が 1 ページのアプリケーションで、特に React などの最新のフロントエンドフレームワークで構築されている場合に最適です。client secret を処理するサーバーのエンドポイントを作成します。

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

その後、クライアント側で JavaScript を使用して client secret を取得します。

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

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

Stripe Elements を設定する

決済ページに Stripe.js スクリプトを含めるには、HTML ファイルの head にスクリプトを追加します。常に js.stripe.com から Stripe.js を直接読み込みます。スクリプトをバンドルに含めたり、そのコピーを自身でホストしたりしないでください。

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/v3/"></script> </head>

最初のパラメーターとして公開可能な API キーを渡し、さらに Elements にアクセスするための nz_bank_account_beta_2 ベータフラグを渡して、Stripe オブジェクトのインスタンスを作成します。

checkout.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
, { betas: ['nz_bank_account_beta_2'], apiVersion: "2025-05-28.basil;nz_bank_account_beta=v2" });

Payment Element を決済ページに追加する

決済ページで、Payment Element がレンダリングできるように、一意の ID を持つ空の DOM ノードを作成します。

checkout.html
<form id="payment-form"> <h3>Payment</h3> <div id="payment-element"></div> <button id="submit">Submit</button> </form>

上記のフォームの読み込みが完了したら、新しい Elements グループを作成し、前のステップの client secret を設定として渡します。appearance オプションを渡して、サイトのデザインに合わせて Elements をカスタマイズすることもできます。

次に、Payment Element のインスタンスを作成し、対応する DOM ノードにマウントします。

checkout.js
// Customize the appearance of Elements using the Appearance API. const appearance = { /* ... */ }; // Create an elements group from the Stripe instance, passing the clientSecret (obtained in step 2) and appearance (optional). const elements = stripe.elements({clientSecret, appearance}); // Create Payment Element instance. const paymentElement = elements.create("payment"); // Mount the Payment Element to its corresponding DOM node. paymentElement.mount("#payment-element");

Payment Element によって動的なフォームが表示され、顧客はここで決済手段タイプを選択できます。このフォームでは、顧客が選択した決済手段タイプに必要な支払いの詳細のすべてが、自動的に収集されます。ニュージーランドの BECS ダイレクトデビットによる支払いでは、顧客の氏名、メールアドレス、銀行口座番号がこれに含まれます。

同意書承認

また、Payment Element はニュージーランドの BECS ダイレクトデビットサービスの利用規約も顧客に表示して、これらの規約への顧客の同意を収集します。他に必要な操作はありません。

Payment Element を使用しない場合は、これらの利用規約を別途顧客に表示して、顧客の同意を確認する必要があります。

注

銀行口座情報を提供し、この支払いを確定することにより、Stripe New Zealand Limited (オーソリコード 3143978) が、この許可に従って Rocket Rides (“Stripe”, “弊社” or “加盟店”) への口座引き落とし金額をお客様の口座から引き落とすことを認めるものとします。

この許可が以下に従うことに同意するものとします。

  • 口座に関連するご利用の銀行の利用規約、および
  • the Direct Debit Service Terms and Conditions

また、お客様が上記の銀行口座の個人名義人または委任された署名者であり、この銀行口座を単独で操作する権限を持つことを認めるものとします。

この口座引き落としの許可の確認後 5 営業日以内に、Stripe からの確認メールが送信されます。

Stripe からのリクエストがあった場合は、同意書の記録を速やかに提供する必要があります。

オプションデザインをカスタマイズする
クライアント側

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

stripe.confirmPayment を使用して銀行口座の詳細を収集し、PaymentMethod を作成して PaymentIntent に関連付けます。

その他の決済手段タイプによっては、顧客をまず銀行のオーソリページなどの中間サイトにリダイレクトしてから、return_url にリダイレクトする場合があります。支払いの完了後に Stripe が顧客をリダイレクトする場所を指定するには、この関数に return_url を指定します。

ニュージーランドの BECS ダイレクトデビットにはリダイレクトが不要なので、redirect に return_url を指定する代わりに、if_required を設定することもできます。これにより、後でリダイレクトベースの決済手段を追加する場合にのみ、return_url が要求されるようになります。

script.js
confirmationForm.addEventListener('submit', (ev) => { ev.preventDefault(); stripe.confirmPayment({elements, redirect: "if_required"}) .then(({paymentIntent, error}) => { if (error) { console.error(error.message); // The confirmation failed for some reason. } else if (paymentIntent.status === "requires_payment_method") { // Confirmation failed. Attempt again with a different payment method. } else if (paymentIntent.status === "processing") { // Confirmation succeeded! The account will be debited. // Display a message to the customer. } }); });

成功した場合、Stripe から processing ステータスで PaymentIntent オブジェクトが返されます。次のステップで、PaymentIntent の成功を確認する方法をご覧ください。

顧客への通知メール

PaymentIntent の確定に成功した後、同意書と収集した銀行口座の詳細を確認するメールを顧客に送信する必要があります。

さらに、今回を含めて回収されるそれぞれの支払いについて、遅くとも引き落としを行う日までに、引き落とし日と金額を記載したメール通知を顧客に送信する必要があります。

Stripe はデフォルトでこれらのメールの送信を行いますが、カスタム通知を送信することもできます。

PaymentIntent の成功を確認する
サーバー側

ニュージーランドの BECS ダイレクトデビットは、通知遅延型の支払い方法です。また、遅くとも引き落とし日までに銀行口座からの引き落としについて顧客に通知する必要があります。

その後 3 営業日以内に PaymentIntent の成功または失敗が通知されます。支払いに成功すると、PaymentIntent のステータスは processing から succeeded に変わります。

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

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

Webhook を使用して支払いが成功したことを確認し、顧客に支払い完了を通知することをお勧めします。Stripe ダッシュボードでイベントを表示することもできます。

将来の決済を受け付ける
サーバー側

Customer (顧客) を指定し、setup_future_usage パラメーターが off_session に設定された PaymentIntent が成功すると、PaymentMethod が Customer に関連付けられます。これらを使用することで、将来の支払いを開始する際に、顧客に銀行口座の再入力を求める必要がなくなります。

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -H "Stripe-Version: 2025-05-28.basil; nz_bank_account_beta=v2" \ -d "payment_method_types[]"=nz_bank_account \ -d customer=
{{CUSTOMER_ID}}
\ -d payment_method=
{{PAYMENT_METHOD_ID}}
\ -d confirm=true \ -d amount=100 \ -d currency=nzd \ -d off_session=true

組み込みをテストする

テスト用口座番号

In a sandbox, you can use the following parameters to simulate specific errors.

銀行コード 11、支店コード 0000 と、次のいずれかの口座番号を使用してフォームをテストします。

口座番号説明
0000000010PaymentIntent のステータスは、processing から succeeded へと変化します。同意書のステータスは引き続き active です。
2222222027PaymentIntent のステータスは、processing から requires_payment_method に変わり、insufficient_funds エラーコードが返されます。同意書のステータスは引き続き active です。
8888888000PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます。同意書のステータスは引き続き active です。
1111111016PaymentIntent のステータスは、processing から requires_payment_method に変わり、no_account エラーコードが返されます。同意書のステータスは inactive になります。
5555555059PaymentIntent のステータスは、processing から requires_payment_method に変わり、debit_not_authorized エラーコードが返されます。同意書のステータスは inactive になります。
9999999000PaymentIntent のステータスは、processing に変わり、そのまま維持されます。ステータスの移行を進めるには、以下に記述する API リクエストを使用します。

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

このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc