Documentation Index
Fetch the complete documentation index at: https://docs.flinks.com/llms.txt
Use this file to discover all available pages before exploring further.
Work in progressThis section is currently under active development as part of improvements planned for 2026. Content may change as we expand product capabilities.If you’re interested in early access or want to learn more about what’s coming, feel free to reach out to the team.
The EFT (Electronic Funds Transfer) API provides endpoints to create, monitor, and manage PAD-based debit and credit transactions through Canada’s EFT rail.
Base URLs
Production: {{BaseUri}}
Sandbox: {{BaseUri}}
Authentication
EFT API endpoints use two authentication methods:
- OAuth 2.0 Client Credentials — Used for the
/authorize endpoint. Authenticate with Basic auth (Client ID and Secret) to obtain a Bearer token valid for 599 seconds.
- API Key — Most EFT endpoints authenticate via the
x-client-id header, provided during onboarding.
API Endpoints
Authentication
| Method | Endpoint | Description |
|---|
| POST | /api/v1/authorize | Obtain access token |
Transactions
| Method | Endpoint | Description |
|---|
| POST | /api/v1/transactions | Create EFT transaction |
Payment Requests
| Method | Endpoint | Description |
|---|
| GET | /api/v1/paymentrequests/{requestId} | Get payment request status |
| POST | /api/v1/paymentrequests/{requestId}/cancel | Cancel payment request |
Schedules
| Method | Endpoint | Description |
|---|
| POST | /api/v1/schedules/{scheduleId}/cancel | Cancel schedule |
Institutions
| Method | Endpoint | Description |
|---|
| GET | /api/v1/institutions | List supported institutions |
Quick Start
1. Authenticate
curl --location '{{BaseUri}}/api/v1/authorize' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic {{clientId:clientSecret}}' \
--data-urlencode 'grant_type=client_credentials'
2. Create a Transaction
curl --location '{{BaseUri}}/api/v1/transactions' \
--header 'Content-Type: application/json' \
--header 'x-client-id: {{your-client-id}}' \
--data '[{
"transactionCode": 1,
"amount": 100.00,
"paymentDirection": "DEBIT",
"currency": "CAD",
"payor": {
"accountInfo": {
"institutionCode": "001",
"transitNumber": "12345",
"accountNumber": "1234567"
},
"contactInfo": {
"firstName": "John",
"lastName": "Smith"
}
},
"scheduleInfo": {
"paymentFrequency": "OneTime",
"startDate": "2026-04-15"
}
}]'
3. Monitor Status
curl --location '{{BaseUri}}/api/v1/paymentrequests/{{requestId}}'
EFT Status Codes
EFT Transaction Status (EftStatus)
| Status | Description |
|---|
Received | Transaction request received by Flinks |
Created | Transaction created and queued for processing |
Submitted | Submitted to Payments Canada |
Reconciled | Confirmation received from the payment network |
Settled | Funds have settled |
Cancelled | Transaction was cancelled before submission |
Rejected | Transaction was rejected by the payment network |
Payment Request Status (PaymentStatus)
| Status | Description |
|---|
Initiated | Payment request created |
Processing | Payment is being processed |
Accepted | Payment accepted by the network |
Processed | Payment has been processed |
Settled | Funds have settled |
Cancelled | Payment was cancelled |
Field Specifications
Character Limits
| Field | Constraint |
|---|
description | Max 15 characters |
crossReferenceNumber | Alphanumeric and hyphens only, max 36 characters |
institutionCode | Exactly 3 digits |
transitNumber | Exactly 5 digits |
accountNumber | 7–12 digits |
Amount Rules
| Rule | Value |
|---|
| Minimum | $0.01 |
| Currency | CAD only |
Validation Rules
DEBIT Transactions
payor is required; payee must not be provided
startDate must be a future date
- OneTime:
startDate is required
- Recurring (Weekly, Biweekly, Monthly):
startDate is required, plus either endDate or transactionsCount (not both); transactionsCount max is 300; endDate must be after startDate
CREDIT Transactions
payee is required; payor must not be provided
- Only
OneTime frequency is supported
startDate must be the current day (same-day only)
Account Info
Provide either:
accountId (a GUID referencing a previously stored account), or
- The combination of
institutionCode + transitNumber + accountNumber
You cannot provide both.
Provide either:
contactId (a GUID referencing a previously stored contact), or
firstName + lastName, or legalName
You cannot provide both.
Schedule Frequency Reference
| Frequency | Value | Notes |
|---|
| One-time | OneTime | Single payment on start date |
| Weekly | Weekly | Every 7 days from start date |
| Biweekly | Biweekly | Every 14 days from start date |
| Monthly | Monthly | Same day each month from start date |
EFT Processing Windows
Flinks follows Payments Canada EFT processing schedule:
| Window | Cutoff Time | Submission Time | Days |
|---|
| Window 1 | 2:30am EDT | 9:30am EDT | Mon–Fri |
| Window 2 | 1:30pm EDT | 4:30pm EDT | Mon–Fri |
| Window 3 | 6:00pm EDT | 9:00pm EDT | Mon–Fri |
No processing on weekends or statutory holidays.
Error Handling
Common Errors
Validation Error (400):
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "Bad Request",
"status": 400,
"errors": {
"Amount": ["Amount should be greater than 1 cent"],
"Payor": ["Debit transactions require a Payor."]
}
}
Unauthorized (401):
Returned when the x-client-id header is missing or invalid.
Next Steps
- Create Transaction — Full request and response schema
- Get Payment Request — Monitor payment status (endpoint reference coming soon)
- Setup Guide — Complete implementation walkthrough