Qiwi Deposit (via WorldPay)

The following method IDs are covered in this section:

IDNameCredit/Debit State
163QiwiDepositDepositedByProvider (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 StateDescription
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 nameDescription
TokenEnvoy (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 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.

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.

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>