EFT Payments

Learn how sellers can process payments from Canada-based bank accounts.


Data Requirements

To accept an EFT Payment, you must collect the following bank account information.

FieldDescription
Account Type
account_type
Bank account type
Account Owner
name
Bank account owner name
Account Number
account_number
Bank account number
Routing Number
bank_code
Bank account routing number/bank code
Institution Number
institution_number
Bank account institution number
Transit Number
transit_number
Bank account transit number

Step 1: Create an Identity for your Buyer

To process an EFT payment, first create an Identity to represent the buyer. An Identity resource helps manage payments, payment methods, bank accounts, transaction history, and more.

Buyer Identity Request
curl "https://finix.sandbox-payments-api.com/identities" \
  -H "Content-Type: application/json" \
  -H "Finix-Version: 2022-02-01" \
  -u  USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
  -d '{
        "entity": {
            "phone": "7145677613",
            "first_name": "Collen",
            "last_name": "Wade",
            "email": "therock@gmail.com"
        }
    }'
Buyer Identity
{
    "id": "IDo6hT8RukoNfFDBx8KmzsyP",
    "created_at": "2024-04-17T00:21:13.52Z",
    "updated_at": "2024-04-17T00:21:13.52Z",
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "entity": {
        "ach_max_transaction_amount": 0,
        "amex_mid": null,
        "annual_card_volume": 0,
        "business_address": null,
        "business_name": null,
        "business_phone": null,
        "business_tax_id_provided": false,
        "business_type": null,
        "default_statement_descriptor": null,
        "discover_mid": null,
        "dob": null,
        "doing_business_as": null,
        "email": "therock@gmail.com",
        "first_name": "Collen",
        "has_accepted_credit_cards_previously": false,
        "incorporation_date": null,
        "last_name": "Wade",
        "max_transaction_amount": 0,
        "mcc": null,
        "ownership_type": null,
        "personal_address": {
            "line1": null,
            "line2": null,
            "city": null,
            "region": null,
            "postal_code": null,
            "country": null
        },
        "phone": "7145677613",
        "principal_percentage_ownership": null,
        "short_business_name": null,
        "tax_authority": null,
        "tax_id_provided": false,
        "title": null,
        "url": null
    },
    "identity_roles": [],
    "tags": {},
    "_links": {
        "self": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP"
        },
        "verifications": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/verifications"
        },
        "merchants": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/merchants"
        },
        "settlements": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/settlements"
        },
        "authorizations": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/authorizations"
        },
        "transfers": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/transfers"
        },
        "payment_instruments": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/payment_instruments"
        },
        "associated_identities": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/associated_identities"
        },
        "disputes": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP/disputes"
        },
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        }
    }
}

Step 2: Create a Bank Account

Create a CAD Bank Account using Plaid

We recommend using Plaid to create bank accounts for your buyers. Learn how to create Bank Accounts with Plaid by reading our guide.

Create a CAD Bank Account via API

Creating Payment Instruments and passing payment details (account number, card number, etc.) directly via the API should only be done for testing purposes. You must use the Tokenization Forms or mobile tokenization (see Android or iOS tokenization) to accept payment details, and remain out of PCI scope.

A Payment Instrument resource represents the payment details of a credit card or bank account. A Payment Instrument is associated with a single Identity.

Canadian Bank Account Request
curl "https://finix.sandbox-payments-api.com/payment_instruments" \
    -H "Content-Type: application/json" \
    -H "Finix-Version: 2022-02-01" \
    -u  USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
    -d '{
        "account_number": "123123123",
        "account_type": "PERSONAL_CHECKING",
        "country": "CAN",
        "currency": "CAD",
        "identity": "IDo6hT8RukoNfFDBx8KmzsyP",
        "institution_number": "123",
        "name": "John Smith",
        "transit_number": "12345",
        "type": "BANK_ACCOUNT"
    }'
