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:

IDNameCredit/Debit StateReversal State
112MisterCashDepositDepositedByProvider (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 StatesDescription
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 nameDescription
TokenEnvoy (Worldpay) ID. An unique URL-encoded string.

Error Codes

ProviderResponseCodeProviderResponseMessage
-100An unexpected error occurred
-101Unexpected system error
-103The operation timed out
-200Authentication failed
-519Invalid epacsReference
-520-epacsReference could not be found
-800There was a problem processing the payment instructions
-835BankCode field cannot exceed 50 characters in length
-836AccountNumber field cannot exceed 255 characters in length
-837AccountPassword field cannot exceed 255 characters in length
-838PaymentChannel field cannot exceed 50 characters in length
-839LanguageCode field should be 2 characters in length
-840FirstName field cannot exceed 50 characters in length
-841LastName field cannot exceed 50 characters in length
-842Phone field cannot exceed 20 characters in length
-843Address1 field cannot exceed 100 characters in length
-844Address2 field cannot exceed 100 characters in length
-845City field cannot exceed 50 characters in length
-846State field cannot exceed 50 characters in length
-847Customer Country field should be empty or 2 characters in length
-848Postcode field cannot exceed 20 characters in length
-849CustomerRef field cannot exceed 50 characters in length
-841LastName field cannot exceed 50 characters in length
-842Phone field cannot exceed 20 characters in length
-843Address1 field cannot exceed 100 characters inlength
-844Address2 field cannot exceed 100 characters in length
-845City field cannot exceed 50 characters in length
-846State field cannot exceed 50 characters in length
-847Customer Country field should be empty or 2 characters in length
-848Postcode field cannot exceed 20 characters in length
-849CustomerRef field cannot exceed 50 characters in length
-868Authentication field is required
-869Username field is required
-870Password field is required
-871OneClickServiceInfo field is required
-872ServiceName field is required
-873ServiceName field failed validation check
-874PaymentData field is required
-875CustomerRef field is required
-876Country field is required
-877Country field should be 2 characters in length
-878Country field failed validation check
-879Amount and ReceiveAmount should be zero or a positive value
-880Only one of Amount or ReceiveAmount fields should have a value
-881Currency field is required
-882Currency field should be 3 characters in length
-883Currency field failed validation check
-884ReceiveCurrency field is required
-885ReceiveCurrency field should be 3 characters in length
-886ReceiveCurrency field failed validation check
-887CustomerData field is required
-888Email field is required
-889Email field failed validation check
-890Email field should be between 5 and 255 characters in length
-891SuccessUrl field is required
-892CancelUrl field is required
-893ErrorUrl field is required
-894CustomerLevel field cannot exceed 50 characters in length
-895CustomerId field cannot exceed 50 characters in length
-896ServiceName field cannot exceed 50 characters in length
-897successUrl field cannot exceed 300 characters in length
-898cancelUrl field cannot exceed 300 characters in length
-899errorUrl 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 StatesDescription
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: