Initiate an Interac e-Transfer payment request
In this tutorial, you'll 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 verify the status of your request.
By the end of this tutorial, you'll know how to:
- Create a well-formed Interac e-Transfer payment request payload.
- Interpret the values in a successful response.
- Use the
endToEndIdto check and confirm the status of your request.
Before you begin
To use Interac e-Transfer, you will need the following:
- A 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.
{
"payments": {
"requestedExecutionDate": "2023-01-01",
"paymentIdentifiers": {
"endToEndId": "QA03132368A",
},
"paymentCurrency": "CAD",
"paymentAmount": 5.06,
"transferType": "CREDIT",
"debtor": {
"debtorName": "John Doe",
"debtorAccount": {
"accountId": "0123456789"
},
},
"debtorAgent": {
"financialInstitutionId": {
"bic": "CHASCATT"
}
},
"creditor": {
"creditorName": "Jane Doe",
"creditorAccount": {
"accountType": "INTERAC",
"alternateAccountIdentifier": "TEST1US",
"schemeName": {
"proprietary": "TELI"
}
},
"postalAddress": {
"addressType": "ADDR",
"streetName": "Maple Avenue",
"buildingNumber": "5678",
"postalCode": "99999",
"townName": "Rivertown",
"countrySubDvsn": "ZZ",
"country": "AB"
},
"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):
{
"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"
}
}Email for MSB
The following example demonstrates an Interac e-Transfer payment request when the payment option is an alias using email sent for a Money Service Business (MSB):
{
"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"
}
}Use one of the previous examples as a template to create a request payload, and give it a try in our interactive testing environment..
Confirm response
You'll get a successful response that includes a firmRootId and an endToEndId. You can use these values in the next step to check the status of your request.
{
"paymentInitiationResponse": {
"firmRootId": "02494953-e015-4071-stk4-3b95d3ee9b76",
"endToEndId": "QA03132368A"
}
}You might encounter several error responses at this stage. We recommend checking the error codes section to understand the supported responses. If you need additional support, contact your Client Service Account Manager.
Next steps
- Learn how to retrieve the status of your request.
- Understand required payment parameters.
- Review our table of potential error codes.