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": true
},
"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": True },
"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: true},
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' => true
],
'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\": true\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\": true\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\": true\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>"
}GEFT
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": true
},
"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": True },
"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: true},
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' => true
],
'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\": true\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\": true\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\": true\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 GEFT 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.
Create a GEFT Session
This endpoint creates a GEFT session and returns asessionId that your application uses to launch the GEFT user flow in the hosted iFrame.
Authentication Requirements
- You must authenticate and obtain a valid
access_token - Create the session while the token is still valid (599 seconds)
- If the token expires, re-authenticate and call this endpoint again
Destination Account Logic
GEFT supports routing payments to different destinations:- With payee object: Funds are settled to the specified account
- Without payee object: Flinks automatically uses your client’s configured settlement account
- No payee + no settlement account configured: Request will be rejected with an error
User Identity Matching
Fields such asfirstName and lastName are used for identity matching against the external 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:
- In production, should uniquely identify the end user or transaction in your system
- Appears in responses and reconciliation files for easy matching
- Makes support requests much easier to resolve
- Used in sandbox to trigger specific test scenarios
Amount Handling
When amount is provided:- Value is pre-set for the user
- End user cannot modify the amount in the payment flow
- “Enter an amount” step is displayed, but grayed out
- Amount cannot be updated during any later phase of the session lifecycle
- No Next Best Offer (NBO) will be created with a preset amount
- User enters amount during the payment flow
- Min/max limits (if configured) are enforced
- Next Best Offer may be presented if the requested amount cannot be guaranteed
Launching the Payment Flow
Once you have a sessionId, launch the GEFT user flow by directing users to:{{BaseUri}}/app/?sessionId={{sessionId}}
Request Example
curl --location '{{BaseUri}}/api/v2/sessions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data-raw '
{
"referenceId": "USER12345",
"type": "EFT",
"direction": "DEBIT",
"currency": "CAD",
"amount": 500,
"options": {
"guarantee": {
"enable": true
},
"notificationPreferences": {
"language": "EN"
},
"showConsentScreen": true,
"limits": {
"minimumAmount": 10,
"maximumAmount": 1000
},
"amountModification": true,
"redirectPreferences": {
"mode": "JsEvents"
}
},
"payor": {
"firstName": "Jean-Claude",
"lastName": "Topinambour",
"email": "mrflinks@flinks.com",
"address": {
"addressLine1": "123 Main Street",
"city": "Toronto",
"postalCode": "A1A1A1",
"province": "ON",
"country": "CA"
}
},
"payee": {
"account": {
"accountNumber": "9876543",
"transitNumber": "30265",
"institutionCode": "999",
"accountLabel": "Settlement Account"
}
}
}'
Response
{
"sessionId": "850750a4-3021-4061-ac03-a8d873aa4179",
"referenceId": "USER12345"
}
Field Specifications
Character Limits
| Field | Limit | Notes |
|---|---|---|
firstName, lastName | 100 characters | Required for identity matching |
email | 100 characters | Used for notifications |
referenceId | 100 characters | Strongly recommended for tracking |
postalCode | 6 characters | No spaces (e.g., M5V0T7) |
province | 2 characters | Provincial code (e.g., ON, QC) |
accountNumber | Between 7 and 12 characters | Numbers only |
transitNumber | 5 characters | Numbers only |
institutionCode | 3 characters | Numbers only |
Supported Province Codes
AB, BC, MB, NB, NL, NT, NS, NU, ON, PE, QC, SK, YTAccount Label Display
Control how the “To Account” line is displayed in the UI using theaccountLabel field:
accountLabelprovided: Same text shown in “To Account” sectionaccountLabelomitted, payee account present: Flinks builds label using existing logicaccountLabelomitted, no payee account: “To Account” section is hidden
Related Endpoints
- Get Session Details - Retrieve comprehensive session information
- Cancel Session - Terminate 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?