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"
    }
  },
  "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"
    }
  },
  "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: