Bancontact/Mister Cash Deposit (via WorldPay)

Payment Method Bancontact, formerly known as Mister Cash till April 2016, is the market leader in electronic payments in Belgium.

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

Reversal State

112

MisterCashDeposit

DepositedByProvider (13)

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

After a payment has been initiated by PXP Financial with provider Worldpay, users are redirected to Worldpay and then to a local service provider (paybox.net) and the users bank`s 3DSecure page.

Redirect Integration

This payment method is supported in the PXP Financial cashier.

Backend2BackendIntegration

There are no specific PaymentAccountData as payment account data are enter after the user´s redirect.

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

PaymentProviderID
(Int, required)

Value 90 for provider Worldpay (formerly known as Envoy).

EmailAddress (String, required)

User eMail address

UserFirstname (String)

User first name

UserLastname (String)

User last name

AddressLine1 (String)

User address line 1

AddressLine2 (String)

User address line 2

UserCity (String)

User city

UserPostalCode (String)

User postal code

UserCountry (String)

User country

MerchantNotificationUrl (String, conditional)

The URL to redirect users back to.

The field is required when at least one of SucessPageUrl, ErrorPageUrl or CancelPageUrl is missing.

SuccessPageUrl (String, conditional)

The URL to redirect user in case of successful payment.

Required only if MerchantNotificationUrl is missing.

ErrorPageUrl (String, conditional)

The URL to redirect user in case of unsuccessful payment

Required only if MerchantNotificationUrl is missing.

CancelPageUrl (String, conditional)

The URL to redirect user in case of cancellation

Required only if MerchantNotificationUrl is missing.

PendingPageUrl (String)

The URL to redirect user in case of pending payment

HomePageUrl (String)

The URL of merchant

LanguageCode (String, required)

The language of the user on the merchant side, used for localizing the UI displayed to the user. It has to be "NL".

Example initiatePaymentRequest`` with *MerchantNotificationUrl:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <merchantTransactionID>1897cbdd-ab15-49fe-a474-bd270ee9490d</merchantTransactionID>
    <paymentMethodID>112</paymentMethodID>
    <amount currencyCode="EUR">20.00</amount>
    <userID>4fd67d11-d12c-46c7-8255-d6a228</userID>
    <userData>
        <username>4fd67d11-d12c-46c7-8255-d6a228</username>
        <firstname xsi:nil="true"/>
        <lastname xsi:nil="true"/>
        <currencyCode xsi:nil="true"/>
        <languageCode xsi:nil="true"/>
        <email xsi:nil="true"/>
        <address xsi:nil="true"/>
    </userData>
    <userIP>127.0.0.1</userIP>
    <userSessionID>ed790214-18fa-444d-b9e0-f480f8d44a57</userSessionID>
    <creationTypeID>1</creationTypeID>
    <specificPaymentData>
        <data xsi:type="keyStringValuePair">
            <key>MerchantNotificationUrl</key>
            <value>https://merchantnotification</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>EmailAddress</key>
            <value>[email protected]</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>UserFirstname</key>
            <value>John</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>UserLastname</key>
            <value>Doe</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>AddressLine1</key>
            <value>Test Avenue 1</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>UserCity</key>
            <value>Brussels</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>UserPostalCode</key>
            <value>1234</value>
        </data>
        <data xsi:type="keyStringValuePair">
            <key>UserCountry</key>
            <value>Belgium</value>
        </data>
        <data xsi:type="keyIntValuePair">
            <key>PaymentProviderID</key>
            <value>90</value>
        </data>
    </specificPaymentData>
</initiatePaymentRequest>

Example initiatePaymentResponse - with *MerchantNotificationUrl:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
  <payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <merchantID>YourMerchantID</merchantID>
    <shopID>YourShopID</shopID>
    <paymentMethod>
      <key>112</key>
      <value>MisterCashDeposit</value>
    </paymentMethod>
    <merchantTransactionID>1897cbdd-ab15-49fe-a474-bd270ee9490d</merchantTransactionID>
    <paymentID>7978012e-7d5f-4cb7-acf8-2e7efcb66b9c</paymentID>
    <userID>4fd67d11-d12c-46c7-8255-d6a228</userID>
    <paymentProvider>
      <key>90</key>
      <value>Envoy</value>
    </paymentProvider>
    <amount currencyCode="EUR">20.00</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>32c5f245-00cb-486b-9de7-6cdba8922a99</id>
      <definition>
        <key>30</key>
        <value>RedirectURLCreated</value>
      </definition>
      <createdOn>2012-10-08T08:30:32.0386388Z</createdOn>
      <description>http://test.envoytransfers.com/?tokenID=541d1cdf-3a53-4b20-8cde-0b488f1447a8</description>
      <paymentStateDetails>
        <detail xsi:type="keyStringValuePair">
          <key>RedirectionUrl</key>
          <value>http://test.envoytransfers.com/?tokenID=541d1cdf-3a53-4b20-8cde-0b488f1447a8</value>
        </detail>
      </paymentStateDetails>
    </state>
    <isExecuted>false</isExecuted>
    <baseAmount currencyCode="EUR">20</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>UserFirstname</key>
        <value>John</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>UserLastname</key>
        <value>Doe</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>Token</key>
        <value>541d1cdf-3a53-4b20-8cde-0b488f1447a8</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>D4453</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</initiatePaymentResponse>

Possible payment states in 'initiatePaymentResponse`:

