Overview

Interac e-Transfer enables secure money transfers between Canadian bank accounts. This endpoint supports both incoming (receiving) and outgoing (sending) transfers.

Endpoint

POST /payment-sessions

Common Requirements

Canadian-Specific Validation:
  • Valid Canadian phone number (+1 format)
  • Canadian postal code format
  • Province/territory codes (e.g., ON, BC, AB)
  • Canadian bank account required

Incoming Transfers

Use this flow when receiving payments from customers through Interac e-Transfer.

Request Parameters

amount
integer
required
Payment amount in minor units (e.g., cents, kobo)
  • Minimum: 100
  • Must be positive integer
  • Example: 10000 = $100.00 USD
currency
string
required
Three-letter ISO currency code
  • Supported: NGN, USD, CAD
  • Must match payment method
  • Example: “USD”
customer
object
required
Customer information object
description
string
required
Payment description
  • Maximum length: 200 characters
  • Will appear on statements
reference
string
required
Unique transaction reference
  • Must be unique per transaction
  • Maximum length: 50 characters
payment_method
object
required
Payment method details
type
string
required
  • Must be of type: ""
order
object
required
Order information object
metadata
object
Optional additional data
  • Nested objects allowed

Example Request (Incoming)

{
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
    "phone_number": "+14165555555",
    "billing_address": {
      "line1": "123 Main St",
      "line2": "Unit 4B",
      "city": "Toronto",
      "state": "ON",
      "country": "CA",
      "zip_code": "M5V 2T6"
    },
    "ip_address": "127.0.0.1"
  },
  "description": "Invoice payment",
  "currency": "CAD",
  "amount": 100000,
  "direction": "incoming",
  "payment_method": {
    "type": "interac"
  },
  "reference": "inv_20240322_123",
  "order": {
    "identifier": "ORD12345",
    "items": [
      {
        "name": "Consulting Services",
        "type": "service"
      }
    ]
  }
}

Example Response (Incoming)

{
  "data": {
    "auth_type": null,
    "expires_at": "2024-03-23T15:25:25.973484Z",
    "links": {
      "redirect_url": "https://gateway-web.fit.interac.ca/reqPayment/eml/CA1MRz75R4Hy"
    },
    "message": "Pending",
    "payment": {
      "amount": 100000,
      "currency": "CAD",
      "status": "pending",
      "id": "6851605c-e860-11ee-9c3f-aedb120c6c16",
      // ... additional payment details
    }
  }
}

Outgoing Transfers

Use this flow when sending payments to recipients through Interac e-Transfer.

Additional Parameters for Outgoing Transfers

payment_method
object
required

Example Request (Outgoing)

{
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "john.doe@example.com",
    "phone_number": "+14165555555",
    "billing_address": {
      "line1": "123 Main St",
      "line2": "Unit 4B",
      "city": "Toronto",
      "state": "ON",
      "country": "CA",
      "zip_code": "M5V 2T6"
    },
    "ip_address": "127.0.0.1"
  },
  "description": "Expense reimbursement",
  "currency": "CAD",
  "amount": 100000,
  "direction": "outgoing",
  "payment_method": {
    "type": "interac",
    "beneficiary_type": "personal",
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane.smith@example.com",
    "phone_number": "+14165556666",
    "question": "What is our project code?",
    "answer": "ALPHA123"
  },
  "reference": "exp_20240322_456",
  "order": {
      "identifier": "EXP12345",
      "items": [
        {
          "name": "Travel Reimbursement",
          "type": "expense"
        }
      ]
  },
}

Validation Rules

Error Handling

invalid_province
error
Invalid Canadian province/territory code provided.
  • Must be one of: AB, BC, MB, NB, NL, NS, NT, NU, ON, PE, QC, SK, YT
invalid_postal_code
error
Invalid Canadian postal code format.
  • Must match pattern: A1A 1A1
invalid_phone
error
Invalid Canadian phone number.
  • Must start with +1
  • Must be a valid area code
amount_limit_exceeded
error
Transfer amount exceeds limits.
  • Check minimum/maximum allowed amounts

Processing Times

  • Incoming transfers: Usually processed within 15-30 minutes
  • Outgoing transfers: Usually processed within 30-60 minutes
  • Cutoff times may apply based on recipient’s bank

Need Help?

For support with Interac e-Transfer integration: