Qiwi Deposit (via WorldPay)

The following method IDs are covered in this section:

ID

Name

Credit/Debit State

163

QiwiDeposit

DepositedByProvider (29)

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

Redirect Integration

Currently not supported.

Backend2BackendIntegration

There are no specificPaymentAccountData.

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)

value

PaymentProviderID (string, required)

Envoy (Worldpay) provider ID. To be set to value 90.

  • MerchantNotificationUrl** (string*, required when at least one of SuccessPageUrl, ErrorPageUrl or CancelPageUrl is missing)

The URL to redirect user in case of Success/Error/Cancel

  • SuccessPageUrl** (string*, required only if MerchantNotificationUrl is missing)

The URL to redirect user in case of successful payment

  • ErrorPageUrl** (string*, required only if MerchantNotificationUrl is missing)

The URL to redirect user in case of unsuccessful payment

  • CancelPageUrl** (string*, required only if MerchantNotificationUrl is missing)

The URL to redirect user in case of cancellation

  • PendingPageUrl** (string*)

The URL to redirect user in case of pending payment

  • HomePageUrl** (string*)

The URL of merchant`s website

  • LanguageCode** (string*)

The language of the user on the merchant side, used for localizing the UI displayed to the user

  • EmailAddress** (string*, required)

User email address.

  • CountryCode2** (string*, required)

User country code. RU, UA or KZ.

  • TelephoneNumber** (string*)

User telephone number

Example initiatePaymentRequest with MerchantNotificationUrl:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
  <merchantID>YourMerchantID</merchantID>
  <shopID>YourShopID</shopID>
  <merchantTransactionID>07035099-e34f-4f24-b912-862296a8fecc</merchantTransactionID>
  <paymentMethodID>163</paymentMethodID>
  <amount currencyCode="USD">21.00</amount>
  <userID>b875a110-b120-43d3-8711-1f5cfa</userID>
  <userData>
    <username>b875a110-b120-43d3-8711-1f5cfa</username>
  </userData>
  <userIP>127.0.0.1</userIP>
  <userSessionID>057e71ad-947a-4562-9ce2-a89be7966247</userSessionID>
  <creationTypeID>1</creationTypeID>
  <specificPaymentData>
    <data xsi:type="keyStringValuePair">
      <key>MerchantNotificationUrl</key>
      <value>https://merchantNotificationURL</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>LanguageCode</key>
      <value>RU</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>EmailAddress</key>
      <value>[email protected]</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>CountryCode2</key>
      <value>RU</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>TelephoneNumber</key>
      <value>0123456789</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>163</key>
      <value>QiwiDeposit</value>
    </paymentMethod>
    <merchantTransactionID>07035099-e34f-4f24-b912-862296a8fecc</merchantTransactionID>
    <paymentID>10924b60-9f32-488b-9723-6b4591ff0c28</paymentID>
    <userID>b875a110-b120-43d3-8711-1f5cfa</userID>
    <paymentProvider>
      <key>90</key>
      <value>Envoy</value>
    </paymentProvider>
    <amount currencyCode="USD">21.00</amount>
    <creationType>
      <key>1</key>
      <value>User</value>
    </creationType>
    <userIP>127.0.0.1</userIP>
    <state>
      <id>68aa1afe-74cd-4b9a-a0a0-3afb14b7b47d</id>
      <definition>
        <key>30</key>
        <value>RedirectURLCreated</value>
      </definition>
      <createdOn>2012-10-08T08:53:56.8195658Z</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">13.94</baseAmount>
    <paymentDetails>
      <detail xsi:type="keyStringValuePair">
        <key>Token</key>
        <value>541d1cdf-3a53-4b20-8cde-0b488f1447a8</value>
      </detail>
      <detail xsi:type="keyStringValuePair">
        <key>ProviderExternalID</key>
        <value>D4454</value>
      </detail>
    </paymentDetails>
    <paymentAccount>
      <paymentAccountID>0</paymentAccountID>
    </paymentAccount>
  </payment>
</initiatePaymentResponse>

Possible payment states in initiatePaymentResponse:

Payment State

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.

The following field is returned in paymentDetails of initiatePaymentResponse:

Field name

Description

Token

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

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.

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.

Example handlePaymentStateChangedNotificationRequest:

<?xml version="1.0" encoding="utf-8"?>
<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>Gaming_PP_B2B_noRCheck</merchantID>
		<shopID>Gaming_PP_B2B_noRCheck</shopID>
		<paymentMethod>
			<key>163</key>
			<value>QiwiDeposit</value>
		</paymentMethod>
		<merchantTransactionID>21012015_3</merchantTransactionID>
		<paymentID>0142948b-aa52-4998-ba4c-a7509cd12094</paymentID>
		<userID>KalixaTestUserUSD</userID>
		<paymentProvider>
			<key>90</key>
			<value>Envoy</value>
		</paymentProvider>
		<amount currencyCode="USD">99.9500</amount>
		<shopFee currencyCode="USD">0.0500</shopFee>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>9ab3a047-7524-47f8-8bb5-d17f851acde7</id>
			<definition>
				<key>29</key>
				<value>DepositedByProvider</value>
			</definition>
			<createdOn>2015-01-21T10:55:27.71</createdOn>
			<paymentStateDetails xsi:nil="true" />
		</state>
		<isExecuted>true</isExecuted>
		<baseAmount currencyCode="EUR">86.3400</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyDecimalValuePair">
				<key>BaseShopFeeAmount</key>
				<value>0.0400</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>BaseShopFeeCurrencyCode</key>
				<value>EUR</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>D7294</value>
			</detail>
			<detail xsi:type="keyIntValuePair">
				<key>PaymentScoring</key>
				<value>735871</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>EnvoyUserEmail</key>
				<value>[email protected]</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>f70dfcfd-5ba1-e411-b0d5-001ec9e61285</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>Token</key>
				<value>1f64632a-2cc6-4651-8ff8-db8f15706395</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>UniqueReference</key>
				<value>CQRUS6627518</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderStatus</key>
				<value>0</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderStatusMessage</key>
				<value>Success</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderAccountUserEmail</key>
				<value>[email protected]</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ShippingMethod</key>
				<value>2</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>0</paymentAccountID>
		</paymentAccount>
	</payment>
</handlePaymentStateChangedNotificationRequest>