Payment States

Description

RedirectURLCreated (30)

OK state; Redirect user to the URL.

DuplicatePaymentValidationFailed (369)

The payment with same merchantTransactionID already exists.

InitiateErrorReportedByProvider (4)

Error state; Provider reported error when trying to initiate payment.

Following field is returned in paymentDetails of InitiatePaymentResponse:

Field name

Description

Token

Envoy (Worldpay) ID. An unique URL-encoded string.

Error Codes

ProviderResponseCode

ProviderResponseMessage

-100

An unexpected error occurred

-101

Unexpected system error

-103

The operation timed out

-200

Authentication failed

-519

Invalid epacsReference

-520

-epacsReference could not be found

-800

There was a problem processing the payment instructions

-835

BankCode field cannot exceed 50 characters in length

-836

AccountNumber field cannot exceed 255 characters in length

-837

AccountPassword field cannot exceed 255 characters in length

-838

PaymentChannel field cannot exceed 50 characters in length

-839

LanguageCode field should be 2 characters in length

-840

FirstName field cannot exceed 50 characters in length

-841

LastName field cannot exceed 50 characters in length

-842

Phone field cannot exceed 20 characters in length

-843

Address1 field cannot exceed 100 characters in length

-844

Address2 field cannot exceed 100 characters in length

-845

City field cannot exceed 50 characters in length

-846

State field cannot exceed 50 characters in length

-847

Customer Country field should be empty or 2 characters in length

-848

Postcode field cannot exceed 20 characters in length

-849

CustomerRef field cannot exceed 50 characters in length

-841

LastName field cannot exceed 50 characters in length

-842

Phone field cannot exceed 20 characters in length

-843

Address1 field cannot exceed 100 characters inlength

-844

Address2 field cannot exceed 100 characters in length

-845

City field cannot exceed 50 characters in length

-846

State field cannot exceed 50 characters in length

-847

Customer Country field should be empty or 2 characters in length

-848

Postcode field cannot exceed 20 characters in length

-849

CustomerRef field cannot exceed 50 characters in length

-868

Authentication field is required

-869

Username field is required

-870

Password field is required

-871

OneClickServiceInfo field is required

-872

ServiceName field is required

-873

ServiceName field failed validation check

-874

PaymentData field is required

-875

CustomerRef field is required

-876

Country field is required

-877

Country field should be 2 characters in length

-878

Country field failed validation check

-879

Amount and ReceiveAmount should be zero or a positive value

-880

Only one of Amount or ReceiveAmount fields should have a value

-881

Currency field is required

-882

Currency field should be 3 characters in length

-883

Currency field failed validation check

-884

ReceiveCurrency field is required

-885

ReceiveCurrency field should be 3 characters in length

-886

ReceiveCurrency field failed validation check

-887

CustomerData field is required

-888

Email field is required

-889

Email field failed validation check

-890

Email field should be between 5 and 255 characters in length

-891

SuccessUrl field is required

-892

CancelUrl field is required

-893

ErrorUrl field is required

-894

CustomerLevel field cannot exceed 50 characters in length

-895

CustomerId field cannot exceed 50 characters in length

-896

ServiceName field cannot exceed 50 characters in length

-897

successUrl field cannot exceed 300 characters in length

-898

cancelUrl field cannot exceed 300 characters in length

-899

errorUrl field cannot exceed 300 characters in length

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.

The final execution status about the payment will come within a payment state change notification to the merchant.

The possible payment states are listed below:

Payment States

Description

RefusedByProvider (100)

Error state, payment was not accepted by provider; redirect user to ErrorPageUrl

DepositedByProvider (29)

Success state; Payment has been executed

QueryPaymentStateCommunicationErrorOccurred (321)

Error state; Communication error with provider occurred.

Cancelled (113)

Payment reversal state

Example handlePaymentStateChangedNotificationRequest: