cURL
curl --request POST \
--url https://api.example.com/api/v2/sessions \
--header 'Content-Type: application/json' \
--data '
{
"referenceId": "<string>",
"type": "EFT",
"direction": "DEBIT",
"currency": "CAD",
"amount": 123,
"options": {
"guarantee": {
"enable": false
},
"notificationPreferences": {},
"showConsentScreen": true,
"limits": {
"minimumAmount": 123,
"maximumAmount": 123
},
"amountModification": true,
"redirectPreferences": {
"urlSuccess": "<string>",
"urlExit": "<string>"
}
},
"payor": {
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"occupation": "<string>",
"birthDate": "<string>",
"account": {
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
},
"address": {
"addressLine1": "<string>",
"addressLine2": "<string>",
"unit": "<string>",
"city": "<string>",
"province": "<string>",
"country": "<string>",
"postalCode": "<string>"
}
},
"payee": {
"account": {
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
}
}
}
'import requests
url = "https://api.example.com/api/v2/sessions"
payload = {
"referenceId": "<string>",
"type": "EFT",
"direction": "DEBIT",
"currency": "CAD",
"amount": 123,
"options": {
"guarantee": { "enable": False },
"notificationPreferences": {},
"showConsentScreen": True,
"limits": {
"minimumAmount": 123,
"maximumAmount": 123
},
"amountModification": True,
"redirectPreferences": {
"urlSuccess": "<string>",
"urlExit": "<string>"
}
},
"payor": {
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"occupation": "<string>",
"birthDate": "<string>",
"account": {
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
},
"address": {
"addressLine1": "<string>",
"addressLine2": "<string>",
"unit": "<string>",
"city": "<string>",
"province": "<string>",
"country": "<string>",
"postalCode": "<string>"
}
},
"payee": { "account": {
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
} }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
referenceId: '<string>',
type: 'EFT',
direction: 'DEBIT',
currency: 'CAD',
amount: 123,
options: {
guarantee: {enable: false},
notificationPreferences: {},
showConsentScreen: true,
limits: {minimumAmount: 123, maximumAmount: 123},
amountModification: true,
redirectPreferences: {urlSuccess: '<string>', urlExit: '<string>'}
},
payor: {
email: '<string>',
firstName: '<string>',
lastName: '<string>',
middleName: '<string>',
occupation: '<string>',
birthDate: '<string>',
account: {
accountId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
institutionCode: '<string>',
transitNumber: '<string>',
accountNumber: '<string>',
accountLabel: '<string>'
},
address: {
addressLine1: '<string>',
addressLine2: '<string>',
unit: '<string>',
city: '<string>',
province: '<string>',
country: '<string>',
postalCode: '<string>'
}
},
payee: {
account: {
institutionCode: '<string>',
transitNumber: '<string>',
accountNumber: '<string>',
accountLabel: '<string>'
}
}
})
};
fetch('https://api.example.com/api/v2/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v2/sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'referenceId' => '<string>',
'type' => 'EFT',
'direction' => 'DEBIT',
'currency' => 'CAD',
'amount' => 123,
'options' => [
'guarantee' => [
'enable' => false
],
'notificationPreferences' => [
],
'showConsentScreen' => true,
'limits' => [
'minimumAmount' => 123,
'maximumAmount' => 123
],
'amountModification' => true,
'redirectPreferences' => [
'urlSuccess' => '<string>',
'urlExit' => '<string>'
]
],
'payor' => [
'email' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'middleName' => '<string>',
'occupation' => '<string>',
'birthDate' => '<string>',
'account' => [
'accountId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'institutionCode' => '<string>',
'transitNumber' => '<string>',
'accountNumber' => '<string>',
'accountLabel' => '<string>'
],
'address' => [
'addressLine1' => '<string>',
'addressLine2' => '<string>',
'unit' => '<string>',
'city' => '<string>',
'province' => '<string>',
'country' => '<string>',
'postalCode' => '<string>'
]
],
'payee' => [
'account' => [
'institutionCode' => '<string>',
'transitNumber' => '<string>',
'accountNumber' => '<string>',
'accountLabel' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v2/sessions"
payload := strings.NewReader("{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v2/sessions")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v2/sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"sessionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referenceId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}V2 (Session-based)
Initiate Session
POST
/
api
/
v2
/
sessions
cURL
curl --request POST \
--url https://api.example.com/api/v2/sessions \
--header 'Content-Type: application/json' \
--data '
{
"referenceId": "<string>",
"type": "EFT",
"direction": "DEBIT",
"currency": "CAD",
"amount": 123,
"options": {
"guarantee": {
"enable": false
},
"notificationPreferences": {},
"showConsentScreen": true,
"limits": {
"minimumAmount": 123,
"maximumAmount": 123
},
"amountModification": true,
"redirectPreferences": {
"urlSuccess": "<string>",
"urlExit": "<string>"
}
},
"payor": {
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"occupation": "<string>",
"birthDate": "<string>",
"account": {
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
},
"address": {
"addressLine1": "<string>",
"addressLine2": "<string>",
"unit": "<string>",
"city": "<string>",
"province": "<string>",
"country": "<string>",
"postalCode": "<string>"
}
},
"payee": {
"account": {
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
}
}
}
'import requests
url = "https://api.example.com/api/v2/sessions"
payload = {
"referenceId": "<string>",
"type": "EFT",
"direction": "DEBIT",
"currency": "CAD",
"amount": 123,
"options": {
"guarantee": { "enable": False },
"notificationPreferences": {},
"showConsentScreen": True,
"limits": {
"minimumAmount": 123,
"maximumAmount": 123
},
"amountModification": True,
"redirectPreferences": {
"urlSuccess": "<string>",
"urlExit": "<string>"
}
},
"payor": {
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"occupation": "<string>",
"birthDate": "<string>",
"account": {
"accountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
},
"address": {
"addressLine1": "<string>",
"addressLine2": "<string>",
"unit": "<string>",
"city": "<string>",
"province": "<string>",
"country": "<string>",
"postalCode": "<string>"
}
},
"payee": { "account": {
"institutionCode": "<string>",
"transitNumber": "<string>",
"accountNumber": "<string>",
"accountLabel": "<string>"
} }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
referenceId: '<string>',
type: 'EFT',
direction: 'DEBIT',
currency: 'CAD',
amount: 123,
options: {
guarantee: {enable: false},
notificationPreferences: {},
showConsentScreen: true,
limits: {minimumAmount: 123, maximumAmount: 123},
amountModification: true,
redirectPreferences: {urlSuccess: '<string>', urlExit: '<string>'}
},
payor: {
email: '<string>',
firstName: '<string>',
lastName: '<string>',
middleName: '<string>',
occupation: '<string>',
birthDate: '<string>',
account: {
accountId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
institutionCode: '<string>',
transitNumber: '<string>',
accountNumber: '<string>',
accountLabel: '<string>'
},
address: {
addressLine1: '<string>',
addressLine2: '<string>',
unit: '<string>',
city: '<string>',
province: '<string>',
country: '<string>',
postalCode: '<string>'
}
},
payee: {
account: {
institutionCode: '<string>',
transitNumber: '<string>',
accountNumber: '<string>',
accountLabel: '<string>'
}
}
})
};
fetch('https://api.example.com/api/v2/sessions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v2/sessions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'referenceId' => '<string>',
'type' => 'EFT',
'direction' => 'DEBIT',
'currency' => 'CAD',
'amount' => 123,
'options' => [
'guarantee' => [
'enable' => false
],
'notificationPreferences' => [
],
'showConsentScreen' => true,
'limits' => [
'minimumAmount' => 123,
'maximumAmount' => 123
],
'amountModification' => true,
'redirectPreferences' => [
'urlSuccess' => '<string>',
'urlExit' => '<string>'
]
],
'payor' => [
'email' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'middleName' => '<string>',
'occupation' => '<string>',
'birthDate' => '<string>',
'account' => [
'accountId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'institutionCode' => '<string>',
'transitNumber' => '<string>',
'accountNumber' => '<string>',
'accountLabel' => '<string>'
],
'address' => [
'addressLine1' => '<string>',
'addressLine2' => '<string>',
'unit' => '<string>',
'city' => '<string>',
'province' => '<string>',
'country' => '<string>',
'postalCode' => '<string>'
]
],
'payee' => [
'account' => [
'institutionCode' => '<string>',
'transitNumber' => '<string>',
'accountNumber' => '<string>',
'accountLabel' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v2/sessions"
payload := strings.NewReader("{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/api/v2/sessions")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v2/sessions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"<string>\",\n \"type\": \"EFT\",\n \"direction\": \"DEBIT\",\n \"currency\": \"CAD\",\n \"amount\": 123,\n \"options\": {\n \"guarantee\": {\n \"enable\": false\n },\n \"notificationPreferences\": {},\n \"showConsentScreen\": true,\n \"limits\": {\n \"minimumAmount\": 123,\n \"maximumAmount\": 123\n },\n \"amountModification\": true,\n \"redirectPreferences\": {\n \"urlSuccess\": \"<string>\",\n \"urlExit\": \"<string>\"\n }\n },\n \"payor\": {\n \"email\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"occupation\": \"<string>\",\n \"birthDate\": \"<string>\",\n \"account\": {\n \"accountId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n },\n \"address\": {\n \"addressLine1\": \"<string>\",\n \"addressLine2\": \"<string>\",\n \"unit\": \"<string>\",\n \"city\": \"<string>\",\n \"province\": \"<string>\",\n \"country\": \"<string>\",\n \"postalCode\": \"<string>\"\n }\n },\n \"payee\": {\n \"account\": {\n \"institutionCode\": \"<string>\",\n \"transitNumber\": \"<string>\",\n \"accountNumber\": \"<string>\",\n \"accountLabel\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"sessionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referenceId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>"
}Create a new EFT session and obtain a
sessionId for launching the user payment flow.
To successfully call this endpoint, you must first call the /Authorize endpoint to obtain a valid access token.
Initiate an EFT Session
This endpoint creates a session on the Regular EFT path and returns asessionId that your application uses to launch the hosted Flinks Pay flow: either by redirecting the user to the app URL or loading it in an iframe.
Set type to EFT and options.guarantee.enable to false. Funds settle to your client’s configured bank account.
Payee Account (Optional)
Thepayee.account object lets you specify which destination account should receive the funds:
- When
payee.accountis provided: funds are routed to the account you specify (institutionCode,transitNumber,accountNumber). Use this when you need per-session routing (for example, settling to different merchant accounts). - When
payee.accountis omitted: Flinks falls back to the default client bank account configured during onboarding. If no default account is configured on your client, the request is rejected.
Authentication Requirements
- You must authenticate and obtain a valid
access_tokenfrom the /Authorize endpoint. - Create the session while the token is still valid (599 seconds). If it expires, re-authenticate and call this endpoint again.
- Your client must have the RegularEft feature enabled. If it is not, the request returns
403 Forbidden.
User Identity Matching
firstName and lastName are used for identity matching against the payor’s bank account. They must accurately reflect the person who owns the external account expected to make the payment.
Critical: If the provided name differs significantly from the name on the linked bank account, the session will return an error (EFT0403) and the transaction will not be processed.
Reference ID Best Practices
WhilereferenceId is not mandatory, it is strongly recommended:
- It should uniquely identify the end user or transaction in your system.
- It appears in responses and reconciliation files for easy matching.
- For EFT it flows through as the cross-reference number, so it must be 1 to 36 alphanumeric characters or hyphens.
Amount Handling
- When
amountis provided: the value is pre-set and the user cannot modify it in the flow. It must fall within your client’s configured minimum/maximum EFT amount. - When
amountis omitted: the user enters the amount during the hosted flow.
Payor Address
payor.address is optional for regular EFT. If you include it, address line 1, city, province, postal code, and country are required. (An address is only mandatory for Guaranteed EFT.)
Launching the Payment Flow
Once you have asessionId, launch the user flow by directing users to:
{{BaseUri}}/app/?sessionId={{sessionId}}
Field Specifications
Character Limits
| Field | Limit | Notes |
|---|---|---|
firstName, lastName | 100 characters | Required for identity matching |
email | 100 characters | Required; used for notifications |
referenceId | 1 to 36 characters | Alphanumeric and hyphens only |
postalCode | 6 characters | No spaces (e.g., M5H2N2) |
province | 2 characters | Provincial code (e.g., ON, QC) |
country | 2 characters | Only CA supported |
Supported Province Codes
AB, BC, MB, NB, NL, NT, NS, NU, ON, PE, QC, SK, YTRelated Endpoints
- Get Session Details: retrieve comprehensive session information
- Cancel Session: terminate an active session
Headers
Body
application/json
Available options:
EFT, e-Transfer Available options:
DEBIT, CREDIT Available options:
CAD Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I