Canadian Bank Account
{
    "id": "PIk5jFRUwkvE1WHBRCgrBzRs",
    "created_at": "2024-04-17T00:26:19.56Z",
    "updated_at": "2024-04-17T00:26:19.56Z",
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "created_via": "API",
    "currency": "CAD",
    "disabled_code": null,
    "disabled_message": null,
    "enabled": true,
    "fingerprint": "FPR8RAHfXm1BMYYVJyHWHhw4J",
    "identity": "IDo6hT8RukoNfFDBx8KmzsyP",
    "instrument_type": "BANK_ACCOUNT",
    "account_type": "PERSONAL_CHECKING",
    "bank_account_validation_check": "NOT_ATTEMPTED",
    "bank_code": null,
    "country": "CAN",
    "institution_number": "123",
    "masked_account_number": "XXXXX3123",
    "name": "John Smith",
    "transit_number": "12345",
    "tags": {},
    "third_party": null,
    "third_party_token": null,
    "type": "BANK_ACCOUNT",
    "_links": {
        "self": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIk5jFRUwkvE1WHBRCgrBzRs"
        },
        "authorizations": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIk5jFRUwkvE1WHBRCgrBzRs/authorizations"
        },
        "transfers": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIk5jFRUwkvE1WHBRCgrBzRs/transfers"
        },
        "verifications": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIk5jFRUwkvE1WHBRCgrBzRs/verifications"
        },
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        },
        "identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDo6hT8RukoNfFDBx8KmzsyP"
        }
    }
}

Step 3: Create a CAD Bank Transfer

Once you have a CAD bank account, you can create an EFT Payment.

CAD Transfer Request
curl "https://finix.sandbox-payments-api.com/transfers" \
    -H "Content-Type: application/json" \
    -H "Finix-Version: 2022-02-01" \
    -u  USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
    -d '{
        "amount": 350,
        "currency": "CAD",
        "merchant": "MU2ekLKCiV8M5waZ3Ayg7ic6",
        "source": "PIk5jFRUwkvE1WHBRCgrBzRs"
    }'
CAD Transfer
{
    "id": "TRg8Xu7rvD7JT9NmGTHF4eFe",
    "created_at": "2024-04-17T00:28:57.41Z",
    "updated_at": "2024-04-17T00:28:58.22Z",
    "additional_buyer_charges": null,
    "additional_healthcare_data": null,
    "additional_purchase_data": null,
    "address_verification": null,
    "amount": 350,
    "amount_requested": 350,
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "currency": "CAD",
    "destination": null,
    "externally_funded": "UNKNOWN",
    "failure_code": null,
    "failure_message": null,
    "fee": 0,
    "idempotency_id": null,
    "merchant": "MU2ekLKCiV8M5waZ3Ayg7ic6",
    "merchant_identity": "IDbuyRPdoEBfEsKcuKEPgkqP",
    "messages": [],
    "parent_transfer": null,
    "parent_transfer_trace_id": null,
    "raw": null,
    "ready_to_settle_at": null,
    "receipt_last_printed_at": null,
    "security_code_verification": null,
    "source": "PIk5jFRUwkvE1WHBRCgrBzRs",
    "split_transfers": [],
    "state": "PENDING",
    "statement_descriptor": "FNX*FINIX FLOWERS",
    "subtype": "API",
    "tags": {},
    "trace_id": "f098d089-1bf7-45c9-96ca-bdd72e2c3fd5",
    "type": "DEBIT",
    "_links": {
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        },
        "self": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRg8Xu7rvD7JT9NmGTHF4eFe"
        },
        "merchant_identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDbuyRPdoEBfEsKcuKEPgkqP"
        },
        "payment_instruments": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRg8Xu7rvD7JT9NmGTHF4eFe/payment_instruments"
        },
        "reversals": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRg8Xu7rvD7JT9NmGTHF4eFe/reversals"
        },
        "fees": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRg8Xu7rvD7JT9NmGTHF4eFe/fees"
        },
        "disputes": {
            "href": "https://finix.sandbox-payments-api.com/transfers/TRg8Xu7rvD7JT9NmGTHF4eFe/disputes"
        },
        "source": {
            "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIk5jFRUwkvE1WHBRCgrBzRs"
        },
        "fee_profile": {
            "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPvCQUcnsueN3Bc3zR1qCBG8"
        }
    }
}

EFT PAD Requirements

Canadian-based sellers must present a clear authorization to buyers. Before debiting a buyer's bank account, sellers must first collect authorization from the buyer defining a specific payment schedule or terms. The authorization must include the buyer's institution number, transit number, account number, name and email. Read more about the required authorizations.

Authorization Agreement ("PAD Agreement") Requirements

