Lewati ke konten
Buat akun
atau
Masuk
Logo Dokumen Stripe
/
Tanya AI
Buat akun
Masuk
Mulai
Pembayaran
Pendapatan
Platform dan situs belanja online
Manajemen uang
Sumber daya pengembang
Gambaran Umum
Tentang pembayaran Stripe
Upgrade integrasi Anda
Analitik pembayaran
Pembayaran online
Gambaran umumTemukan contoh penggunaan AndaManaged Payments
Gunakan Payment Links
Buat halaman checkout
Bangun integrasi lanjutan
Bangun integrasi dalam aplikasi
Metode Pembayaran
Tambahkan metode pembayaran
    Gambaran umum
    Opsi integrasi metode pembayaran
    Kelola metode pembayaran default di Dashboard
    Tipe metode pembayaran
    Kartu
    Bayar dengan saldo Stripe
    Kripto
    Debit bank
      ACH Direct Debit
      Debit Langsung Bacs
      Debit praotorisasi di Kanada
        Terima pembayaran
        Simpan detail bank
        Perjanjian mandat khusus
      Debit Langsung BECS Australia
      Debit Langsung BECS Selandia Baru
      Debit Langsung SEPA
    Halaman pembayaran bank
    Transfer bank
    Transfer kredit (Sumber)
    Beli sekarang, bayar nanti
    Pembayaran real-time
    Voucher
    Dompet
    Aktifkan metode pembayaran lokal menurut negara
    Metode pembayaran custom
Kelola metode pembayaran
Checkout lebih cepat dengan Link
Antarmuka pembayaran
Payment Links
Checkout
Web Elements
Elements dalam aplikasi
Skenario pembayaran
Tangani beberapa mata uang
Alur pembayaran custom
Akuisisi fleksibel
Orkestrasi
Pembayaran di tempat
Terminal
Di luar pembayaran
Dirikan perusahaan Anda
Kripto
Financial Connections
Climate
Pahami penipuan
Perlindungan penipuan Radar
Kelola sengketa
Verifikasikan identitas
BerandaPembayaranAdd payment methodsBank debitsPre-authorized debit in Canada

Accept a Canadian pre-authorized debit payment

Build a custom payment form or use Stripe Checkout to accept payments with pre-authorized debit in Canada.

Accepting Canadian pre-authorized debit (PAD) payments on your website consists of creating an object to track a payment, collecting payment method information and mandate acknowledgement, submitting the payment to Stripe for processing, and verifying your customer’s bank account.

With Checkout, you can create a Checkout Session with acss_debit as a payment method type to track and handle the states of the payment until the payment completes.

Catatan

Pre-authorized debit in Canada is a delayed notification payment method, which means that funds are not immediately available after payment. A payment typically takes 5 business days to arrive in your account.

Determine compatibility

Customer Geography: Canada

Supported currencies: cad, usd

Presentment currencies: cad, usd

Payment mode: Yes

Setup mode: Yes

Subscription mode: Contact us

To support Canadian pre-authorized debit payments, a Checkout Session must satisfy all of the following conditions:

  • You can only use one-time line items (subscriptions are not yet supported in Checkout).
  • Prices for all line items must be expressed in Canadian or US dollars (currency code cad or usd).
  • Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.

Presentment currency

Most bank accounts in Canada hold Canadian dollars (CAD), with a small number of accounts in other currencies, including US dollars (USD). It is possible to accept PAD payments in either CAD or USD, but choosing the correct currency for your customer is important to avoid payment failures.

Unlike many card-based payment methods, you might not be able to successfully debit a CAD account in USD or debit a USD account in CAD. Most often, attempting to do so results in a delayed payment failure that takes up to five business days.

To avoid these failures, it is safest to take PAD payments in CAD unless you are confident your customer’s account accepts USD debits.

Accept a payment

Catatan

Build an integration to accept a payment with Checkout before using this guide.

This guides you through enabling Canadian pre-authorized debit and shows the differences between accepting a card payment and using this payment method.

Enable Canadian pre-authorized debit as a payment method

When creating a new Checkout Session, you need to:

  1. Add acss_debit to the list of payment_method_types.
    • If you manage payment methods in the Dashboard, you don’t need to include payment_method_types in the Checkout Session because dynamic payment methods are enabled by default. However, you still need to include payment_method_options.
  2. Make sure all your line_items use the cad currency.
  3. Specify additional payment_method_options parameters to describe your transaction. Learn more below.

Payments must specify a payment schedule for customers to authorize when checking out. See PAD Mandates for details on how to choose the right mandate options for your business:

ParameterValueRequired?
payment_method_options[acss_debit][mandate_options][payment_schedule]The mandate payment schedule. Accepted values are interval, sporadic, or combined. See the PAD Mandates overview to help you select the right schedule for your business.Yes
payment_method_options[acss_debit][mandate_options][interval_description]Text description of the payment schedule. See the PAD Mandates overview to help you construct the right interval description for your business.Required if payment_schedule value is interval or combined
payment_method_options[acss_debit][mandate_options][transaction_type]The type of the mandate you’re creating, either personal (if your customer is an individual) or business (if your customer is a business).Yes

Create a Checkout session

Ruby
Python
PHP
Java
Node
Go
.NET
No results
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['acss_debit'], # or you can take multiple payment methods with # payment_method_types: ['card', 'acss_debit', ...] line_items: [{ price_data: { currency: 'usd', # To accept `acss_debit`, all line items must have currency: cad, usd currency: 'cad', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], payment_method_options: { acss_debit: { mandate_options: { payment_schedule: 'interval', interval_description: 'On 8 Agustus 2025', transaction_type: 'personal', } } }, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', })

During the Checkout session, the customer is presented with a UI modal that handles bank account details collection and instant verification with an optional fallback to verification using micro-deposits. In the uncommon case that the customer opts for micro-deposit verification, Stripe automatically sends two small deposits to the provided bank account which take 1-2 business days to appear on the customer’s online bank statement. When the deposits are expected to arrive, the customer receives an email with a link to confirm these amounts and verify the bank account with Stripe. Once completed, the payment begins processing.

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Test your integration

Receive micro-deposit verification email

To receive the micro-deposit verification email in a sandbox after collecting the bank account details and accepting a mandate, provide an email in the payment_method[billing_details][email] field in the form of {any_prefix}+test_email@{any_domain} when confirming the payment method details.

Test account numbers

Stripe provides several test account numbers you can use to make sure your integration for manually-entered bank accounts is ready for production. All test accounts that automatically succeed or fail the payment must be verified using the test micro-deposit amounts below before they can be completed.

Institution NumberTransit NumberAccount NumberScenario
00011000000123456789Succeeds the payment immediately after micro-deposits are verified.
00011000900123456789Succeeds the payment with a three-minute delay after micro-deposits are verified.
00011000000222222227Fails the payment immediately after micro-deposits are verified.
00011000900222222227Fails the payment with a three-minute delay after micro-deposits are verified.
00011000000666666661Fails to send verification micro-deposits.
00011000000777777771Fails the payment due to the payment amount causing the account to exceed its weekly payment volume limit.
00011000000888888881Fails the payment due to the payment amount exceeding the account’s transaction limit.

To mimic successful or failed bank account verifications in a sandbox, use these meaningful amounts for micro-deposits:

Micro-deposit ValuesScenario
32 and 45Successfully verifies the account.
10 and 11Simulates exceeding the number of allowed verification attempts.
Any other number combinationsFails account verification.

Handle refunds and disputes

The refund period for Canadian pre-authorized debit is up to 180 days after the original payment.

Customers can dispute a payment through their bank up to 90 calendar days after the original payment and there is no appeals process.

Learn more about Canadian pre-authorized debit disputes.

Additional considerations

Microdeposit verification failure

When a bank account is pending verification with micro-deposits, it is possible for the customer to fail to verify for two reasons:

  • The micro-deposits failed to send to the customer’s bank account (usually indicates a closed/unavailable bank account or incorrect bank account number).
  • The customer made three failed verification for the account. Exceeding this limit means the bank account can no longer be verified or reused.
  • The customer failed to verify the bank account within 10 days.

If the bank account fails verification for one of these reasons, you can handle the checkout.session.async_payment_failed event to contact the customer about placing a new order.

OpsionalInstant only verification
Server-side

OpsionalMicro-deposit only verification
Server-side

OpsionalConfigure customer debit date
Server-side

Lihat juga

  • More about pre-authorized debit in Canada
  • Managing mandates
  • Checkout fulfillment
  • Customizing Checkout
Apakah halaman ini membantu?
YaTidak
  • Butuh bantuan? Hubungi Tim CS.
  • Bergabunglah dengan program akses awal kami.
  • Lihat log perubahan kami.
  • Ada pertanyaan? Hubungi Bagian Penjualan.
  • LLM? Baca llms.txt.
  • Dijalankan oleh Markdoc