Bancontact/Mister Cash Deposit (via HiPay)

Bancontact, also know as Bancontact/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

231

BancontactDeposit

AuthorisedByProvider (13)

Payment method interaction type: Redirection to External Payment Provider (see Interaction Types).

Redirect Integration

Supported as of Sept, 23rd 2020.

Sending some specific customer data is mandatory for this Payment Method as the data is required by the provider. For a redirect integration (Checkout) the following parameters must be provided in the getRedirectDataRequest.redirectParameters.user section:

Field

value

firstname
(string, required)

The customers first name

lastname
(string, required)

The customers last name

email
(string, required)

The customers email address

address.countryCode2
(string, required)

The country of the customer´s address

languageCode
(string, required)

The main language of the customer

UseMobileVersion (Boolean)

Optional.
Can be provided as "false" to disable the automatic use of the mobile Bancontact version.
Details below in chapter Bancontact mobile

Example Screenshot of the PXP Financial Checkout detail page for a payment with Bancontact, using a new card:

Example Screenshot of the PXP Financial Checkout detail page for a payment with Bancontact, using an already saved card:

Example getRedirectDataRequest:

<getRedirectDataRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <merchantID>KalixaAcceptDEMO</merchantID>
    <redirectParameters xsi:type="paymentMethodDetailsRedirectParameters">
        <shopID>KalixaAcceptDEMO</shopID>
        <httpMethod>GET</httpMethod>
        <returnUrl>https://google.com/return</returnUrl>
        <languageCode>de</languageCode>
        <currencyCode>eur</currencyCode>
        <countryCode>AT</countryCode>
        <user>
            <id>TESTBancontact_20200721_0001</id>
            <username>TESTBancontact_20200721_0001</username>
            <firstname>Test-Firstname</firstname>
            <lastname>Test-Lastname</lastname>
            <languageCode>EN</languageCode>
            <email>[email protected]</email>
            <address>
                <street>Test-STreet</street>
                <houseNumber>10</houseNumber>
                <postalCode>113 51</postalCode>
                <city>Vienna</city>
                <countryCode2>AT</countryCode2>
                <telephoneNumber>004691023365</telephoneNumber>
            </address>
        </user>
        <merchantTransactionID>Bancontact-0030</merchantTransactionID>
        <grossAmount>10.00</grossAmount>
        <expirationTimeSpanInSeconds>3600</expirationTimeSpanInSeconds>
        <successUrl>https://google.com/successUrl/</successUrl>
        <pendingUrl>https://google.com/pendingUrl</pendingUrl>
        <errorUrl>https://google.com/errorUrl</errorUrl>
        <cancelUrl>https://google.com/cancelUrl</cancelUrl>
        <refusedUrl>https://google.com/refusedUrl</refusedUrl>
        <paymentMethodID>231</paymentMethodID>
        <isPaymentMethodChangeAllowed>false</isPaymentMethodChangeAllowed>
    </redirectParameters>
</getRedirectDataRequest>

After the customer has entered his card details or selected a stored card and has clicked the "Deposit Now" or "Pay Now" button in the PXP Checkout, the customer is redirected to the provider.

By default, the "mobile" version will be used, so a QR code is shown to the customer which he can scan with his banking app and confirm the payment. As a fallback there is also the option to pay manually, see image below.

Example Screenshot of the subsequent page at Provider side for a payment with Bancontact:

If a merchant wants to prevent that a customer can pay using the QR code, then he can send the optional parameter UseMobileVersion with value false in the getRedirectData request.
Then a different page will be shown to the customer to confirm the payment - depending on the bank. In the example below, the customer would now have to enter the PIN code from a HW dongle he holds in hands.

Example Screenshot of the subsequent page at Provider side for a payment with Bancontact, with disabled mobile version (merchant has sent UseMobileVersion=false) :

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)

URL, to which the client will be transferred in case that he confirms the payment

UseMobileVersion (Boolean)

Optional.
Can be provided as "false" to disable the automatic use of the mobile Bancontact version
Details below in chapter Bancontact mobile

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:

key (value type, account type, required)

value

Firstname
(string, required)

The user’s first name

Lastname
(string, required)

The user’s last name

Email
(string, required)

The user’s email address

CountryCode2
(string, required)

The user’s country code

LanguageCode
(string, required)

The user’s language code

Example initiatePaymentRequest:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" 
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>AcceptDemo</merchantID>
  <shopID>AcceptDemo</shopID>
  <merchantTransactionID>ec9100da-87b9-4735-b61c-96e0dc3570f0</merchantTransactionID>
  <paymentMethodID>231</paymentMethodID>
  <amount currencyCode="EUR">10.00</amount>
  <userID>95cc7384-7417-4173-88a4-bfdd85247c2c</userID>
  <userData>
    <firstname>Will</firstname>
    <lastname>Smith</lastname>
    <languageCode>en</languageCode>
    <email>[email protected]</email>
    <address>
      <street>Marxergasse</street>
      <houseName xsi:nil="true" />
      <houseNumber xsi:nil="true" />
      <houseNumberExtension xsi:nil="true" />
      <postalCode>1030</postalCode>
      <city>Wien</city>
      <state>Wien</state>
      <countryCode2>BE</countryCode2>
      <telephoneNumber>555 1234</telephoneNumber>
    </address>
  </userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>e564f6ed-cbac-495f-8008-88685a6395a8</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>PaymentDescription</key>
      <value>BancontactDeposit payment: short description</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PaymentDescriptionLanguageCode</key>
      <value>en</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>SuccessPageUrl</key>
      <value>http://merchant.com/result?param1=success?status=success&amp;txnid=payment12345</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>ErrorPageUrl</key>
      <value>http://merchant.com/result?param1=success?status=exception&amp;txnid=payment12345</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PendingPageUrl</key>
      <value>http://merchant.com/result?param1=success?status=pending&amp;txnid=payment12345</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>CancelPageUrl</key>
      <value>http://merchant.com/result?param1=success?status=cancel&amp;txnid=payment12345</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>RefusePageUrl</key>
      <value>http://merchant.com/result?param1=success?status=decline&amp;txnid=payment12345</value>
    </data>
  </specificPaymentData>
  <paymentAccount>
    <specificPaymentAccountData>
      <data xsi:type="keyStringValuePair">
        <key>CardNumber</key>
        <value>5234131094136942</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>HolderName</key>
        <value>John Doe</value>
      </data>
      <data xsi:type="keyIntValuePair">
        <key>ExpiryMonth</key>
        <value>11</value>
      </data>
      <data xsi:type="keyIntValuePair">
        <key>ExpiryYear</key>
        <value>2027</value>
      </data>
      <data xsi:type="keyStringValuePair">
        <key>CardVerificationCode</key>
        <value>111</value>
      </data>
    </specificPaymentAccountData>
  </paymentAccount>
</initiatePaymentRequest>

Example initiatePaymentResponse:

<?xml version="1.0" encoding="utf-8"?>
<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>AcceptDemo</merchantID>
    <shopID>AcceptDemo</shopID>
    <paymentMethod>
      <key>231</key>
      <value>BancontactDeposit</value>
    </paymentMethod>
    <merchantTransactionID>ec9100da-87b9-4735-b61c-96e0dc3570f0</merchantTransactionID>
    <paymentID>6c7ba9d6-54f8-408d-8ed4-8c6f455d611c</paymentID>
    <userID>95cc7384-7417-4173-88a4-bfdd85247c2c</userID>
    <paymentProvider>
      <key>132</key>
      <value>Hipay</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.00</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>5be6f0b3-ea29-4279-baa5-f048e4648408</id>
      <definition>
        <key>30</key>
        <value>RedirectURLCreated</value>
      </definition>
      <createdOn>2017-03-21T12:56:25.3224938Z</createdOn>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
         <key>RedirectionUrl</key>
         <value>http://dev.backend.cqrpayments.com/WebMockProviders/HipayFrontend/Index?orderId=1997</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>PaymentStateReasonID</key>
          <value>1</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">10</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>1997</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>82067237-71e4-41d2-8417-6e3d836354f3</paymentAccountID>
      <details>
        <detail xsi:type="keyStringValuePair">
          <key>MaskedNumber</key>
          <value>************6942</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>AccountOwnerToken</key>
          <value>e8b7e264-4469-472a-8304-803e568dbde4</value>
        </detail>
        <detail xsi:type="keyIntValuePair">
          <key>ExpiryMonth</key>
          <value>11</value>
        </detail>
        <detail xsi:type="keyIntValuePair">
          <key>ExpiryYear</key>
          <value>2027</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>HolderName</key>
          <value>John Doe</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>CardType</key>
          <value>Mastercard</value>
        </detail>
      </details>
    </paymentAccount>
  </payment>
</initiatePaymentResponse>

Example initiatePaymentRequest for a subsequent payment:

<?xml version="1.0" encoding="utf-8"?>
<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>BancontactHiPayProviderTesting</merchantID>
  <shopID>BancontactHiPayProviderTestingShop1</shopID>
  <merchantTransactionID>7493749374937494-17</merchantTransactionID>
  <paymentMethodID>231</paymentMethodID>
  <amount currencyCode="EUR">12.66</amount>
  <userID>BancontactUserUSD</userID>
  <userData>
    <username xsi:nil="true" />
    <firstname>TestFirst</firstname>
    <lastname>TestLast</lastname>
    <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>BE</countryCode2>
      <telephoneNumber xsi:nil="true" />
    </address>
    <dateOfBirth>1988-06-07T09:12:23</dateOfBirth>
  </userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>094e9e9c-9544-4432-a2f8-30877df893b31</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>SuccessPageUrl</key>
     <value>http://google.com?success&amp;txnid=14863832110658581</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>ErrorPageUrl</key>
      <value>http://google.com?exception&amp;txnid=14863832110658581</value>
    </data>
     <data xsi:type="keyStringValuePair">
      <key>PendingPageUrl</key>
      <value>http://google.com?q=pending&amp;txnid=14863832110658581</value>
    </data>  
    <data xsi:type="keyStringValuePair">
      <key>CancelPageUrl</key>
      <value>http://google.com?q=cancel&amp;txnid=14863832110658581</value>
    </data>    
      <data xsi:type="keyStringValuePair">
      <key>RefusePageUrl</key>
      <value>http://google.com?q=refused&amp;txnid=14863832110658581</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PaymentDescription</key>
      <value>provider testing</value>
    </data>

    <data xsi:type="keyStringValuePair">
      <key>PaymentDescriptionLanguageCode</key>
      <value>en</value>
    </data>    
  </specificPaymentData>
<paymentAccountID>5765ad36-93ea-4327-a82e-21</paymentAccountID>
</initiatePaymentRequest>

Example initiatePaymentResponse for a subsequent payment:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
         <payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <merchantID>BancontactHiPayProviderTesting</merchantID>
            <shopID>BancontactHiPayProviderTestingShop1</shopID>
            <paymentMethod>
               <key>231</key>
               <value>BancontactDeposit</value>
            </paymentMethod>
            <merchantTransactionID>7493749374937494-18</merchantTransactionID>
            <paymentID>9f38222f-cb7d-4cea-a144-288e2d01339b</paymentID>
            <userID>BancontactUserUSD</userID>
            <paymentProvider>
               <key>132</key>
               <value>Hipay</value>
            </paymentProvider>
            <amount currencyCode="EUR">12.66</amount>
            <creationType>
               <key>1</key>
               <value>User</value>
            </creationType>
            <userIP>127.0.0.1</userIP>
            <state>
               <id>62c9fb31-9f29-4b58-9e4b-20548d412434</id>
               <definition>
                  <key>30</key>
                  <value>RedirectURLCreated</value>
               </definition>
               <createdOn>2017-05-30T14:03:00.4019304Z</createdOn>
               <paymentStateDetails>
                  <detail xsi:type="keyStringValuePair">
                     <key>RedirectionUrl</key>
                     <value>https://stage-secure-gateway.hipay-tpp.com/gateway/forward/7f0cefa2c63c4e4143107db65a588a18</value>
                  </detail>
                  <detail xsi:type="keyStringValuePair">
                     <key>PaymentStateReasonID</key>
                     <value>1</value>
                  </detail>
               </paymentStateDetails>
            </state>
            <isExecuted>false</isExecuted>
            <baseAmount currencyCode="EUR">12.66</baseAmount>
            <paymentDetails xsi:nil="true"/>
            <paymentAccount>
               <paymentAccountID>5765ad36-93ea-4327-a82e-21</paymentAccountID>
            </paymentAccount>
         </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:

