You can add Pre-Authorized Debit Canada (PADs Canada) to your existing integration. The following instructions show only what you must add to your integration specifically for PADs Canada.
If an instruction on this page corresponds with a step in the main integration guide, it includes a link to that corresponding step of the main integration guide.
Requirements
Requirement | Description | |
---|---|---|
Integration type | Make sure that you have an existing API-only integration. | |
Checkout API | Make sure that you use Checkout API v69 or later. | |
Setup steps | Before you begin:
|
How it works
- The shopper selects PADs Canada as the payment method.
- The shopper enters their details in the payment form that you build.
- You collect the shopper's mandate (consent) for the PAD.
- When you make the payment request, you include additional information about the shopper's bank account.
Build your payment form
Include fields to collect the following information from your shopper in the payment form.
Field | Description |
---|---|
Bank account number | The Canadian bank account number from which the payment will be debited. Format: numeric. Minimum length: 7 Maximum length: 12 Example: 123456789012 |
Bank location ID | The five-digit code that identifies the branch where the account was opened. Example: 16001 |
Bank code | The three-digit code that identifies the bank. Example: 621 |
Account owner's name | "John Smith" |
You also need to obtain the shopper's mandate.
Get PADs Canada as an available payment method
When you make the /paymentMethods to get available payment methods, specify the following so that PADs Canada is included in the response.
Parameter | Values |
---|---|
countryCode | CA |
amount.currency | CAD |
Add additional parameters to your /payments request
When you make a payment, add the following parameters:
Parameter | Required | Description |
---|---|---|
paymentMethod.type |
![]() |
eft_directdebit_CA |
paymentMethod.bankAccountNumber |
![]() |
The Canadian bank account number. |
paymentMethod.bankLocationId |
![]() |
The five-digit code that identifies the branch where the account was opened. |
paymentMethod.bankCode |
![]() |
The three-digit code that identifies the bank. |
paymentMethod.ownerName |
![]() |
The name on the bank account. |
billingAddress | The account owner's address information. | |
Tokenization parameters | We do not recommend using PADs for one-off payments. Follow the instructions in Create and use tokens with the Advanced flow to create a token with the shopper's initial payment, and then use that token in the subsequent recurring PADs. To create a token, add the tokenization parameters recurringProcessingModel , shopperInteraction , shopperReference , and storePaymentMethod . |
Note that you need to get a mandate (consent) from the shopper for the payment or series of recurring payments.
In the /payments response, note the following:
-
additionalData
: an object with the following details to save in your system.eft_directdebit_CA.mandateId
: the ID we generated for the shopper's PAD agreement.eft_directdebit_CA.dateOfSignature
: the date of the initial payment request, which is considered to be the date that the shopper accepted the PAD agreement.tokenization.storedPaymentMethodId
: the token to use in subsequent recurring PADs.tokenization.shopperReference
: your unique ID for the shopper, to use in subsequent recurring PADs.
The
tokenization
response parameters are only included if the payment request contained the parameters to create a token, and in your Customer Area under Developers > Additional data you enabled Recurring details.
Present the payment result
Use the resultCode that you received in the /payments response to present the payment result to your shopper.
The resultCode
values you can receive for PAD are:
resultCode | Description | Action to take |
---|---|---|
Authorised | The payment has been successfully received by Adyen. It may take up to five business days to know whether the payment was authorized by the bank. If the payment is successful, it will appear in the Settlement Detail Report. If it fails, you will receive a NOTIFICATION_OF_CHARGEBACK. |
Inform the shopper that the payment was successful. |
Refused | The payment was refused. | Ask the shopper to try the payment again using a different payment method. |
Recurring payments
Pre-Authorized Debit Canada supports tokenization of the shopper's payment details for recurring transactions. Due to the risk of chargebacks, we do not recommend using PADs for one-off payments.
You are required to obtain a mandate from the shopper if you intend to make future recurring payments.
To make recurring payments, refer to Tokenization to:
- Enable the Recurring tokens life cycle events webhook.
- Create a token through the initial payment (see Add additional parameters above).
- Pay with the token in subsequent payments. Note that you do not need to include the mandate ID in the recurring payment request.
- Manage tokens.
Test and go live
You can test Pre-Authorized Debit Canada payments as well as chargebacks.
Test the payment flow
Test your integration by making test payments using the bankAccountNumber
, bankLocationId
, bankCode
and ownerName
of a real Canadian bank account. That account will not be debited.
Test the chargeback flow
You can test the return flow by making test payments with an ownerName
value that consists of chargeback: followed by a PAD return reason code. For example, chargeback:05. The other account details to use are the same as when testing payments.
Note that in the test environment the return flow goes directly to the Chargeback stage.
Return reason codes
Use the following table with the most common PAD return reason codes to determine what the code means and if it is allowed to retry a returned payment.
Reason code | Reason | Description / Resolution | Retry? |
---|---|---|---|
01 | NSF (Debit Only) | Non-sufficient funds (NSF). You can retry the transaction once within 30 days of the original authorization date. | ![]() |
02 | Account not found | The provided account information is incorrect. Retrying the transaction is not allowed. | ![]() |
03 | Payment Stopped/Recalled | The customer instructed their bank to not honor a payment they previously authorized. Resolve the issue with the customer. When initiating a new transaction, get a new PAD agreement from the customer. If you are going to debit the same account, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
05 | Account Closed | The customer's bank account has been closed. Retrying the transaction is not allowed. | ![]() |
07 | No Debit Allowed | The provided bank account cannot be used for EFT PADs. Ask the customer for permission to charge a different, EFT PAD-enabled bank account. | ![]() |
08 | Funds Not Cleared (Debit Only) | Insufficient funds. You can retry the transaction once within 30 days of the original authorization date. | ![]() |
09 | Currency/Account Mismatch | The transaction currency does not match the currency of the bank account. Retrying the transaction is not allowed. | ![]() |
10 | Payor/Payee Deceased | Contact the bank of the deceased account holder or account beneficiary. | ![]() |
11 | Account Frozen | Contact your customer to obtain a different form of payment. The bank account cannot be used while it is frozen. This return code should be a red flag for your business. If you see this code, do your due diligence around verifying the identity of your customer. | ![]() |
12 | Invalid/Incorrect Account No. | The provided account number is incorrect. Retrying the transaction is not allowed. | ![]() |
14 | Incorrect Payor/Payee Name | The provided name of the account holder or beneficiary is incorrect. Retrying the transaction is not allowed. | ![]() |
15 | No Agreement Existed | The customer informed their bank they did not give authorization for the transaction. Suspend any recurring transactions and resolve the issue with the customer. If you are going to debit the same account for a new transaction, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
16 | Not According to Agreement - Personal | The customer informed their bank that the payment is not in accordance with their personal PAD agreement. Suspend any recurring transactions and resolve the issue with the customer. | ![]() |
17 | Agreement Revoked - Personal | The customer informed their bank they revoked their personal PAD agreement for the transaction. Suspend any recurring transactions and resolve the issue with the customer. If you are going to debit the same account for a new transaction, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
18 | No Confirmation/Pre-Notification - Personal | The consumer you tried to charge informed their bank they did not receive a confirmation or notification about the transaction. Suspend any recurring transactions and resolve the issue with the customer. If you are going to debit the same account for a new transaction, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
19 | Not According to Agreement - Business | The customer informed their bank that the payment is not in accordance with their business PAD agreement. Suspend any recurring transactions and resolve the issue with the customer. | ![]() |
20 | Agreement Revoked - Business | The customer informed their bank they revoked their business PAD agreement for the transaction. Suspend any recurring transactions and resolve the issue with the customer. If you are going to debit the same account for a new transaction, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
21 | No Confirmation/Pre-Notification - Business | The company you tried to charge informed their bank they did not receive a confirmation or notification about the transaction. Suspend any recurring transactions and resolve the issue with the customer. If you are going to debit the same account for a new transaction, make sure the customer's bank stops blocking transactions from your company to this account. | ![]() |
82 | Interbank Reject - Invalid Institution Number | The bank's institution number and/or branch transit number is invalid, or the bank does not accept PADs. | ![]() |
90 | Institution in Default | The customer's bank has failed to fulfill its obligations. Retrying the transaction is not allowed. | ![]() |
Go live
Before going live, contact our Support Team to add PADs Canada in your live Customer Area.