FieldDescription
Business Contact InformationThe PAD agreement must contain reasonable and accurate contact information that the buyer can use to contact your business by a method of communication your buyer uses.
Date and Signature of PAD Agreement AcceptanceSomewhere in the PAD Agreement presented to the buyer, the date of the PAD Agreement acceptance must be shown.
Either a signature field must be included or the Agreement must be otherwise "Authorized" in accordance with Rule H1.
Pre-authorized debit TypeA clear statement indicating the amount (fixed or variable) of the debit and when you will debit the buyer (i.e. weekly, monthly, sporadic, or caused by a specific event). If each PAD is triggered by an event then an unambiguous description of that event.
Authority to Debit Account with Variable AmountsA clear and unambiguous statement outlining your buyer's agreement that your business is authorized to debit the account given.
Payment ScheduleA clear statement indicating the amount (fixed or variable) of the debit and when you will debit the buyer (i.e. weekly, monthly, sporadic, or caused by a specific event). If each PAD is triggered by an event then an unambiguous description of that event.
Payment ScheduleA clear statement indicating the amount (fixed or variable) of the debit and when you will debit the buyer (i.e. weekly, monthly, sporadic, or caused by a specific event). If each PAD is triggered by an event then an unambiguous description of that event.
Sporadic AuthorizationIf the PAD Agreement authorizes Sporadic PADs, a clear statement must specify that the seller is required to obtain authorization from the buyer in accordance with Rule H1 for each Sporadic PAD that the seller issues against the buyer.
One-Time Payment AuthorizationIf the PAD Agreement provides for a PAD that is One-Time, the PAD Agreement must specify that the PAD Agreement supports a One-Time PAD, and that the PAD Agreement will no longer be valid once the payment has been fulfilled.
The seller shall then obtain a new PAD Agreement for any subsequent PADs.
"One-Time" means occurring once, on a set date.
Modification of PAD Confirmation PeriodIn order to improve the speed with which you can do business, Finix conducts verification on buyer's bank accounts that allows your business to begin debiting after a PAD is accepted so long as the buyer has agreed to this in the PAD Agreement.
Modification of Pre-Notification PeriodPre-notifications are required if not expressly waived. If you opt out of sending these emails, the text for waiving the pre-notification must be included instead, also bolded, highlighted or underlined.
Recourse / Reimbursement StatementThe PAD Agreement must contain this exact text in its entirety: "You [or I/We, depending on the context] have certain recourse rights if any debit does not comply with this agreement. For example, you [I/we] have the right to receive reimbursement for any debit that is not authorized or is not consistent with this PAD Agreement. To obtain more information on your [my/our] recourse rights, [I/we may] contact your [my/our] financial institution or visit www.payments.ca."
Cancellation of AgreementA statement outlining a buyer's ability to revoke their authorization at any time, specifying an amount of notice required by your business. The authorization agreement should also advise that the buyer may obtain a sample cancellation form, or further information on their right to cancel a PAD Agreement at their financial institution or by visiting www.payments.ca.
Notice of Use of a Payment Service ProviderThe PAD Agreement must disclose Finix as the payment processor.

Sample One-Time PAD Agreement

Customer First Commerce

631 Main Street, Toronto, ON M2F 234

Telephone:

Email: support@customer-commerce.com

Date:

Account Holder: John Smith

Type: Personal

Institution: 001

Account # 0000124432244

Email: john@example.com

Transit: 12345

Pre-authorized Debit ("PAD") Agreement

By clicking submit, you accept this one-time PAD Agreement and authorize Customer First Commerce to debit the specified bank account for any amount owed for charges arising from the use of services and/or purchase of products.

Payments will be debited from the specified account on [INSERT SPECIFIC DATE].

Where a scheduled debit date is not a business day, Customer First Commerce will debit the specified account on the next business day. You agree that any payments due will be debited from your account immediately upon acceptance of this PAD Agreement and that confirmation of this PAD Agreement may be sent within five (5) days of acceptance of this PAD Agreement. You further agree that your authority under this PAD Agreement is to remain in effect until we complete the one-time payment at which time your PAD Agreement will automatically terminate.

You have certain recourse rights if any debit does not comply with this PAD Agreement. For example, you have the right to receive reimbursement for any debit that is not authorized or is not consistent with this PAD Agreement. To obtain more information on your recourse rights, contact your financial institution or visit www.payments.ca.

You may amend or cancel this PAD Agreement at any time by providing Customer First Commerce with thirty (30) days’ advanced notice at support@customer-first-commerce.com. To obtain a sample cancellation form, or further information on cancelling this PAD Agreement, please contact your financial institution or visit www.payments.ca.

Customer First Commerce partners with Finix Canada, Inc. to provide payment processing services.