The customer would have to re-enter his card data and then continue to approve the payment by entering a PIN from his HW dongle

Deactivating the Bancontact mobile version

The merchant can deactivate the mobile flow by sending the UseMobileVersion parameter as false.
This is not recommended as it makes the flow more complicated for the customer (has to use a HW dongle to confirm the payment instead of simply scanning a QR code with his mobile APP).

Example initiatePaymentRequest with mobile parameter = false:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <merchantID>BancontactHiPayProviderTesting</merchantID>
        <shopID>BancontactHiPayProviderTestingShop1</shopID>
        <merchantTransactionID>14993217553265520-4</merchantTransactionID>
        <paymentMethodID>231</paymentMethodID>
        <amount currencyCode="EUR">20.0</amount>
        <userID>55463018</userID>
        <userData>
                                <username>testuser</username>
                <firstname>TESTT1FN</firstname>
                <lastname>TESTT1LN</lastname>
                <email>[email protected]</email>
                <address>
                        <street>Address21</street>
                        <houseName>Address1</houseName>
                        <postalCode>447474</postalCode>
                        <city>City1</city>
                        <state>State1</state>
                        <countryCode2>BE</countryCode2>
                </address>
                        <dateOfBirth>1940-03-02T00:00:00</dateOfBirth>
        </userData>
        <userIP>10.8.160.255</userIP>
        <userSessionID>00110206072017lFMjsdDHWyc</userSessionID>
        <creationTypeID>1</creationTypeID>
     <specificPaymentData>
         <data xsi:type="keyBooleanValuePair">
                <key>UseMobileVersion</key>
                <value>false</value>
        </data>
        <data xsi:type="keyStringValuePair">
                <key>PaymentDescription</key>
                <value>CreditCardDeposit</value>
        </data>
        <data xsi:type="keyStringValuePair">
                <key>PaymentDescriptionLanguageCode</key>
                <value>en</value>
        </data>
        <data xsi:type="keyBooleanValuePair">
                <key>IsThreeDSecureRequired</key>
                <value>true</value>
        </data>
                <data xsi:type="keyStringValuePair">
                <key>SuccessPageUrl</key>
                <value>https://www.example.com/deposit/bancontact.action?txnid=14993217553265520-4</value>
        </data>
        <data xsi:type="keyStringValuePair">
                <key>ErrorPageUrl</key>
                <value>https://www.example.com/deposit/bancontact.action?txnid=14993217553265520-4</value>

                 </data>
        <data xsi:type="keyStringValuePair">
                <key>PendingPageUrl</key>
                <value>https://www.example.com/deposit/bancontact.action?txnid=14993217553265520-4</value>
        </data>
        <data xsi:type="keyStringValuePair">
                <key>CancelPageUrl</key>
                <value>https://www.example.com/deposit/bancontact.action?txnid=14993217553265520-4</value>
        </data>
        <data xsi:type="keyStringValuePair">
                <key>RefusePageUrl</key>
                <value>https://www.example.com/deposit/bancontact.action?txnid=14993217553265520-4</value>
        </data>
     </specificPaymentData>
                <paymentAccountID>8db797bb-3ae4-48a3-91e8-0ae124d35d19</paymentAccountID>
</initiatePaymentRequest>

📘

Same response as Bancontact payments

Note the response is the same as for regular Bancontact payments, however, the redirect page is different.

