Menu

Yandex.Money

Note: To learn about the features of Yandex.Money, there's an overviewhere

How to integrate Yandex.Money payments:

Direct payment request

For Yandex.Money payments the <shopperEmailAddress> is mandatory:

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//Worldpay//DTD Worldpay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService merchantCode="YOUR_MERCHANT_CODE" version="1.4"> <!--Use your merchant code-->
  <submit>
    <order orderCode="YOUR_ORDER_CODE"> <!--Use a unique order code each time-->
      <description>Description here</description>
      <amount currencyCode="RUB" value="5000" exponent="2" />
      <orderContent>
        <![CDATA[ ]]>
      </orderContent>
    <paymentDetails>
      <YANDEXMONEY-SSL shopperCountryCode="RU">
        <successURL>http://www.worldpay.com/?successURL</successURL>
        <cancelURL>http://www.worldpay.com/?cancelURL</cancelURL>
        <pendingURL>http://www.worldpay.com/?pendingURL</pendingURL>
      </YANDEXMONEY-SSL>
    </paymentDetails>
    <shopper>
      <shopperEmailAddress>shopper@worldpay.com</shopperEmailAddress>
    </shopper>
  </order>
  </submit>
</paymentService>

Hosted payment request

In this example the merchant has specified that only the Yandex.Money payment methods should be offered by using the following append string:

&country=RU&preferredPaymentMethod=YANDEXMONEY-SSL

Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//Worldpay//DTD Worldpay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="YOUR_MERCHANT_CODE">
  <submit>
    <order orderCode="YOUR_ORDER_CODE" installationId="1234567"><!--Use a unique order code each time. Contact Worldpay if you haven't got an installationID-->
      <description>Test order</description>
      <amount value="5000" currencyCode="RUB" exponent="2" />
      <orderContent>
        <![CDATA[ ]]>
      </orderContent>
      <paymentMethodMask>
        <include code="YANDEXMONEY-SSL" />
      </paymentMethodMask>
      <shopper>
        <shopperEmailAddress>shopper@worldpay.com</shopperEmailAddress>
      </shopper>
    </order>
  </submit>
</paymentService>

Payment outcomes

Successful

Shopper pays
Event 1:Shopper successfully completes a payment for USD 1.00 on the Yandex pages.
Behaviour:successURL is returned.
URL:SUCCESS
URL Example:https://money.yandex.ru/success/?request-id=3531353935313935345f383261663837356430633036333865303830626431646662353830383738373932343238306137655f313331333134363735&scid=3977
Payment Status:The payment status changes to AUTHORISED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode=" ORDER_CODE "> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>AUTHORISED</lastEvent>
        <balance accountType="IN_PROCESS_AUTHORISED">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="AUTHORISED" sent="n">
        <bookingDate>
          <date dayOfMonth="25" month="04" year="2013" />
        </bookingDate>
         <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="4">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Payment captured
Event 2:The payment is captured by Worldpay.
Behaviour:The automatic capture jobs runs in the Worldpay system to automatically capture the payment.
URL:No URL is retured to the shopper as the shopper journey is already complete.
URL Example:N/A
Payment Status:The payment status changes to CAPTURED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>CAPTURED</lastEvent>
        <balance accountType="IN_PROCESS_CAPTURED">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="CAPTURED" sent="n">
        <bookingDate>
          <date dayOfMonth="25" month="04" year="2013" />
        </bookingDate>
        <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="11">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="debit" />
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="17">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Payment settled
Event 3:The payment is settled internally by Worldpay.
Behaviour:The payment is successfully settled internally in Worldpay system.
URL:No URL is retured to the shopper as the shopper journey is already complete.
URL Example:N/A
Payment Status:The payment status changes to SETTLED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>SETTLED</lastEvent>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount value="64" currencyCode="GBP" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="SETTLED" description="1 USD = 0.63657 GBP" sent="n">
        <bookingDate>
          <date dayOfMonth="29" month="04" year="2013" />
        </bookingDate>
        <accountTx accountType="SETTLED_BIBIT_NET" batchId="12">
          <amount value="64" currencyCode="GBP" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="17">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="debit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>

Unsuccessful payment outcomes

Cancellation

Note: There is no way to cancel a payment on the Yandex.Money payment pages. The only (informal) way to cancel a payment is to close the web-browser.

