Interac E-Transfer Deposit
How do I fund an account via Interac E-Transfer in my Canadian bank?
This guide walks you through the process of depositing funds to a Cybrid fiat account using the instant deposit
rail Interac E-Transfer.
AvailabilityInterac E-Transfer is only available to Canadian banks on the Cybrid Platform and can only be used to deposit CAD to CAD-based
fiataccounts.
Prerequisites
Before you begin, ensure you have:
- a customer already created and verified; and,
- a
CADfiataccount created for the customer.
Overview
The e-transfer deposit process involves four main steps:
- Create a
fundingquote - Execute a
transferwith thepayment_railset to etransfer - Display the
gateway_urlon the resulting transfer to your customer and instruct them to authorize the payment through their bank - Wait for your customer to authorize the payment and the
transferto transition to thecompletedstate
Step 1: Create a funding quote
funding quoteCreate a quote via POST /api/quotes:
{
"product_type": "funding",
"customer_guid": "your-customer-guid",
"asset": "CAD",
"side": "deposit",
"receive_amount": 10000
}Step 2: Execute the transfer
transferCreate the transfer via POST /api/transfers with transfer_type set to funding and payment_rail
set to etransfer. The quote_guid is the guid from the quote created in Step 1.
{
"quote_guid": "your-quote-guid",
"transfer_type": "funding",
"payment_rail": "etransfer",
"source_participants": [
{
"type": "customer",
"guid": "your-customer-guid",
"amount": 100000
}
],
"destination_participants": [
{
"type": "customer",
"guid": "your-customer-guid",
"amount": 100000
}
]
}Step 3: Display the gateway_url to your customer and instruct them to authorize the payment
gateway_url to your customer and instruct them to authorize the payment
Domain allowlistingThe
gateway_urluses the domainetransfer.interac.ca. Allowlist this domain if needed.
Sandbox behaviorIn sandbox, Interac E-Transfer deposits complete automatically. The
gateway_urlreturned is not a valid URL because the sponsor bank does not support the interactive flow in sandbox.
Asynchronous processingGenerating the
gateway_urlcan take time in both sandbox and production due to sponsor bank response times. Handle asynchronous calls using webhook registration and polling as a backup.
Wait for the transfer to transition to the pending state. Once pending, read the gateway_url
from the identifiers array on the transfer. The identifier has type set to gateway_url and
value set to the URL to display to your customer.
Display the gateway_url to your customer through your application, email, SMS, or any other
channel.
When your customer visits the gateway_url they will be shown a screen to select their bank and authorize the
deposit via their bank's website.
Step 4: Wait for the transfer to transition to the completed state
transfer to transition to the completed stateAfter displaying the gateway_url to your customer, wait for the transfer to transition to
completed. Once completed, the funds are available on the platform.
Poll the transfer via GET /api/transfers/{transfer_guid} to check the state, or register for
webhooks. The transfer_guid is the guid from the transfer created in Step 2.
Error handling
E-transfer request URLs expire if the customer does not authorize them. The customer can also reject
the request. In both cases, the transfer transitions to failed:
payment_request_expired-- The customer did not authorize before the URL expired.cancelled-- The customer rejected the e-transfer request.
Updated 4 days ago
