e-Transfer Payments

Step 1: Create Account Holder

POST {{teller_domain}}/api/v1/account_holders

{
  "type": "individual",
  "email": "[email protected]",
  "first_name": "John",
  "last_name": "Smith"
}

Step 2: Tokenize Customer information

POST {{teller_domain}}/api/v1/tokens or {{teller_domain}}/api/v2/tokens

FieldTypeRequiredDetails
namestringyesname of the person or business

max 60 characters
emailstringconditionalemail of the person or business

required for e-transfer email notifications
phone_numberstringconditionalphone number of person or business

10 digits in length

do not include dashes or spaces

includes area code and phone number

required for e-transfer sms notifications

If notification choice is email, the payload for tokenization looks as follows:

{
  "etransfer": {
    "name": "John Smith",
    "email": "[email protected]"
  }
}

If notification choice is SMS, the payload for tokenization looks as follows:

{
  "etransfer": {
    "name": "John Smith",
    "phone_number": "1234567890"
  }
}

Step 3: Create Financial Account with created token for Account Holder

POST {{teller_domain}}/api/v1/account_holders/:id/financial_accounts

{
  "token": "ettk_BY-HbLvFocbzF8O23EF4E37121688FE9D"
}

Step 4: Create transaction with created Financial Account

Push Transaction

POST {{teller_domain}}/api/v1/transactions/push

FieldTypeRequiredDetails
amountnumberyesin cents the amount you wish to send
currencystringyescurrency of the transaction
productstringyesproduct of the transaction
financial_accountstringyesfinancial account to which you wish to send money
security_questionstringyesquestion to answer for e-transfer payment
security_question_answerstringyesanswer to the security_question provided

must be between 3 to 25 characters with no spaces
{
  "amount": 2000, 
  "currency": "CAD",
  "product": "disbursements",
  "financial_account": "etransfer_136_ettk_BG-HbLvFocbzF8O33EF4E37151688FD9D",
  "security_question": "Mother's maiden name"
  "security_question_answer": "Doe"
}

Pull Transaction

POST {{teller_domain}}/api/v1/transactions/pull

FieldTypeRequiredDetails
amountnumberyesin cents the amount you wish to send
currencystringyescurrency of the transaction
productstringyesproduct of the transaction
financial_accountstringyesfinancial account to which you wish to send money
{
  "amount": 2000, 
  "currency": "CAD",
  "product": "prepaid_loads",
  "financial_account": "etransfer_136_ettk_BG-HbLvFocbzF8O33EF4E37151688FD9D"
}

Initial status is always “awaiting_settlement” unless an error occurred, which we would catch upon creation.

📘

Related pages:

API Flows
Tokenization JS Library
E-transfer Flow