LogoLogo
  • Introduction
  • Getting Started
    • Your Zum Rails Account
    • Developer Quickstart
  • Payments
    • Introduction
    • Payment Rails
    • Bank Payments
      • EFT
      • ACH
    • Interac e-Transfer
      • Send & Request
      • Review Transactions
    • Card Payments
      • Visa Direct
      • Credit Card
      • Push-to-debit
  • User Tokenization
    • Zūm Connect
  • Invoices & Subscriptions
    • Overview
    • Products
    • Invoices
    • Subscriptions
  • Data Aggregation
    • Overview
    • Use Cases
    • Supported Institutions
    • Data
    • How it works
    • Testing
  • Insights
    • Overview
    • Income
    • Expenses
    • Insights
  • Brand Customization
    • Brand Customization
  • API Reference
    • Overview
    • Authentication
    • Users
    • Transactions
    • Funding Source
    • Products
    • Product Prices
    • Invoices
    • Subscriptions
    • Aggregation
    • Insights
    • Wallets
    • Operations
      • Transaction Limits
      • Review Transactions
      • Daily Auto-Withdrawal Summary
    • Webhooks
    • Errors
    • Idempotency
    • Country & Region Codes
  • Archived Documentation
Powered by GitBook
On this page
  • Overview
  • Benefits of using EFT
  • How it works?
  • Processing Schedule
  • Transaction Limits
  • Transaction Events
  • Testing
  1. Payments
  2. Bank Payments

EFT

Introduction to Electronic Fund Transfers (EFTs) transactions

Overview

An EFT payment method is an electronic funds transfer between banks in Canada that takes up to 3 days to complete. You can send and receive funds using EFT.

Method: POST

Endpoint: {{env}}/api/transaction

Example

{
  "ZumRailsType": "AccountsReceivable",
  "TransactionMethod": "Eft",
  "Amount": 123.45,
  "Memo": "Memo description",
  "Comment": "This transaction is just a test from a user to wallet",
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297"
}

Request Parameters

Parameter
Type
Mandatory
Description

ZumRailsType

string

yes

Transaction type

TransactionMethod

string

yes

Transaction method

Amount

decimal

yes

Transaction amount

Memo

string

yes

Memo description. If customer transaction description type is "PerTransaction", this will be shown at the bank statements. Maximum of 15 characters. Only letters, numbers, dash, space and underscore are allowed

Comment

string

no

Internal comment you might want to add. Interac transactions will display the comment on the request.

FundingSourceId

guid

no

Funding Source Id

WalletId

guid

no

Wallet Id

UserId

guid

no

User Id

User

no

ScheduledStartDate

date

no

The date when the transaction will be sent to the financial institution, in the format YYYY-MM-DD. Must be greater than today.

ClientTransactionId

string

no

This field can be used to store the Transaction id created in your system when the Transaction is initiated

Benefits of using EFT

  • Speed & Efficiency: Faster transactions and no need for paper checks or visits to the bank.

  • Cost-Effective: Low transaction fees and reduced administrative costs.

  • Security: Encrypted, reducing fraud risk, and providing clear transaction records.

  • Accuracy: Fewer errors, with automatic transaction reconciliation.

  • Recurring Payments: Ideal for subscriptions and direct deposits, ensuring on-time payments.

How it works?

Collect PAD

Independent of the method used to add payment profile, a user is always asked to agree and consent the information shared (PAD) when creating a payment profile. The message can be customized for your needs as well. Your specific settings will be available under your profile in Zūm Rails portal.

Transaction Types

With EFT, you can perform five unique transaction types:

  • FundZumWallet

  • WithdrawZumWallet

  • AccountsPayable

  • AccountsReceivable

  • UserTransfer (Only available using API)

Transaction Life Cycle

  • Accounts Receivable transaction with funds deposited to Wallet

    1. Transaction Complete

    2. Transaction for debit transaction was added to an EFT File

    3. EFT file for debit transaction uploaded to Financial Institution

    4. EFT answer was received for debit transaction from financial institution

    5. Wallet Funded

    6. EFT for debit transaction has been processed by Financial Institution

    7. Transaction Complete

  • Accounts Payable transaction with funds sent to User from Wallet

    1. Transaction started

    2. Wallet Withdrawn

    3. Credit transaction added to an EFT file

    4. EFT file for credit transaction uploaded to Financial Institution

    5. EFT answer received for credit transaction from Financial Institution

    6. EFT for credit transaction processed by Financial Institution

    7. Transaction Complete

Processing Schedule