Shopper closes browser
Event:Shopper closes the browser before the payment is complete
Behaviour:With no cancel button, shoppers must close the browser to cancel a payment.
URL:No URL is returned to the shopper as the shopper journey is abandoned.
URL Example:N/A
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.

Invalid data entry

Incorrect username or password
Event 1:Shopper enters an incorrect account username or password
Behaviour:With no cancel button, shoppers must close the browser to cancel a payment.
URL:No URL is returned to the shopper as the shopper journey is abandoned.
URL Example:N/A
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.
Incorrect payment password
Event 2:Shopper enters an incorrect payment password when completing the payment.
Behaviour:The shopper is shown an error message stating that the payment password is incorrect and informs them that they have four more attempts remaining.
URL:No URL is returned to the shopper as the shopper does not leave the Yandex.Money website.
URL Example:N/A
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.

Payment timeout

Time out
Event:Shopper does not complete the payment within the allocated timeout period.
Behaviour:The shopper is shown an error message stating that the waiting period for the payment has expired and prompts them to try again.
URL:No URL is returned to the shopper as the shopper does not leave the Yandex.Money website.
URL Example:N/A
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.

Exception Conditions

Error with PSP
Event 1:The payment cannot be processed due to technical issues at the Payment Service Provider (PSP).
Behaviour:pendingURL with status=ERROR is returned. This scenario occurs in exceptional circumstances where the payment cannot be processed for technical reasons.
URL:PENDING (ERROR).
URL Example:http://www.worldpay.com/pendingURL?orderKey=ADMINCODE^MERCHANTCODE^ Example_Yandex_Order &status=ERROR
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.
Authorisation + 5 seconds
Event 2:Worldpay receives the asynchronous authorisation from Yandex.Money more than five seconds after the shopper has completed their journey.
Behaviour:A pendingURL with the status=OPEN is returned.
URL:pendingURL.
URL Example:http://www.worldpay.com/?pending&orderKey=ADMINCODE^MERCHANTCODE^Example_Yandex_Order_Code&status=OPEN
Payment Status:The payment status changes to AUTHORISED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>AUTHORISED</lastEvent>
        <balance accountType="IN_PROCESS_AUTHORISED">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="AUTHORISED" sent="n">
        <bookingDate>
          <date dayOfMonth="25" month="04" year="2013" />
        </bookingDate>
        <accountTx accountType="IN_PROCESS_AUTHORISED" batchId="4">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Invalid amount
Event 3:The Merchant submits a payment that is either above the maximum or below the minimum transaction amount for the Yandex.Money payment method.
Behaviour:pendingURL with status=ERROR is returned.
URL:pendingURL.
URL Example:http://www.worldpay.com/?pendingURL&orderKey=MERCHANTCODE^MERCHANTCODE^Example_Yandex_Order_Code&status=ERROR
Payment Status:The payment remains as SHOPPER_REDIRECTED.
Notification Example:No notification is generated.

Refunds

Refund requested
Event 1:The merchant requests a refund of the payment in MI
Behaviour:The merchant requests a direct refund of a settled payment in WPG.
URL:No URL is returned as the shopper journey is already complete.
URL Example:N/A
Payment Status:The payment status changes to SENT_FOR_REFUND.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="3200" currencyCode="RUB" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>SENT_FOR_REFUND</lastEvent>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount value="64" currencyCode="GBP" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <balance accountType="IN_PROCESS_CAPTURED">
          <amount value="3200" currencyCode="RUB" exponent="2" debitCreditIndicator="debit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="SENT_FOR_REFUND" sent="n">
        <bookingDate>
          <date dayOfMonth="09" month="05" year="2013" />
        </bookingDate>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="23">
          <amount value="3200" currencyCode="RUB" exponent="2" debitCreditIndicator="debit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Refund sent
Event 2:The requested refund is successfully sent to the shopper"s bank.
Behaviour:WPG receives confirmation that the payment has been successfully sent to the shopper’s wallet (bank).
URL:N/A
URL Example:N/A
Payment Status:The payment status changes to REFUNDED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>REFUNDED</lastEvent>
        <riskScore value="1" />
      </payment>
      <journal journalType="REFUNDED" description="1 USD = 0.64146 GBP" sent="n">
        <bookingDate>
          <date dayOfMonth="13" month="05" year="2013" />
        </bookingDate>
        <accountTx accountType="SETTLED_BIBIT_NET" batchId="15">
          <amount value="64" currencyCode="GBP" exponent="2" debitCreditIndicator="debit" />
        </accountTx>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="23">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>
