Skip to main content
POST
cURL
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 a sessionId 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)

The payee.account object lets you specify which destination account should receive the funds:
  • When payee.account is 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.account is 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.
Flinks records the resolved destination account on the session so each transaction remains fully traceable.

Authentication Requirements

  • You must authenticate and obtain a valid access_token from 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

While referenceId 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 amount is 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 amount is 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 a sessionId, launch the user flow by directing users to:

Field Specifications

Character Limits

Supported Province Codes

AB, BC, MB, NB, NL, NT, NS, NU, ON, PE, QC, SK, YT

Headers

x-client-id
string

Body

application/json
referenceId
string | null
type
enum<string>
default:EFT
Available options:
EFT,
e-Transfer
direction
enum<string>
default:DEBIT
Available options:
DEBIT,
CREDIT
currency
enum<string>
Available options:
CAD
amount
number<decimal> | null
options
object
payor
object
payee
object

Response

Created

sessionId
string<uuid>
referenceId
string | null