コンテンツにスキップ
アカウントを作成
または
サインイン
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 debitsAustralia BECS Direct Debit

注

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

オーストラリアの BECS Direct Debit 支払いを受け付ける

オーストラリアの BECS Direct Debit 支払いを受け付ける方法をご紹介します。

ページをコピー

仕組み

この決済手段についての詳細は、BECS ダイレクトデビットの概要をご覧ください。

オーストラリアの Stripe ユーザーは、Payment Element と Payment Intent を使用して、オーストラリアの銀行口座を持つ顧客からの BECS ダイレクトデビットによる決済を開始することができます。

注意

このセクションにはレガシープロダクトについてのコンテンツが含まれています。最新の導入パスについては、代わりに決済を受け付けるのガイドを使用する必要があります。Stripe はこのプロダクトを引き続きサポートしていますが、プロダクトが非推奨になった場合にはサポートが終了する可能性があります。

Stripe の事前構築された UI コンポーネントである Stripe Elements を使用して、機密データを扱うことなく銀行口座の詳細を安全に収集できる決済フォームを作成します。ウェブサイトでの BECS ダイレクトデビット支払いの受け付けは、支払いを追跡するオブジェクトの作成、決済手段に関する情報と同意書承認の収集、および支払いを処理するための Stripe への支払いの送信で構成されます。Stripe はこの支払いオブジェクト、PaymentIntent を使用して、支払いが完了するまでの支払いのすべての状態を追跡および処理します。

オーストラリアの Stripe ユーザーは、Australia Bank Account Element と PaymentIntent (支払いインテント) を使用して、オーストラリアの銀行口座を持つ顧客から BECS ダイレクトデビット支払いを受け付けることができます。

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

以降の支払いに BECS ダイレクトデビットの口座を再利用するには、その口座を 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 は、支払いプロセスのライフサイクルの各段階を追跡します。最初に、サーバーで PaymentIntent を作成し、回収する金額と aud 通貨を指定します (BECS ダイレクトデビットは他の通貨には対応していません)。すでに Payment Intents API を使用したシステムがある場合は、au_becs_debit を PaymentIntent の決済手段タイプのリストに追加します。

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

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "setup_future_usage"="off_session" \ -d "currency"="aud" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "payment_method_types[]"="au_becs_debit"

PaymentIntent の作成後に、Stripe は client_secret プロパティを含む PaymentIntent (支払いインテント) オブジェクトを返します。client secret をクライアント側に渡します。

警告

client secret を使用して、PaymentIntent で指定された金額を顧客に請求します。client secret は、ログに記録したり、URL に埋め込んだり、顧客以外の人に公開したりしないでください。

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

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/v3/"></script> </head>

次の JavaScript を使用して、お客様の決済ページに Elements のインスタンスを作成します。

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements();

ダイレクトデビットのリクエスト

お客様が BECS ダイレクトデビット支払いを作成する前に、顧客がダイレクトデビットリクエスト利用規約に同意する必要があります。顧客は入力を完了したダイレクトデビットリクエスト (DDR) を送信することで、この規約に同意したことになります。この承認により、お客様は顧客の口座から引き落としを行う同意書を得られます。Mandate は支払い方法へのデビットが許可されたことの記録です。

同意書にオンラインで同意してもらうために、フォームを作成して必要な情報を収集できます。フォームは HTTPS で提供し、以下の情報を取得します。

情報説明
口座名義人名口座名義人の氏名
BSB 番号銀行口座の Bank-State-Branch 番号 (例: 123-456)
口座番号銀行口座番号 (例: 87654321)

ダイレクトデビットリクエストを収集する際には、BECS ダイレクトデビット規約に従います。決済フォームの一環として次のことを行います。

  • Stripe の DDR 利用規約の正確な規約をフォーム上にインラインで、またはフォームからリンクしたページに表示し、それが「DDR 利用規約」であると明記します。
  • 以下に示す許可のための標準的なテキストを表示し、顧客に BECS DDR に同意してもらいます。顧客が同意すると、顧客の銀行口座からの BECS ダイレクトデビット支払いが許可されたことになります。

注

銀行口座情報を提供し、この支払いを確認することにより、お客様はこのダイレクトデビットのリクエストとダイレクトデビットリクエスト利用規約に同意し、Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct Debit User ID number 507156 (以下「Stripe」) が、 (「加盟店」) に代わって、加盟店から別途通知された金額について、バルク電子決済システム (BECS) を使用してお客様の口座から引き落としを行うことを許可するものとします。また、お客様が上記の口座の名義人または承認された署名者であることを認めるものとします。