Refund failed
Event 3:The refund fails (e.g. because the shopper has specified incorrect bank details)
Behaviour:WPG receives confirmation that the payment has not been successfully sent to the shopper’s wallet.
URL:N/A
URL Example:N/A
Payment Status:The payment status changes to REFUND_FAILED.
Copied!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paymentService PUBLIC "-//WorldPay//DTD WorldPay PaymentService v1//EN" "http://dtd.worldpay.com/paymentService_v1.dtd">
<paymentService version="1.4" merchantCode="MERCHANT_CODE"> <!--Will contain the merchant code used in the request-->
  <notify>
    <orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the order code used in the request-->
      <payment>
        <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
        <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        <lastEvent>REFUND_FAILED</lastEvent>
        <balance accountType="SETTLED_BIBIT_NET">
          <amount value="63" currencyCode="GBP" exponent="2" debitCreditIndicator="credit" />
        </balance>
        <riskScore value="1" />
      </payment>
      <journal journalType="REFUND_FAILED" description="Inverse booking." sent="n">
        <bookingDate>
          <date dayOfMonth="21" month="05" year="2013" />
        </bookingDate>
        <accountTx accountType="IN_PROCESS_CAPTURED" batchId="28">
          <amount value="100" currencyCode="USD" exponent="2" debitCreditIndicator="credit" />
        </accountTx>
      </journal>
    </orderStatusEvent>
  </notify>
</paymentService>

Transfer reports

Settled

The following is an example of a settled transaction in an XML transfer report for RUB 310.00 where the Merchants account settles in EUR:

Copied!
<orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the the order code used in the request-->
  <payment>
    <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
    <amount value="31000" currencyCode="RUB" exponent="2" debitCreditIndicator="credit" />
    <lastEvent>SETTLED</lastEvent>
    <balance accountType="SETTLED_BIBIT_NET">
      <amount value="707" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </balance>
    <balance accountType="SETTLED_BIBIT_COMMISSION">
      <amount value="40" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </balance>
  </payment>
  <journal journalType="SETTLED" description="1 RUB = 0.02409 EUR">
    <bookingDate>
      <date dayOfMonth="10" month="4" year="2013" hour="9" minute="58" second="58" />
    </bookingDate>
    <accountTx accountType="SETTLED_BIBIT_COMMISSION">
      <amount value="40" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </accountTx>
    <accountTx accountType="SETTLED_BIBIT_NET" batchId="35">
      <amount value="707" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </accountTx>
    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="170">
      <amount value="31000" currencyCode="RUB" exponent="2" debitCreditIndicator="debit" />
    </accountTx>
  </journal>
</orderStatusEvent>

Refunded

The following is an example of a refunded transaction in an XML transfer report for RUB 930.00 where the Merchants account settles in EUR:

Copied!
<orderStatusEvent orderCode="ORDER_CODE"> <!--Will contain the the order code used in the request-->
  <payment>
    <paymentMethod>YANDEXMONEY-SSL</paymentMethod>
      <amount value="93000" currencyCode="RUB" exponent="2" debitCreditIndicator="credit" />
    <lastEvent>REFUNDED</lastEvent>
    <balance accountType="SETTLED_BIBIT_NET">
      <amount value="18" currencyCode="EUR" exponent="2" debitCreditIndicator="debit" />
    </balance>
    <balance accountType="SETTLED_BIBIT_COMMISSION">
      <amount value="120" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </balance>
  </payment>
  <journal journalType="SETTLED" description="1 RUB = 0.02419 EUR">
    <bookingDate>
      <date dayOfMonth="24" month="5" year="2013" hour="8" minute="9" second="37" />
    </bookingDate>
    <accountTx accountType="SETTLED_BIBIT_COMMISSION">
      <amount value="120" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </accountTx>
    <accountTx accountType="SETTLED_BIBIT_NET" batchId="36">
      <amount value="2130" currencyCode="EUR" exponent="2" debitCreditIndicator="credit" />
    </accountTx>
    <accountTx accountType="IN_PROCESS_CAPTURED" batchId="216">
      <amount value="93000" currencyCode="RUB" exponent="2" debitCreditIndicator="debit" />
    </accountTx>
  </journal>
</orderStatusEvent>