When redirecting the customer to Bancontact when the mobile version is deactivated/disabled, the screen could look like this (depends on the bank). The customer sees an overview and needs to enter a PIN displayed on his HW dongle to confirm the payment.

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-16"?>
<handlePaymentStateChangedNotificationRequest 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>B2BTestMerchant</merchantID>
    <shopID>150001</shopID>
    <paymentMethod>
      <key>231</key>
      <value>BancontactDeposit</value>
    </paymentMethod>
    <merchantTransactionID>dc11aad3-dc0e-482d-b416-5f4cbb7bdf3d</merchantTransactionID>
    <paymentID>c7ad280e-82e7-49f0-8204-e0b7735ed141</paymentID>
    <userID>5d089707-5f72-4e08-9394-16ff0f</userID>
    <paymentProvider>
      <key>132</key>
      <value>Hipay</value>
    </paymentProvider>
    <amount currencyCode="EUR">10.0000</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>f1954171-6374-4ac2-bda3-a215c18029e4</id>
      <definition>
        <key>13</key>
        <value>AuthorisedByProvider</value>
      </definition>
      <createdOn>2017-05-28T18:07:39.32</createdOn>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>ApprovalCode</key>
          <value>test123</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>true</isExecuted>
    <baseAmount currencyCode="EUR">10.0000</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>36264</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderTransactionID</key>
        <value>388997073285</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>1d31b167-c22f-4d26-b66f-de1326261a89</paymentAccountID>
      <details>
        <detail xsi:type="keyStringValuePair">
          <key>MaskedNumber</key>
          <value>************6942</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>AccountOwnerToken</key>
          <value>9b60348a-3520-4df8-b6b2-92acc7e5c8eb</value>
        </detail>
        <detail xsi:type="keyIntValuePair">
          <key>ExpiryMonth</key>
          <value>11</value>
        </detail>
        <detail xsi:type="keyIntValuePair">
          <key>ExpiryYear</key>
          <value>2027</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>HolderName</key>
          <value>John Doe</value>
        </detail>
        <detail xsi:type="keyStringValuePair">
          <key>CardType</key>
          <value>Mastercard</value>
        </detail>
      </details>
    </paymentAccount>
  </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.

After sending the initiatePaymentRequest, the URL returned will be a URL that redirects to the PXP mock page rather than the provider page.

Example Redirection URL to the PXP mock:

<paymentStateDetails> 
  <detail xsi:type="keyStringValuePair">
    <key>RedirectionUrl</key>
    <value>https://api.test.kalixa.com/WebMockProviders/HipayFrontend/Index?orderId=121725&amp;paymentProduct=ideal</value> 
  </detail>

📘

Testing against provider test system

This mock is provided by PXP test system. It is NOT testing against provider system!
If a merchant wants to test against the provider (Hipay) test system, this needs to be requested to be configured via the PXP Support team. But please note that the below scenarios cannot be simulated with the Provider test system, this is why PXP provides that mock page.

The mock page contains the below listed fields which can be used by the merchant test team to simulate the different cases:

  • successful (DepositedByProvider)
  • refused (RefusedByProvider)

Additionally if values are entered for the optional fields, they will be used and stored on the created IdealDeposit payment and returned to the merchant as part of the handlePaymentStateChangedNotificationRequest. Examples for those requests can be found in the Notifications chapter above.

Field in Mock

Value

Details

Password

do not change prefilled value, should remain with value signature as shown in the screenshot

Reason Code

optional
applicable only if state "declined" is selected in the mock

In case of a RefusedByProvider scenario, if a value is provided, then it will be returned in handlePaymentStateChangedNotificationRequest to the merchant as part of paymentStateDetails
key = ProviderResponseCode
value = 4000001 (for example )

Reason Message

applicable only if state "declined" is selected in the mock

In case of a RefusedByProvider scenario, if a value is provided, then it will be returned in handlePaymentStateChangedNotificationRequest to the merchant as part of paymentStateDetails
key = ProviderResponseMessage
value = Declined (for example )

State

completed = will simulate a successful payment

declined = will simulate a refused payment

handlePaymentStateChangedNotificationRequest to the merchant will show

if "declined", then state.definition
key = 100
value = RefusedByProvider

if "completed", then state.definition
key = 29
value = DepositedByProvider

Example screenshot of the Bancontact Deposit mock page, simulating Provider Hipay