同意された同意書の詳細情報は、PaymentMethod を設定する際、または PaymentIntent を確認する際に生成されます。この同意書 (同意された DDR とこれに伴う DDR 利用規約) はいつでも顧客に提示できる必要があります。これは印刷物でも、変更不可の電子的なコピー (メールなど) でもかまいません。Stripe はお客様が利用できるように、この利用規約を PaymentMethod にリンクされた Mandate オブジェクトの url プロパティでホストします。

オーストラリアの銀行口座 Element を追加および設定する

Australia Bank Account Element は、BSB 番号と口座番号の両方の収集と検証に役立ちます。決済フォームに、一意の ID を指定して空の DOM ノード (コンテナー) を作成し、この Element を含めてください。また、顧客はダイレクトデビットリクエスト利用規約を読んで同意する必要もあります。

submit_payment.html
HTML
<form action="/charge" method="post" id="payment-form"> <div class="form-row inline"> <div class="col"> <label for="accountholder-name"> Name </label> <input id="accountholder-name" name="accountholder-name" placeholder="John Smith" required /> </div> <div class="col"> <label for="email"> Email Address </label> <input id="email" name="email" type="email" placeholder="john.smith@example.com" required /> </div> </div> <div class="form-row"> <!-- Using a label with a for attribute that matches the ID of the Element container enables the Element to automatically gain focus when the customer clicks on the label. --> <label for="au-bank-account-element"> Bank Account </label> <div id="au-bank-account-element"> <!-- A Stripe Element will be inserted here. --> </div> </div> <!-- Used to display bank (branch) name associated with the entered BSB --> <div id="bank-name"></div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> <!-- Display mandate acceptance text. --> <div class="col" id="mandate-acceptance"> By providing your bank account details and confirming this payment, you agree to this Direct Debit Request and the <a href="stripe.com/au-becs-dd-service-agreement/legal">Direct Debit Request service agreement</a>, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct Debit User ID number 507156 (“Stripe”) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of Rocket Rides (the "Merchant") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an authorised signatory on the account listed above. </div> <!-- Add the client_secret from the PaymentIntent as a data attribute --> <button id="submit-button" data-secret="{{CLIENT_SECRET}}">Confirm Payment</button> </form>

フォームが読み込まれるときに、次のように、Australia Bank Account Element のインスタンスを作成し、それを Element コンテナーにマウントできます。

// Custom styling can be passed to options when creating an Element const style = { base: { color: '#32325d', fontSize: '16px', '::placeholder': { color: '#aab7c4' }, ':-webkit-autofill': { color: '#32325d', }, }, invalid: { color: '#fa755a', iconColor: '#fa755a', ':-webkit-autofill': { color: '#fa755a', }, } }; const options = { style: style, disabled: false, hideIcon: false, iconStyle: "default", // or "solid" } // Create an instance of the auBankAccount Element. const auBankAccount = elements.create('auBankAccount', options); // Add an instance of the auBankAccount Element into // the `au-bank-account-element` <div>. auBankAccount.mount('#au-bank-account-element');

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

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

ユーザーがフォームを送信したら、stripe.confirmAuBecsDebitPayment を使用して、同意書の収集と支払いの完了の両方を行います。BECS ダイレクトデビットの PaymentMethod を作成するには、payment_method パラメーターの billing_details プロパティに顧客のメールアドレスと口座名義人を含める必要があります。

const form = document.getElementById('payment-form'); const accountholderName = document.getElementById('accountholder-name'); const email = document.getElementById('email'); const submitButton = document.getElementById('submit-button'); const clientSecret = submitButton.dataset.secret; form.addEventListener('submit', (event) => { event.preventDefault(); stripe.confirmAuBecsDebitPayment( clientSecret, { payment_method: { au_becs_debit: auBankAccount, billing_details: { name: accountholderName.value, email: email.value } } } ); });

PaymentIntent を確定した後、Mandate (同意書) オブジェクトから取得した同意書の URL を顧客に伝える必要があります。また顧客に同意書が確定したことを伝える際には、下記の詳細情報を含めることを推奨します。

  • ダイレクトデビットの準備が整ったことを示す明確な確認メッセージ

  • 口座から引き落とされるたびに顧客の銀行明細書に表示されるビジネス名

  • 支払い金額とスケジュール (該当する場合)

  • 生成された DDR 同意書 URL へのリンク

    Mandate​ オブジェクトの ID には、PaymentIntent の latest_charge の the payment_method_details から、PaymentIntent を取得することでアクセスできます。

