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

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

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

Command Line
curl
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 "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/clover/stripe.js"></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 ダイレクトデビットユーザー ID 番号 507156 (「Stripe」) が加盟店との利用規約に基づき、(「加盟店」) に代わって一括電子決済システム (BECS) を通じてアカウントから決済を引き落とすことを承認します。上記の口座のアカウント所有者または権限のある署名者であることを証明します。

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

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

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

submit_payment.html
HTML
CSS
No results
<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 は、遅延通知型の決済手段であるため、資金はすぐには利用可能になりません。BECS Direct Debit の PaymentIntent は、通常、BECS ネットワークへの送信後から 2 営業日の間、処理中の状態が続きます。この送信は 1 日 1 回行われます。支払いが成功すると、関連付けられた PaymentIntent のステータスが processing から succeeded に更新されます。

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

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

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 番号 000000 と以下のいずれかのテストアカウント番号を confirmAuBecsDebitPayment リクエストで使用することで、フォームをテストできます。

BSB 番号口座番号説明
000000000123456PaymentIntent のステータスは、processing から succeeded へと変化します。同意書のステータスは引き続き active です。
000000900123456PaymentIntent のステータスは、processing から succeeded へと変化します (3 分の遅延あり)。同意書のステータスは引き続き active です。
000000111111113PaymentIntent のステータスは、processing から requires_payment_method に変わり、account_closed エラーコードが返されます。同意書のステータスは inactive になります。
000000111111116PaymentIntent のステータスは、processing から requires_payment_method に変わり、no_account エラーコードが返されます。同意書のステータスは inactive になります。
000000222222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます。同意書のステータスは引き続き active です。
000000922222227PaymentIntent のステータスは、processing から requires_payment_method に変わり、refer_to_customer エラーコードが返されます (3 分の遅延あり)。同意書のステータスは引き続き active です。
000000333333335PaymentIntent のステータスは、processing から requires_payment_method に変わり、debit_not_authorized エラーコードが返されます。同意書のステータスは inactive になります。
000000666666660PaymentIntent のステータスは、processing から succeeded に変わりますが、不審請求の申請が直ちに作成されます。
000000343434343PaymentIntent は、支払い金額が原因でアカウントの週次支払い金額の上限を超えてしまうため、charge_exceeds_source_limit エラーで失敗します。
000000121212121PaymentIntent は、支払い金額がアカウントの取引金額の上限を超えているため、charge_exceeds_transaction_limit エラーで失敗します。

テスト用口座番号を使用すると、Webhook イベントがトリガーされます。サンドボックスでは、PaymentIntents はすぐに成功および失敗し、結果としてそれぞれ payment_intent.succeeded イベントと payment_intent.payment_failed イベントもすぐにトリガーされます。本番環境では、Webhook は関連する PaymentIntent の成功および失敗と同様に、遅れてトリガーされます。

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

オーストラリアの銀行口座 Element はユーザの入力時にその内容を検証します。顧客が間違いを修正できるように、オーストラリアの銀行口座 Element で変更イベントをリッスンし、エラーを表示してください。

auBankAccount.on('change', (event) => { const displayError = document.getElementById('error-message'); if (event.error) { displayError.textContent = event.error.message; } else { displayError.textContent = ''; } });

変更イベントには、より充実したユーザー体験の構築に役立つパラメーターが他にも含まれています。詳細については、Stripe.js リファレンスを参照してください。

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

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

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

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

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

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

参照情報

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