Interac Online Deposit (Paybilt)
Paybilt´s Interac Online deposit is an online banking payment method from Canada.
Paybilt’s Interac Online API allows the merchant to accept customers who prefer to pay with Interac Online. Although a legacy Interac product, it is a secure and easy online payment option for many Canadians.
The following method IDs are covered in this section:
ID | Name | Credit/Debit State |
---|---|---|
434 | Interac Online Deposit | DepositedByProvider (29) |
Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).
ProviderID: 204
After initiating the payment with Paybilt, the customer is redirected to a online banking selection page to complete their online payment.
The customer is redirected back from the online banking page to the merchant.
Redirect Integration
Not supported at this moment.
Backend2BackendIntegration
The merchant needs to ensure to include an user in the initiatepaymentRequest with the following data:
User.data | Descrition |
---|---|
eMail (required) | The customer´s eMail address. |
phone (required) | The customer´s phone number. Please use this format: "+14034881071" |
FirstName (required) | The customer´s first name. |
LastName (required) | The customer´s last name |
Address.Street (required) | The customer´s street address. |
Address.City (required) | The customer´s city. |
Address.State (required) | The customer´s state in ISO format, e.g. "Alberta" |
Address.Country (required) | The customer´s country. |
Address.postal_code (required) | The customer´s zip code, either 5-digit zip code for US customer (e.g. "12345") or 6-character alphanumeric postal code (e.g. "A1A 1A1") for Canadian customers |
The following data needs to be passed as well:
key (value type, account type, required) | Value |
---|---|
IP-Address (required) | The user´s IP address. |
The following parameters can be provided in initiatePaymentRequest.specificPaymentData:
key (value type, account type, required) | Value |
---|---|
HomePageURL (string, required) | The URL to redirect user in case of successful payment |
Example initiatePaymentRequest:
<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<merchantID>TestMerchant</merchantID>
<shopID>TestShop</shopID>
<merchantTransactionID>10000103</merchantTransactionID>
<paymentMethodID>434</paymentMethodID>
<amount currencyCode="CAD">1.00</amount>
<userID>afb6629f-0169-4777-943f-22e73a1</userID>
<userData>
<username>afb6629f-0169-4777-943f-22e731a1</username>
<firstname>testfirstname</firstname>
<lastname>testlastname</lastname>
<currencyCode>CAD</currencyCode>
<languageCode xsi:nil="true"/>
<email>[email protected]</email>
<address>
<street>Teststreet 1</street>
<houseName xsi:nil="true"/>
<houseNumber xsi:nil="true"/>
<houseNumberExtension xsi:nil="true"/>
<postalCode>T1A 0N1</postalCode>
<city>Hamilton</city>
<state>ON</state>
<countryCode2>CA</countryCode2>
<telephoneNumber>+14034881071</telephoneNumber>
</address>
<gender>Male</gender>
<identificationNumberType xsi:nil="true"/>
<drivingLicenseNumber xsi:nil="true"/>
<drivingLicenseIssuingState xsi:nil="true"/>
</userData>
<userIP>127.0.0.1</userIP>
<userSessionID>08b980b9-b5be-4d0a-9e1b-a6541d6ac9ce</userSessionID>
<creationTypeID>1</creationTypeID>
<specificPaymentData>
<data xsi:type="keyStringValuePair">
<key>HomePageUrl</key>
<value>https://pxpfinancial.com</value>
</data>
</specificPaymentData>
</initiatePaymentRequest>
Example initiatePaymentResponse:
<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<payment xsi:type="paymentWithPaymentAccount">
<merchantID>TestMerchant</merchantID>
<shopID>TestShop</shopID>
<paymentMethod>
<key>434</key>
<value>Interac Online Deposit</value>
</paymentMethod>
<merchantTransactionID>Payper_ProviderTesting_Online_001</merchantTransactionID>
<paymentID>70ce5133-d6cb-4efb-aa1b-79c878a0cf17</paymentID>
<userID>a6f548a1-7541-4c2c-91f7-1d7549</userID>
<paymentProvider>
<key>204</key>
<value>Payper</value>
</paymentProvider>
<amount currencyCode="CAD">201.00</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>8ec00df3-3062-45ab-915d-f02d1ed16806</id>
<definition>
<key>30</key>
<value>RedirectURLCreated</value>
</definition>
<createdOn>2022-09-12T07:58:18.6596592Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>RedirectionUrl</key>
<value>https://sandbox.interac.payper.ca/interacOnline/30676372713998500493862421822</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">145.16</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>30676372713998500493862421822</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>679</value>
</detail>
</paymentDetails>
</payment>
</initiatePaymentResponse>
Possible payment states in initiatePaymentResponse:
Payment State | Description |
---|---|
RedirectURLCreated (287) | OK state; Redirect user to the URL The merchant system should retrieve the redirect URL from the key RedirectionUrl |
InitiateErrorReportedByProvider (4) | Error state; Technical error during payment initialization. Final state. |
InitiateRequestProviderCommunicationErrorOccured (325) | Technical communication error state. Final state. |
InitiateRefusedByProvider (550) | Generic provider decline |
ValidationFailed (225) | Error state returned if submitted data is incorrect. Incorrect field information will be returned in ProviderErrorResponseCode, ProviderErrorResponseMessage _and _ProviderResponseMessageAdvice |
Sample initiatePaymentResponse with state ValidationFailed:
<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentResponse xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns=http://www.cqrpayments.com/PaymentProcessing>
<payment
xsi:type="paymentWithPaymentAccount">
<merchantID>B2BTestMerchant</merchantID>
<shopID>PayperMockShop</shopID>
<paymentMethod>
<key>434</key>
<value>Interac Online Deposit</value>
</paymentMethod>
<merchantTransactionID>30f7e6e0-849d-41e1-ae78-372a752bfb36</merchantTransactionID>
<paymentID>a883cd39-51a2-40e4-a788-df661eb552a1</paymentID>
<userID>1a04a008-ff20-407c-a69a-f218cd</userID>
<paymentProvider>
<key>204</key>
<value>Payper</value>
</paymentProvider>
<amount currencyCode="CAD">104.01</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>3a740f93-db9b-45fa-b9d2-eb446c7c47c9</id>
<definition>
<key>225</key>
<value>ValidationFailed</value>
</definition>
<createdOn>2023-03-28T10:40:38.7194932Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderErrorResponseCode</key>
<value>1116</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderErrorResponseMessage</key>
<value>udf1 must be unique!</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderResponseMessageAdvice</key>
<value>Sorry your request was declined!, please contact support for more information.</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">75.11</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>57501</value>
</detail>
</paymentDetails>
</payment>
</initiatePaymentResponse>
After redirection of the customer to Paybilt, a notification is being sent from Paybilt to PXP Financial.
Transition from redirect to final (success) state could take from a few seconds up to 24 hours.
Intermediate states
The intermediate states PendingOnCustomer and PendingOnProvider are only available on InteracETransferDeposit.
These states below are final states:
Payment State | Description |
---|---|
Expired (102) | The payment request has expired. |
DepositedByProvider (29) | The payment was reported as successful by the provider. |
RefusedByProvider (100) | The payment has been declined. |
Expired (102) | The payment request has expired. An Interac Online payment will expire 48 hours from midnight UTC the following day. |
Aborted (524) | The payment has been cancelled by the merchant or by PayPer on behalf of the merchant. |
Expiry
An Interac Online payment will expire 48 hours from midnight UTC the following day.
For example, if an Interac eTransfer transaction is created at September 16th at 21:00 UTC, it will expire 48 hours from September 17th 00:00UTC so on September 19th at 00:00 UTC.
Notifications
The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.
Example handlePaymentStateChangedNotificationRequest:
<?xml version="1.0" encoding="utf-8"?>
<handlePaymentStateChangedNotificationRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.cqrpayments.com/PaymentProcessing">
<payment xsi:type="paymentWithPaymentAccount">
<merchantID>TestMerchant</merchantID>
<shopID>TestShop</shopID>
<paymentMethod>
<key>434</key>
<value>Interac Online Deposit</value>
</paymentMethod>
<merchantTransactionID>b0008724-1820-443b-92ec-94c21cac54c8</merchantTransactionID>
<paymentID>745700ba-6125-48b2-a1ce-c5e2de66dac6</paymentID>
<userID>86a1c05d-9bf5-4093-91ea-342d1b</userID>
<paymentProvider>
<key>204</key>
<value>Payper</value>
</paymentProvider>
<amount currencyCode="CAD">110.0100</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>1ac3bc42-1f4f-46ae-be2c-c7ea86e462d0</id>
<definition>
<key>29</key>
<value>DepositedByProvider</value>
</definition>
<createdOn>2022-09-12T07:38:52.81</createdOn>
<paymentStateDetails xsi:nil="true"/>
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">79.4500</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>646</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>874e6383-d1ee-48f9-9c21-0628c5955094</value>
</detail>
</paymentDetails>
</payment>
</handlePaymentStateChangedNotificationRequest>
Provider Testing
Open the redirectURL and choose between "approve" or "decline".
Updated about 2 months ago