Testing payouts

Before sending requests containing real data, you can check your integration and test payouts to wallets and bank cards, as well as the processing of notifications on unsuccessful transfers and the requests for payout account balance. The testing process is identical to the actual payment process, except the money is not transferred anywhere.

Testing preparations

Step 1. Send a list of IP addresses to your manager

Send a list of IP addresses (no more than five) to your manager that you'll be making test payments from. These IP addresses must be static.

Step 2. Obtain the required certificates

Obtain the required certificates for interacting with Yandex.Checkout.

Step 3. Wait until you get a test gateway

The test gateway is available in Merchant Profile, where you can select it via the All stores and payouts button (the name will be prefixed by test_).

The test gateway is similar to a real one. The main differences are that its only used for test payouts and its payout account doesn't need to be replenished.

For testing, you'll need to find out the test gateway's agentId and use it in all requests to Yandex.Checkout.

Attention. The test and real gateways have different agentId. You can't use the agentId of the real gateway for testing: Yandex.Checkout will return the 41 error code.
Step 4. Wait for the email from the Yandex.Checkout manager

The Yandex.Checkout manager will send you an email notifying that everything is properly configured and you can start testing.

Testing

When everything is ready, you can test:

When sending requests, use special testing data.

URL of the server for sending requests
https://calypso.yamoney.ru:9094/

After verification, get your system ready for making real payouts.

Test payouts to wallets

Step 1. Check if it's possible to make transfers to wallet (testDeposition)

Make sure the wallet you're going to transfer money to actually exists and isn't blocked by sending the testDeposition request with the following data:

  • agentId of the test gateway;
  • test wallet number (dstAccount): 41001614575714;
  • payout amount: 1 ruble or more.

Request example

<testDepositionRequest 
    agentId="123"
    clientOrderId="12345"
    requestDT="2019-07-01T20:38:00.000Z"
    dstAccount="41001614575714"
    amount="10.00"
    currency="643"
    contract="Test payout"
/>

Example of the response

<testDepositionResponse 
    clientOrderId="12345"
    status="0"
    processedDT="2019-07-01T20:38:01.000Z"
    identification="identified"
/>
Step 2. Transfer the money (makeDeposition)

Transfer the money to the wallet by sending the makeDeposition request with the same information used for checking the possibility of transfer (step 1).

Request example

<makeDepositionRequest 
              agentId="123"
              clientOrderId="12345"
              requestDT="2019-07-01T20:38:00.000Z"
              dstAccount="41001614575714"
              amount="10.00"
              currency="643"
              contract="Test payout"
              />

Example of the response

<makeDepositionResponse 
              clientOrderId="12345"
              status="0"
              processedDT="2019-07-01T20:38:01.000Z"
              balance="-19270338.94" 
              identification="identified"
              />
Note. A random negative number returns in the balance parameter.
Step 3. Check the idempotency of requests

Send the makeDeposition request with the same data used in step 2. The result of processing the request sent in step 2 returns in response.

Step 4. Check the payout error processing

You can check the processing of the payout errors to wallets by selecting the desired scenario and sending the makeDeposition request with the special number of the test wallet and a certain payout amount.

Payout error description Error code Test wallet number (dstAccount) Payout amount
Yandex.Money Wallet blocked. This operation is not allowed for this wallet. 41 410011788545536 1 ruble or more
There is no account with this ID 42 410011806060695 1 ruble or more
Exceeded the limit on a one-time transfer, or the limit on the recipient's account balance 43 41001614575572 1 ruble or more
Exceeded the limit on the maximum amount of deposits per day 44 41001614575643 1 ruble or more
Not enough funds to perform the operation 45 410011806060766 1 ruble or more
The transaction amount is too small 46 41001614575714 Less than 1 ruble

Testing payouts to cards

ID of the transfer recipient (dstAccount): 25700120202056919

Use test personal details for the payment recipient to check payouts to bank cards.

Name of the paymentParams field Value
pdr_lastName Иванов
pdr_firstName Иван
pdr_middleName Иванович
pdr_docNumber 1234567890
All other parameters Any valid values
Step 1. Transfer the money (makeDeposition)

For depositing money to card:

  1. Get a bank card synonym independently or using the Yandex.Money form.. Any bank card's data is suitable.
  2. Send a makeDeposition request with the received synonym, agentId of the test gateway, test personal details of the payment recipient (Иванов Иван Иванович, 1234567890), test ID of the transfer recipient (dstAccount) and the amount of 100 rubles.

Request example

<makeDepositionRequest 
    agentId="123"
    clientOrderId="12345"
    requestDT="2019-06-07T15:43:29.000Z"
    dstAccount="25700120202056919"
    amount="249.00"
    currency="643"
    contract="">
    <paymentParams>
    <skr_destinationCardSynonim>sRKjOLa32DBbBa-Oej5r9BvA.SC.000.201906</skr_destinationCardSynonim>
        <pdr_firstName>Иван</pdr_firstName>
        <pdr_middleName>Иванович</pdr_middleName>
        <pdr_lastName>Иванов</pdr_lastName>
        <pdr_docNumber>1234567890</pdr_docNumber>
        <pdr_postcode>194044</pdr_postcode>
        <pdr_country>643</pdr_country>
        <pdr_city>Санкт-Петербург</pdr_city>
        <pdr_address>3-я улица Строителей, д. 25</pdr_address>
        <pdr_birthDate>01.01.1940</pdr_birthDate>
        <pdr_birthPlace>гор.Ленинград</pdr_birthPlace>
        <pdr_docIssueYear>1999</pdr_docIssueYear>
        <pdr_docIssueMonth>07</pdr_docIssueMonth>
        <pdr_docIssueDay>30</pdr_docIssueDay>
        <pdr_docIssuedBy>ТП №20 по СПб и ЛО</pdr_docIssuedBy>
        <pof_offerAccepted>1</pof_offerAccepted>
        <smsPhoneNumber>79000000000</smsPhoneNumber>
    </paymentParams>
</makeDepositionRequest>

Example of the response

<makeDepositionResponse 
    clientOrderId="12345" 
    status="0" 
    processedDT="2019-06-07T15:43:31.606+03:00" 
    balance="-100000" 
    invoiceId="2000028645828" 
/>
Note. A random negative number returns in the balance parameter.
Step 2. Check the idempotency of requests

Send the makeDeposition request with the same data used in step 1. The result of processing the request sent in step 1 returns in response.

Step 3. Check the payout error processing

You can check the processing of the payout errors to cards by selecting the desired scenario and sending the makeDeposition request with the special test data.

Payout error description Error code Bank card synonym Personal details Payout amount
The transfer recipient declined the payment (the recipient refers to the mobile carrier or processing bank) 31 BFtJqriXvLaIOr0BDLdcjwgC.SC.000.201904 Иванов Иван Иванович, 1234567890 100 rubles or more
The transaction amount is too small 46

You can use any synonym, except for those specified in this table.

How to obtain a bank card synonym
Иванов Иван Иванович, 1234567890 Less than 100 rubles
Error in the request for funds deposit to a bank account, card, or mobile phone 48 HW0xgquwIm-h4H9bfpiIRF3u.SC.000.201904 Иванов Иван Иванович, 1234567890 100 rubles or more
Error in the request for funds deposition to a bank account, card, or mobile phone balance (techMessage= "Паспортные данные не прошли проверку" — Passport information verification failure) 48

You can use any synonym, except for those specified in this table.

How to obtain a bank card synonym
Any data except test data 100 rubles or more

Testing notifications of failed transfers (errorDepositionNotification)​

Note. This is mandatory if you are planning to send transfers to bank cards, bank accounts, or mobile phones.

Notifications of failed transfers to a bank account, card, or mobile phone are sent in the errorDepositionNotification request. The address to send the request to must be specified in the Yandex.Checkout settings (a manager can do this for you).

To check how errorDepositionNotification works, make a test transfer to a bank card using the following data:

  • ID of the transfer recipient (dstAccount): 25700120202056919
  • bank card synonym: i8DZjk1u4a8TAm-577VSEzFh.SC.000.201905
  • personal information: Иванов Иван Иванович, 1234567890
  • amount: 100 rubles or more

In this case, the transfer is processed normally, but after some time you will get a notification that the transfer failed.

Example of notification

<errorDepositionNotificationRequest 
    clientOrderId="12345" 
    requestDT="2019-05-29T09:27:07.203Z" 
    dstAccount="25700120202056919" 
    amount="697.26" 
    currency="643" 
    error="31"
/>

Make sure that the request was received and processed correctly.

Example of the response

<errorDepositionNotificationResponse
        clientOrderId="12345" 
        status="0" 
        processedDT="2019-05-29T09:30:07.203Z"
        />

Checking the account balance to ensure proper payouts (balance)

To check the balance of the test account to ensure payouts are made properly, send the balance request with the agentId of the test gateway.

Request example

<balanceRequest 
    agentId="123"
    clientOrderId="12345"
    requestDT="2019-07-01T20:38:00.000Z"
/>

Example of the response

<balanceResponse
    clientOrderId="12345"
    status="0"
    processedDT="2019-07-01T20:38:01.000Z"
    balance="-19270338.94"
/>
Note. A random negative number returns in the balance parameter.

Real payouts

Consult with your manager to make sure everything is ready for launch. After that, send requests with the ID of the real gateway (agentId) and real data.

Attention. The test and real gateways have different agentId. You can't use the agentId of the test gateway for real payouts: Yandex.Checkout will return the 41 error code.

See also

Activating payouts

Funds deposit

Data types

Error codes