API バージョン 2022-08-01 以前のユーザー:

Mandate オブジェクトの ID は、PaymentIntent (確定後に送信される payment_intent.processing​ イベントに含まれる) の Charge (支払い) オブジェクトの payment_method_details からアクセスできますが、取得することもできます。

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

BECS Direct Debit is a delayed notification payment method, which means that funds aren’t immediately available. A BECS Direct Debit PaymentIntent typically remains in a processing state for 2 business days after submission to the BECS network. This submission happens once per day. Once the payment succeeds, the associated PaymentIntent status updates from processing to succeeded.

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

イベント説明次のステップ
payment_intent.processing顧客の支払いは、Stripe に正常に送信されました。開始された支払いが成功するか、失敗するかの結果を待ちます。
payment_intent.succeeded顧客の決済が成功しました。購入された商品またはサービスのフルフィルメントを行います。
payment_intent.payment_failed顧客の支払いが拒否されました。Contact the customer through email or push notification and request another payment method.

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

ダイレクトデビットの試行が失敗すると、Stripe は、PaymentIntent オブジェクトが含まれた payment_intent.payment_failed イベントを送信します。PaymentIntent の last_payment_error 属性には、失敗の詳細を説明する code と message が含まれます。

失敗は、失敗した PaymentIntent に関連付けられた同意書について一時的なものであることも、最終的なものであることもあります。最終的な失敗である場合には、さらなる失敗の費用発生を回避するため、Stripe は同意書を取り消します。この状況が発生し、顧客に支払いをしてもらう必要がある場合には、お客様の責任で顧客に連絡し、銀行口座情報を再度収集して新しい同意書を改めて確立する必要があります。

以下の失敗コードが返された場合、Stripe は同意書のステータスを以下のように更新します。

失敗コード説明同意書のステータス
debit_not_authorized口座からの引き落としの制限または禁止により永続的なエラーが発生しました。顧客に連絡してください。inactive
account_closed口座が解約されたため永続的なエラーが発生しました。顧客に連絡してください。inactive
no_account指定された銀行情報に該当する口座が存在しないため、永続的なエラーが発生しました。顧客に連絡してください。inactive
refer_to_customer一時的なエラー (残高不足など) が発生しました。新しい同意書を収集せずに引き落としを再試行できます。active

Webhook を使用して支払いの成功または失敗を確認し、同意書が確立されて支払いが完了したか、または追加作業が必要かを顧客に通知することをお勧めします。

構築したシステムをテストする

テスト用の BSB 番号 000-000 と以下のいずれかのテストアカウント番号を confirmAuBecsDebitPayment リクエストで使用することで、お客様のフォームをテストできます。

BSB 番号口座番号説明
000-000000123456PaymentIntent のステータスは、processing から succeeded へと変化します。同意書のステータスは引き続き active です。
000-000900123456PaymentIntent のステータスは、processing から succeeded へと変化します (3 分の遅延あり)。同意書のステータスは引き続き active です。
000-000111111113PaymentIntent のステータスは、processing から requires_payment_method に変わり、account_closed エラーコードが返されます。同意書のステータスは inactive になります。
000-000111111116PaymentIntent のステータスは、processing から requires_payment_method に変わり、no_account エラーコードが返されます。同意書のステータスは inactive になります。
000-000222222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます。同意書のステータスは引き続き active です。
000-000922222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます (3 分の遅延あり)。同意書のステータスは引き続き active です。
000-000333333335PaymentIntent のステータスは、processing から requires_payment_method に変わり、debit_not_authorized エラーコードが返されます。同意書のステータスは inactive になります。
000-000666666660PaymentIntent のステータスは、processing から succeeded に変わりますが、不審請求の申請が直ちに作成されます。
000-000343434343The PaymentIntent fails with a charge_exceeds_source_limit error due to the payment amount causing the account to exceed its weekly payment volume limit.
000-000121212121The PaymentIntent fails with a charge_exceeds_transaction_limit error due to the payment amount exceeding the account’s transaction volume limit.

Using test account numbers triggers webhook events. In a sandbox, PaymentIntents succeed and fail immediately, and as a result, the respective payment_intent.succeeded and payment_intent.payment_failed events trigger immediately as well. In live mode, the webhooks get triggered with the same delays as those of their related PaymentIntent successes and failures.

オプションオーストラリアの銀行口座 Element を検証する
クライアント側

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

参照情報

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