EFT - Financial Institute A

  • Times we send the transactions - mon to fri:

    • 5:55am;

    • 2:55pm;

    • 6:55pm;

  • When we process the responses - tue to sat:

    • 1:10am;

EFT - Financial Institute B

  • Times we send the transactions - mon to fri:

    • 2:55am;

    • 1:58pm;

    • 5:58pm;

  • When we process the responses - tue to sat:

    • 8:00am;

Transaction Limits

Transaction Limit
Minimum
Maximum

Amount limit per transaction

$0.00

Unlimited

Maximum volume per day

$0.00

Unlimited

Transaction per day

$0.00

$99,999,999

Maximum Volume Per Month

$0.00

Unlimited

Transaction Events

Zūm Rails also offers a more detailed transaction event, to indicate every step the transaction passed.

Method
Event
Description

All

Started

When the transaction started

All

Succeeded

When the transaction succeeds, when it finishes without any error

All

WalletFunded

When the transaction funds a wallet

All

WalletWithdrawn

When the transaction withdrawn a wallet

-------

-------

-------

Eft

EFTFileCreated

When an EFT file is created. One transaction might have up to 2 files

Eft

EFTFileUploaded

When an EFT file is uploaded

Eft

EFTAnswerReceived

When an EFT file response is received

Eft

EFTAnswerProcessed

When an EFT file is processed

Eft

EftFailedValidationRejection

When EFT could not be created, due an invalid information provided

Eft

EftFailedInsufficientFunds

When transaction is rejected, due non sufficient funds available

Eft

EftFailedCannotLocateAccount

When account is not located, account, transit or institution numbers are invalid

Eft

EftFailedStopPayment

Account do not allow EFT

Eft

EftFailedAccountClosed

When account is closed

Eft

EftFailedNoDebitAllowed

Account do not allow EFT

Eft

EftFailedFundsNotFree

When transaction is rejected, due non sufficient funds available

Eft

EftFailedCurrencyAccountMismatch

When the currency of the transaction does not match the currency of the account

Eft

EftFailedPayorPayeeDeceased

Account do not allow EFT

Eft

EftFailedFrozenAccount

Account do not allow EFT

Eft

EftFailedInvalidErrorAccountNumber

When account is not located, account numbers are invalid

Eft

EftFailedErrorPayorPayeeName

When account is not located, first, last or company name (business) mismatch

Eft

EftFailedRefusedNoAgreement

Account do not allow EFT

Eft

EftFailedNotInAccountAgreementP

Account do not allow EFT

Eft

EftFailedNotInAccountAgreementE

Account do not allow EFT

Eft

EftFailedAgreementRevoked

Account do not allow EFT

Eft

EftFailedDefaultByAFinancialInstitution

Generic error provided by the financial institution

Eft

EftFailedCustomerInitiatedReturnCreditOnly

When the payee has requested the credit to be returned

Eft

EftFailedTransactionNotAllowed

When the bank account is banned

Eft

EftFailedCustomerInitiatedReturnCreditOnly

When the payee has requested the credit to be returned

Eft

EftFailedNoPrenotificationP1

No Confirmation/Pre-Notification – Personal

Eft

EftFailedNoPrenotificationP2

No Confirmation/Pre-Notification – Business

Eft

EFTFileCreated

When the EFT file is created

Eft

EFTAnswerReceived

When the EFT answer is received

Eft

EFTAnswerProcessed

When the EFT answer is processed

Eft

NotEnoughBalanceInWalletError

When the wallet has not balance enough

Testing

To simulate an EFT failure, include an event name from the list above in the COMMENT field when creating a transaction. If you don't mention an event in the COMMENT, the transaction will change its status to "Completed" in the sandbox environment.

Examples:

{
  "ZumRailsType": "FundZumWallet",
  "TransactionMethod": "Eft",
  "Amount": 123.45,
  "Memo": "Memo description",
  "Comment": "This transaction will succeed because there's no keyword",
  "FundingSourceId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297"
}
{
  "ZumRailsType": "FundZumWallet",
  "TransactionMethod": "Eft",
  "Amount": 123.45,
  "Memo": "Memo description",
  "Comment": "EftFailedNoDebitAllowed", // Include event name in comment
  "FundingSourceId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297"
}
PreviousBank PaymentsNextACH

Last updated 7 days ago

It's possible to create a transaction without adding a user first. Simply pass the user object (instead of the UserId) into the transaction body. For reference, check the payload example of the user object and pass this when you create a transaction (check interac transaction payload example). Only available for EFT and interac transaction methods

To learn more about EFT transactions, see .

API Reference
User input
here