Looking for the original endpoints (create transaction, schedules, PAD agreements)? See the EFT V1 reference. V2 is the recommended path for new integrations.
How V2 differs from V1
| V1 (Direct Transactions) | V2 (Session-based) | |
|---|---|---|
| Integration | Multiple endpoints, custom front-end | One session + hosted UI |
| Create call | POST /api/v1/transactions | POST /api/v2/sessions (type = EFT) |
| Status model | EftStatus / PaymentStatus | SessionStatus |
| Bank account capture | Provided by you | Captured in the hosted flow |
Base URLs
Production:{{BaseUri}}
Sandbox: {{BaseUri}}
Authentication
EFT V2 uses the OAuth 2.0 Client Credentials flow:- Authenticate with Basic auth (Client ID and Secret) at the /Authorize endpoint.
- Receive a Bearer token valid for 599 seconds (10 minutes).
- Use the Bearer token on all subsequent calls via the
Authorization: Bearerheader. - Refresh the token before it expires.
| Endpoint | Authentication |
|---|---|
POST /api/v2/sessions | Bearer token |
POST /api/v2/sessions/{sessionId}/cancel | Bearer token |
GET /api/v2/sessions/{sessionId}/details | Bearer token |
403).
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/v1/authorize | Obtain access token |
| POST | /api/v2/sessions | Initiate session |
| GET | /api/v2/sessions/{sessionId}/details | Get session details |
| POST | /api/v2/sessions/{sessionId}/cancel | Cancel session |
Quick Start
1. Authenticate
2. Initiate a session
sessionId:
3. Launch the user flow
4. Monitor the session
Session Status Codes
| Status | StatusDetails | Description |
|---|---|---|
Initiated | EFT0101 | 🟡 Session created, awaiting user start |
Completed | EFT0301 | 🟢 Transaction scheduled, session fully completed |
Completed | EFT0302 | 🟠 Bank account validated, awaiting PAD signature |
Failed | EFT0401 | 🔴 Login failed — invalid financial institution credentials |
Failed | EFT0403 | 🔴 Identity failed — user information did not match the bank account |
Failed | EFT0404 | 🔴 Insufficient available balance |
Cancelled | EFT0501 | ⚫ Session cancelled by API request |
Expired | EFT0601 | ⚫ Session timed out — user inactive or did not complete |
Guarantee-related outcomes do not apply to regular EFT — they are specific to GEFT.
Validation Rules
typemust beEFT;directionmust beDEBIT;currencymust beCAD(defaults toCAD).payor.firstName,payor.lastName, andpayor.emailare required.payor.addressis optional for regular EFT. If provided, address line 1, city, province, postal code, and country are required.payeemust be omitted — funds settle to your client’s configured account.referenceIdis optional but recommended; it must be 1–36 alphanumeric characters or hyphens.amountis optional; if provided it must be greater than 0, have at most 2 decimal places, and fall within your client’s configured minimum/maximum EFT amount. If omitted, the user enters the amount in the hosted flow.
Next Steps
- Initiate Session — full request and response schema
- Session Details — retrieve full session information and status