Mister Cash Deposit (Bancontact) via HiPay
Bancontact, also know as Mistercash till April 2016, is the market leader in electronic payments in Belgium.
The provider for this payment method is Hipay.
The following method IDs are covered in this section:
ID | Name | Credit/Debit State |
---|---|---|
112 | MistercashDeposit | DepositedByProvider (29) |
Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).
Method comparison
BancontactDeposit: this payment method requires passing the card details in advance and supports both the Bancontact mobile and the Bancontact web flow. The mobile flow is used by default, but can be turned off in the request.
On the mobile flow the user is shown a QR code and asked to open it the mobile app.
Alternatively the user can enter his card data for a regular payment.On the web flow the customer can directly pay by authorizing the payment with his HW dongle.
MistercashDeposit: thie payment method uses only the Bancontact mobile flow. Passing the card details in advance is not required and not possible.
Redirect integration
Not supported at the moment
Backend2Backend Integration
The following table contains the fields to be sent in initiatePaymentRequest
:
key (value type, account type, required) | value |
---|---|
userIP (string, required) | The IP of the user |
The following table contains the fields to be sent in initiatePaymentRequest.specificPaymentData
xml section:
key (value type, account type, required) | value |
---|---|
PaymentDescription (string) | Description of the payment |
SuccessPageUrl (string, required/optional) | URL, to which the client will be transferred in case that he confirms the payment |
CancelPageUrl (string, required/optional) | Cancel page URL |
ErrorPageUrl (string, required/optional) | Error page URL |
MerchantNotificationUrl (string, required/optional) | Merchant Notification URL |
HomePageUrl (string, required/optional) | Merchant home page URL |
PendingPageUrl (string, required/optional) | Pending page URL |
Please note that sending data of the user is essential for this Payment Method as the data is sent to provider. The following parameters must be provided in initiatePaymentRequest.userData
xml section:
Field | Value |
---|---|
Firstname (string, required) | The customer´s first name |
Lastname (string, required) | The customer´s last name. |
eMail (string, required) | The customer´s email address |
adress.countryCode2 (string, required) | The customer´s country |
languageCode (string, required) | The customer´s language. |
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>XXXXX</merchantID>
<shopID>XXXXXX</shopID>
<merchantTransactionID>d24cbd9f-a29a-4024-b0d9-25df80a3aa23</merchantTransactionID>
<paymentMethodID>112</paymentMethodID>
<amount currencyCode="EUR">76.80</amount>
<userID>13e461de-6d2c-4c95-83d5-8dfb52</userID>
<userData>
<username>13e461de-6d2c-4c95-83d5-8dfb52</username>
<firstname xsi:nil="true" />
<lastname xsi:nil="true" />
<currencyCode xsi:nil="true" />
<languageCode xsi:nil="true" />
<email xsi:nil="true" />
<address>
<street xsi:nil="true" />
<houseName xsi:nil="true" />
<houseNumber xsi:nil="true" />
<houseNumberExtension xsi:nil="true" />
<postalCode xsi:nil="true" />
<city xsi:nil="true" />
<state xsi:nil="true" />
<countryCode2>DE</countryCode2>
<telephoneNumber xsi:nil="true" />
</address>
<gender>Male</gender>
<identificationNumberType xsi:nil="true" />
<drivingLicenseNumber xsi:nil="true" />
<drivingLicenseIssuingState xsi:nil="true" />
</userData>
<userIP>127.0.0.1</userIP>
<userSessionID>e39d13c0-6032-4800-913d-00008b8ab480</userSessionID>
<creationTypeID>1</creationTypeID>
<specificPaymentData>
<data xsi:type="keyStringValuePair">
<key>SuccessPageUrl</key>
<value>https://returnurl.com</value>
</data>
<data xsi:type="keyStringValuePair">
<key>CancelPageUrl</key>
<value>http://cancel/?a=b&c=d</value>
</data>
<data xsi:type="keyStringValuePair">
<key>ErrorPageUrl</key>
<value>https://errorurl.com</value>
</data>
<data xsi:type="keyStringValuePair">
<key>MerchantNotificationUrl</key>
<value>https://merchantnotification</value>
</data>
<data xsi:type="keyStringValuePair">
<key>HomePageUrl</key>
<value>http://home/</value>
</data>
<data xsi:type="keyStringValuePair">
<key>PendingPageUrl</key>
<value>http://pending/</value>
</data>
<data xsi:type="keyStringValuePair">
<key>PaymentDescription</key>
<value>wise description</value>
</data>
</specificPaymentData>
</initiatePaymentRequest>
Example initiatePaymentResponse
:
<?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>XXXXXX</merchantID>
<shopID>XXXXXX</shopID>
<paymentMethod>
<key>112</key>
<value>MisterCashDeposit</value>
</paymentMethod>
<merchantTransactionID>d24cbd9f-a29a-4024-b0d9-25df80a3aa23</merchantTransactionID>
<paymentID>ce3ce03e-ed6d-4bea-b7e0-f27af1556714</paymentID>
<userID>13e461de-6d2c-4c95-83d5-8dfb52</userID>
<paymentProvider>
<key>132</key>
<value>Hipay</value>
</paymentProvider>
<amount currencyCode="EUR">76.80</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>093bccd3-e573-4822-8643-787b9aafae44</id>
<definition>
<key>30</key>
<value>RedirectURLCreated</value>
</definition>
<createdOn>2021-05-18T06:51:19.8577009Z</createdOn>
<paymentStateDetails>
<detail xsi:type="keyStringValuePair">
<key>RedirectionUrl</key>
<value>https://api.test2.kalixa.com/WebMockProviders/HipayFrontend/Index?orderId=128148&paymentProduct=bcmc-mobile</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>PaymentStateReasonID</key>
<value>1</value>
</detail>
</paymentStateDetails>
</state>
<isExecuted>false</isExecuted>
<baseAmount currencyCode="EUR">76.8</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>128148</value>
</detail>
</paymentDetails>
</payment>
</initiatePaymentResponse>
Bancontact mobile
By default the Bancontact mobile flow is initiated as described below.
The mobile version works differently depending on the device that the customer is using.
Web Device
If the customer uses a desktop for his payment (not a mobile or tablet device), then he will be redirected to a Bancontact screen where he is presented with a QR code. He needs to open his banking app on his mobile phone and scan the code presented on the screen to confirm the payment.
Mobile Device
If the customer uses a mobile device for his payment (mobile or tablet ), then he will be redirected to a Bancontact screen where he can choose to pay with his app or with the card.
The user is redirected to following page on a mobile device:
These screenshots are generated on the sandbox/test environment of Hipay. The actual view in production may vary.
When clicking the first button, the mobile app is opened (if pre-installed on the device). Clicking the second button, results in the following screen being displayed on the phone:
Notifications
The provider notifies PXP Financial on payments that are either Successful (state DepositedByProvider
), Declined (state RefusedByProvider
).
The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.
Payment States | Description |
---|---|
AuthorisedByProvider (13) | Success state |
RefusedByProvider | Payment has been rejected by the provider. |
AuthoriseErrorReportedByProvider | Payment has an error reported by the provider. |
Sample notification:
<?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>B2BTestMerchant</merchantID>
<shopID>HipayMistercashDeposit</shopID>
<paymentMethod>
<key>112</key>
<value>MisterCashDeposit</value>
</paymentMethod>
<merchantTransactionID>d24cbd9f-a29a-4024-b0d9-25df80a3aa23</merchantTransactionID>
<paymentID>ce3ce03e-ed6d-4bea-b7e0-f27af1556714</paymentID>
<userID>13e461de-6d2c-4c95-83d5-8dfb52</userID>
<paymentProvider>
<key>132</key>
<value>Hipay</value>
</paymentProvider>
<amount currencyCode="EUR">76.8000</amount>
<creationType>
<key>1</key>
<value>User</value>
</creationType>
<userIP>127.0.0.1</userIP>
<state>
<id>6f92232f-ebcc-4da4-8b5e-239b51e1f0e3</id>
<definition>
<key>29</key>
<value>DepositedByProvider</value>
</definition>
<createdOn>2021-05-18T06:51:20.877</createdOn>
<paymentStateDetails xsi:nil="true" />
</state>
<isExecuted>true</isExecuted>
<baseAmount currencyCode="EUR">76.8000</baseAmount>
<paymentDetails>
<detail xsi:type="keyStringValuePair">
<key>ProviderExternalID</key>
<value>128148</value>
</detail>
<detail xsi:type="keyIntValuePair">
<key>MerchantSettlementCurrencyID</key>
<value>2</value>
</detail>
<detail xsi:type="keyStringValuePair">
<key>ProviderTransactionID</key>
<value>388997073285</value>
</detail>
</paymentDetails>
</payment>
</handlePaymentStateChangedNotificationRequest>
Testing using the PXP Mock
The PXP test system provides a mock page for testing and simulating the provider behaviour.
This can be used for simulating certain test scenarios.
The functionality is described here: Bancontact/Mister Cash Deposit (via HiPay)
Updated over 2 years ago