Skip to main content

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 Payments (CAD via Interac Auto-Deposit) 

CAD direct deposits via Interac Auto-Deposit streamline the payment process, ensuring that incoming funds are quickly and securely credited to your account, enhancing both convenience and financial management.
Auto-deposit is enabled using the merchant’s registered email. Once we receive the merchant’s registered email, we configure it for Interac Auto-Deposit.
Test incoming CAD deposits in Production, as deposits are real-time.

Confirming Deposits

To confirm incoming deposits, listen for webhooks.Example webhook payload (successful CAD deposit):

{

  "checksum": "",

  "data": {

    "amount": 10000,

    "callback_urls": {},

    "cancellation_reason": null,

    "channel_reference": "",

    "collection_mode": null,

    "correlation_id": "",

    "currency": "NGN",

    "customer": {

      "account_id": "",

      "billing_address": {

        "city": "",

        "country": "NG",

        "line1": "",

        "state": "",

        "zip_code": ""

      },

      "email": "",

      "first_name": "",

      "id": "",

      "last_name": "",

      "phone_number": "",

      "type": ""

    },

    "date": "",

    "description": "",

    "fee": null,

    "id": "",

    "merchant": {

      "address": {

        "city": "",

        "country": "NG",

        "line1": "",

        "line2": null,

        "state": "",

        "zip_code": ""

      },

      "email": "",

      "id": "",

      "mcc": "",

      "name": "",

      "phone": ""

    },

    "order": {

      "identifier": "",

      "items": [

        {

          "name": "Transfer",

          "type": "digital"

        }

      ]

    }

    "mode": "live",

    "order": {

      "identifier": "",

      "items": [

        {

          "name": "Transfer",

          "type": "digital"

        }

      ]

    },

    "payer": {

      "account_name": null,

      "account_number": null,

      "bank_name": ""

    },

    "payment_method": {

      "account_numner": "",

      "account_name": "",

      "bank_code": "",

      "bank_name": "",

      "currency": "",

      "id": "",

      "type": "bank_account"

    },

    "provider_id": "",

    "redirect_url": null,

    "reference": "",

    "status": "success|failed",

    "transaction_id": "",

    "type": "payin|payout"

  },

  "event": "payment.session.succeeded|payment.session.failed"




}
Developer tasks:
  • Provide the merchant’s registered email so it can be enabled for auto-deposit.
  • Implement an endpoint on your server to receive POST requests from Juicyway.
  • Verify the checksum for authenticity.
  • Use status (success) + type (payin) to confirm the CAD deposit.
  • Update your internal systems (balances, invoices, etc.).

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
  • Minimum: CAD 100.00 (10000 cents)
  • Maximum: CAD 10,000.00 (1000000 cents)
  • Must be in Canadian Dollars (CAD)
  • Must be a positive integer in cents
  • Must begin with +1
  • Must be 11 digits total (+1 plus 10-digit number)
  • Area code must be valid for Canada
  • Must follow Canadian format: “A1A 1A1”
  • Letter-number-letter number-letter-number
  • First letter cannot be D, F, I, O, Q, U, W, Z
  • Required for outgoing transfers
  • Question must be 10-100 characters
  • Answer must be 3-50 characters
  • Cannot contain sensitive information

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: