Skip to main content
Beta version available

The Global Payments 2 API is available in Beta. Please reach-out to our team to begin your integration.

Initiate an Interac e-Transfer payment request

In this tutorial, you will learn how to use the Global Payments API to initiate an Interac e-Transfer payment. After sending the request, you’ll review a successful response and learn how to check the status of your request.

By the end of this tutorial, you will know how to:

  • Create a well-formed Interac e-Transfer payment request payload.
  • Interpret the values in a successful response.
  • Use the endToEndId to check and confirm the status of your request.

Before you begin

To use Interac e-Transfer, you will need:

  • registered and fully onboarded Developer Account on the J.P. Morgan Payments Developer Portal.
  • An active project that provides you with the credentials used to make a request.
  • A bank account configured for each country where you want to perform an Interac e-Transfer payment transaction.

Create and send an Interac e-Transfer request payload

Request payloads for the Global Payments API have required, optional, and conditional fields.

Mobile phone number

The following example demonstrates an Interac e-Transfer payment request when the payment option is an alias using a mobile phone number.

POST /tsapi/v1/payments HTTP/1.1 - mobile phone number alias
Json
{
    "payments": {
        "requestedExecutionDate": "2023-01-01",
        "paymentIdentifiers": {
            "endToEndId": "QA03132368A",
        },
        "paymentCurrency": "CAD",
        "paymentAmount": 5.06,
        "transferType": "CREDIT",
        "debtor": {
            "debtorName": "Paula Smitty",
            "debtorAccount": {
                "accountId": "0123456789"
            },
        },
        "debtorAgent": {
            "financialInstitutionId": {
                "bic": "CHASCATT"
            }
        },
        "creditor": {
            "creditorName": "Paula Smitty",
            "creditorAccount": {
                "accountType": "INTERAC",
				"alternateAccountIdentifier": "+1-905-454-1234",
				"schemeName": {
					"proprietary": "TELI"
				}
            },
            "postalAddress": {
                "addressType": "ADDR",
                "streetName": "Blue Jays Street",
                "buildingNumber": "12",
                "postalCode": "11298",
                "townName": "Toronto",
                "countrySubDvsn": "Ontario",
                "country": "CA"
            },
            "countryOfResidence": "CA",
        },
        "remittanceInformation": {
            "unstructuredInformation": [
                "Payment for Invoice 123"
            ]
        },
        "purpose": {
            "code": "XXXX"
        },
        "secureVerification": [
            {
                "key": "what is your policy number?",
                "secret": "UrWh9hQ3Ng6U2+ZLJXfDI4fQbs6Ob3Cc5lf1zb3u8IY="
            }
        ],
        "paymentExpiryDate": "2023-01-20T20:32:36.611317600Z"
    }

ANR for TP3

The following example demonstrates an Interac e-Transfer payment request when the payment option is an Account Number Routing (ANR) sent for a Third-Party Payment Provider (TP3):

Example payment request - ANR for TP3
Json
{
    "payments": {
        "requestedExecutionDate": "2023-01-01",
        "paymentIdentifiers": {
            "endToEndId": "QA03132368A",
        },
        "paymentCurrency": "CAD",
        "paymentAmount": 5.06,
        "transferType": "CREDIT",
        "debtor": {
            "debtorName": "Paula Smitty",
            "debtorAccount": {
                "accountId": "0123456789"
            },
            "ultimateDebtor": {
                "ultimateDebtorName": "Jane Smith",
                  "postalAddress": {
                    "addressType": "ADDR",
                    "streetName": "Toronto Street",
                    "buildingNumber": "42",
                    "postalCode": "11223",
                    "townName": "Toronto",
                    "countrySubDvsn": "Ontario",
                    "country": "CA"
                }
            }
        },
        "debtorAgent": {
            "financialInstitutionId": {
                "bic": "CHASCATT"
            }
        },
        "creditor": {
            "creditorName": "Paul Smith",
            "creditorAccount": {
                "accountType": "INTERAC",
                "accountId": "099-43424-2454278"
            },
            "postalAddress": {
                "addressType": "ADDR",
                "streetName": "Blue Jays Street",
                "buildingNumber": "12",
                "postalCode": "11298",
                "townName": "Toronto",
                "countrySubDvsn": "Ontario",
                "country": "CA"
            },
            "countryOfResidence": "CA",
        },
        "remittanceInformation": {
            "unstructuredInformation": [
                "Payment for Invoice 123"
            ]
        },
        "purpose": {
            "code": "XXXX"
        },
        "paymentExpiryDate": "2023-01-20T20:32:36.611317600Z"
    }
}

e-Mail for MSB

The following example demonstrates an Interac e-Transfer payment request when the payment option is an Alias using e-Mail sent for a Money Service Business (MSB):

Example payment request - e-Mail for MSB alias
Json
{
    "payments": {
        "requestedExecutionDate": "2023-01-01",
        "paymentIdentifiers": {
            "endToEndId": "QA03132368A",
        },
        "paymentCurrency": "CAD",
        "paymentAmount": 5.06,
        "transferType": "CREDIT",
        "debtor": {
            "debtorName": "Paula Smitty,
            "debtorAccount": {
                "accountId": "0123456789"
            },
            "ultimateDebtor": {
                "ultimateDebtorName": "Jane Smith",
                  "postalAddress": {
                    "addressType": "ADDR",
                    "streetName": "Toronto Street",
                    "buildingNumber": "42",
                    "postalCode": "11223",
                    "townName": "Toronto",
                    "countrySubDvsn": "Ontario",
                    "country": "CA"
                }
            }
        },
        "debtorAgent": {
            "financialInstitutionId": {
                "bic": "CHASCATT"
            }
        },
        "creditor": {
            "creditorName": "Paul Smith",
            "creditorAccount": {
                "accountType": "INTERAC",
                "alternateAccountIdentifier": "smith@interoc.ca",
                "schemeName": {
                    "proprietary": "EMAL"
                }
            },
            "postalAddress": {
                "addressType": "ADDR",
                "streetName": "Blue Jays Street",
                "buildingNumber": "12",
                "postalCode": "11298",
                "townName": "Toronto",
                "countrySubDvsn": "Ontario",
                "country": "CA"
            },
            "countryOfResidence": "CA",
        },
        "remittanceInformation": {
            "unstructuredInformation": [
                "Payment for Invoice 123"
            ]
        },
        "purpose": {
            "code": "XXXX"
        },
        "secureVerification": [
            {
                "key": "what is your policy number?",
                "secret": "UrWh9hQ3Ng6U2+ZLJXfDI4fQbs6Ob3Cc5lf1zb3u8IY="
            }
        ],
        "paymentExpiryDate": "2023-01-20T20:32:36.611317600Z"
    }
}

Create a request payload using one of the examples above as a template and try it now in our interactive testing environment.

Confirm Response

You will receive a successful response containing a firmRootId and an endToEndId. These values can be used in the next step to retrieve the status of your request.

Example response with endToEndId & firmRootId - HTTP 202 Accepted
Json
{
  "paymentInitiationResponse": {
    "firmRootId": "02494953-e015-4071-stk4-3b95d3ee9b76",
    "endToEndId": "QA03132368A"
    }
}

There are also several error responses you may encounter at this stage. We recommend viewing the error codes section to understand supported responses. If you need additional support, contact your Client Service Account Manager.

Next steps