Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
    Overview
    Payment method integration options
    Bank debits
      ACH Direct Debit
      Bacs Direct Debit
      Pre-authorized debit in Canada
        Accept a payment
        Save bank details
        Custom mandate agreements
      BECS Direct Debit in Australia
      SEPA Direct Debit
    Bank redirects
    Bank transfers
    Buy now, pay later
    Credit transfers (Sources)
    Real-time payments
    Vouchers
    Wallets
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
HomePaymentsBank debits

Pre-authorized debit payments in Canada

Learn how to accept pre-authorized debit payments in Canada.

Stripe users in Canada and the United States can accept pre-authorized debit payments (PADs) from customers with a Canadian bank account using the Automated Clearing Settlement System (ACSS) provided by Payments Canada.

Before debiting a customer’s bank account, businesses must first collect a mandate from the customer defining a specific payment schedule or terms. The mandate includes the customer’s institution number, transit number, account number, name and email.

When you use Stripe.js, our foundational JavaScript library for building payment flows, Stripe provides a hosted solution for collecting mandates from customers using your preferred terms, as well as fully-hosted collection of bank account details and instant bank verification (and delayed verification using micro-deposits in rare cases). This verification process is a requirement to accept PADs, and can also help to reduce payment failures and fraudulent activities.

Canadian pre-authorized debits are a reusable, delayed notification payment method. This means that it can take 3 calendar days to initiate a payment after collecting a mandate for the first time, and up to 5 business days after initiating a payment to receive notification of success or failure. PADs are not a guaranteed payment method, there is a risk of failed payments and disputes.

  • Customer locations

    CA

  • Presentment currency

    CAD, USD (in rare cases)

  • Payment confirmation

    Business-initiated

  • Payment method family

    Bank debit

  • Recurring payments

    Yes

  • Payout timing

    5-7 days

  • Connect support

    Yes

  • Dispute support

    Yes

  • Refunds / Partial refunds

    Yes / yes

Payment flow

Customer selects pre-authorized debit at checkout

Customer provides bank information and accepts mandate

Customer gets notification that the payment is complete

Get started

We recommend you use Checkout or the Payment Element so you can automatically add Canadian pre-authorized debit and other payment methods from the Stripe Dashboard, without changing your code. Stripe then determines the list of supported payment methods to show each customer by evaluating the currency, payment method restrictions, and other parameters.

The following Stripe products also support adding Canadian pre-authorized debit from the Dashboard:

  • Invoicing
  • Subscriptions

If you prefer to manually list payment methods or want to save Canadian pre-authorized debit details for future payments, see the following guides:

  • Manually configure Canadian pre-authorized debit as a payment
  • Save Canadian pre-authorized debit details for future payments

Mandates

During the payment flow, Stripe helps you collect a mandate which gives your business authorization to debit the customer’s account. In Canada, these are called pre-authorized debit agreements or PAD agreements. The mandate collection, confirmation and pre-debit notification requirements for pre-authorized debits are governed by Payments Canada’s Rule H1 for pre-authorized debits (PADs).

Instructions for collecting mandate acceptance can be found on the Accept a payment page. In the unlikely event that your business requires a custom agreement, information on how to create a mandate that meets Payments Canada requirements can be found on the Custom PAD mandate agreements page.

Your customers must receive confirmation of a new mandate at least 3 days before the first debit is issued (see Mandate and debit notification emails). Stripe will automatically issue the first debit associated with a new mandate after 3 days to help your business meet this requirement.

Customers can at any time request the cancelation of a mandate. To cancel a mandate, a customer must either reach out to the business they established the mandate with, or to their bank. Canceling a mandate invalidates any further debit requests that you issue using this mandate. If you wish to accept additional payments from the customer, a new mandate must be established with them.

Payment Schedule

Each PAD mandate must specify a payment schedule that defines when and how debits may be automatically charged to a customer.

ScheduleUse Case

interval

Subsequent payments for set interval PADs can be charged to customers outside of your checkout flow on a specified schedule or based on triggering events clearly described in the mandate with an interval description.

One or more debits that occur with predictability, such as:

  • a one-time payment on a specific date
  • on a set of dates
  • on a regular basis (for example, weekly, monthly)
  • on the occurrence of certain criteria or events

Some example interval_description values for which you could debit:

  • on the 5th of every month
  • on completion of checkout
  • on acceptance of a contract
  • when a customer balance owing reaches $100
  • when any invoice becomes due

sporadic

Debits that are infrequent or irregular and not at specified or predictable periods or time. Sporadic PADs can be charged to customers at arbitrary times, but only with the express authorization of the customer at the time of payment (such as logging into your website).

An example of a sporadic payment could be a balance owed by the customer where payment is triggered by the customer rather than automatically by you at a certain time. Collecting bank account details and a sporadic mandate ahead of time would allow your customer to trigger payment with a single step.

combinedA mandate that would allow both interval and sporadic debits.

Mandate and debit notification emails

The Payments Canada network rules require that you notify your customer:

  • When a mandate is established
  • Each time a debit is made on their account

In addition, should your customer’s bank account need to be verified using micro-deposits, Stripe will send reminder emails linking to a hosted verification page.

By default, Stripe automatically sends emails to the customer for these cases. You can customize the colors and logo for these emails to fit the design and branding of your business.

If you prefer to send custom notifications, all of these emails must be supported. It is not possible to send custom notifications for only one of them.

To send custom notifications:

  • Turn off Stripe emails in the Stripe Dashboard email settings
  • Send a mandate confirmation email when you have collected your customer’s bank account and mandate authorization.
    • Mandate confirmation emails must be sent 3 calendar days before the first debit (Stripe will delay issuing the first debit until 3 days after creation).
    • The email must include the mandate you created for the debit (see Custom PAD mandate agreements) and the bank account information collected from your customer, including the institution number, transit number and last four digits of the account number.
  • Use the charge.pending event to trigger debit notification emails.
    • Debit notification emails must include: your contact information, the last 4 digits of your customer’s bank account, and the amount to be debited.

Disputed payments

Canadian pre-authorized debits provide a dispute process for bank account holders to dispute payments. Customers can dispute a debit payment through their bank on a “no questions asked” basis for up to 90 calendar days after a debit on a personal account or up to 10 business days for a business account. The customer’s bank may honor any dispute within this period.

When a dispute is created, Stripe sends both the charge.dispute.created and charge.dispute.closed webhook events, and deducts the amount of the dispute and associated dispute fee from your Stripe balance.

Unlike credit card disputes, all PAD disputes are final and there is no process for appeal. If a customer successfully disputes a payment, you must contact them if you want to resolve the situation. If you’re able to come to an arrangement and your customer is willing to return the funds to you, they must make a new payment.

If you proactively issue your customer a refund while the customer’s bank also initiates the dispute process, your customer may receive two credits for the same transaction. You should follow the guidelines in the following section on refunds to avoid this happening.

Payouts

Pre-authorized debit payments are subject to a minimum 5 business day payout timing from charge creation. If your payout timing is longer than 5 business days, payouts from PAD payments will be unified with card payouts.

Presentment currency Optional

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 may not be able to successfully debit a CAD account in USD or debit a USD account in CAD. Most often, attempting to do so will result in a delayed payment failure that will take up to 5 business days.

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

Refunds

Refunds for PADs must be submitted within 180 days from the date of the original payment. Refunds require additional time to process (typically 3 business days). If you accidentally debit your customer, please contact them immediately to avoid a payment dispute.

Refunds are processed only after the payment process is complete. If you create a full or partial refund on a payment that has not yet completed, the refund is actioned when the Charge object’s status transitions to succeeded. If the Charge object’s status transitions to failed, the full or partial refund is marked as canceled because the money was never debited from the customer’s bank account.

PAD refunds are not explicitly labeled as refunds when the funds are deposited back to a customer’s bank account. Instead, refunds are processed as a credit and include a reference to the original payment’s statement descriptor.

Due to longer settlement time periods and how banks process PAD transactions, there is potential for confusion between you, your customer, your customer’s bank, and Stripe. For example, your customer may contact both you and their bank to dispute a payment. If you proactively issue your customer a refund while the customer’s bank also initiates the dispute process, your customer may receive two credits for the same transaction.

When issuing a refund, you should inform your customer immediately that the refund typically takes 3 business days to arrive in their bank account.

Statement descriptors

Every PAD payment shows up on customers’ bank statements with the name of the merchant. For PAD payments created with Stripe, the name of the merchant is your Stripe account’s statement descriptor. You can override this default behavior for every transaction independently by using a dynamic statement descriptor. To do so, you can specify the statement_descriptor parameter when creating the PaymentIntent.

Please note that your statement descriptor will truncated to the first 15 alphanumeric characters on the bank statement. For example, if your statement descriptor is ROCKETRIDESLIMITED, the customer will see ROCKETRIDESLIMI.

Additionally, statement descriptors cannot use the special characters <, >, ', or ".

The table below illustrates the merchant name behavior you can expect on the customer’s bank statement:

Default statement descriptorDynamic statement descriptorMerchant nameBank statement descriptor
Rocket RidesUnspecifiedRocket RidesRocket Rides
Rocket RidesSunday RideRocket RidesSunday Ride

Each bank in Canada formats these fields differently. Depending on your customer’s bank, some fields might appear in all lowercase or uppercase.

Statement descriptors and Connect

The charge type of Connect payments changes the statement descriptor and the merchant name, which appears on the customer’s bank statement.

Charge typeDescriptor taken from
DirectConnected Account
DestinationPlatform
Separate charge and transferPlatform
Destination (with on_behalf_of)Connected Account
Separate charge and transfer (with on_behalf_of)Connected Account

A mandate collected for a PaymentIntent on_behalf_of a Connected Account cannot be used with a different Connected Account.

Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Payment flow
Get started
Mandates
Mandate and debit notification emails
Disputed payments
Payouts
Presentment currency
Refunds
Statement descriptors
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$