Funds deposit to wallets (makeDeposition)
This operation is used for making a transfer to a recipient’s YooMoney wallet. The recipient ID (for example, wallet number) is specified in the dstAccount parameter. The paymentParams parameters contain data that is required for depositing to the appropriate Wallet.
 
Testing if transfers can be credited (testDeposition)
Before sending the money to the user, the ability to deposit the funds must be checked using the testDeposition request. This request lets you check whether the amount specified can be transferred to the appropriate user, including:
  • Whether the recipient ID is correct and existent (account number or phone number);
  • What limits are applied;
  • Whether this operation is allowed.
The testDeposition and makeDeposition requests have the same set of parameters. When a testDeposition request is received, the deposit is not made.
Limits on deposits
Gateway’s limit
Your payment gateway has a single deposit limit and a daily limit on the total amount of deposits. Both limits are individual: contact your YooMoney manager to find them out.
If the single deposit limit is exceeded, inform the user that they need to add a smaller amount to the YooMoney wallet. If the daily limit is exceeded, repeat the transaction the next day: the limit is reset daily.
Wallet’s limits
Wallets have limits on the minimum and maximum deposit amount and on the total amount of deposits per month.
The minimum deposit amount is 1 ruble. The maximum deposit amount depends on the wallet balance: after money is added, the balance can’t exceed a certain amount:
  • Anonymous wallets: 15,000 rubles;
  • Reviewed wallets: 60,000 rubles;
  • Identified wallets: 500,000 rubles.
If the limit on the maximum deposit amount is exceeded, inform the user that they need to upgrade the wallet status or add a smaller amount to the wallet.
The total amount of deposits per month can’t exceed 600,000 rubles for wallets with any status.
Funds deposits to anonymous wallets
The legislation of the Russian Federation imposes certain restrictions on the funds deposits to anonymous wallets. Please contact your YooMoney manager for more information regarding the available methods.
If the wallet is anonymous and it can’t be replenished via the selected method, for example, a bank card or in cash, YooMoney will return an error (error=57) when you attempt a funds deposit.
makeDeposition and testDeposition requests
Address for sending requests
testDeposition
https://deposit.yoomoney.ru:9094/webservice/deposition/api/testDeposition
makeDeposition
https://deposit.yoomoney.ru:9094/webservice/deposition/api/makeDeposition
Request parameters
ParameterTypeDescription
dstAccount
YMAccount
ID of the transfer recipient: Wallet number, phone number, or payment code.
  • Wallet number in YooMoney, such as 4100175017397. The length is 11 to 20 digits.
  • The phone number linked to the YooMoney Wallet (money is deposited to this Wallet). You can use mobile phone numbers provided by mobile carriers based in Russia and abroad. Recommended format for the number: 79217575400, 11 to 15 digits, no additional symbols or spaces. If the number starts with +, %, or other symbol, it will be cut off and only digits will be used.
  • The payment code is generated in the YooMoney service. Format: row of digits with no spaces; may begin with 255, 256, 257. Maximum length is 20 digits.
Required parameter
clientOrderId
ClientTransactionNumber
Operation ID. Must be unique for the Counterparty over the entire history of operations. Recommended values: a positive integer in decimal notation.
Required parameter
requestDT
xs:dateTime
The date and time the operation request was formed on the Counterparty’s side, according to their system.
Required parameter
amount
CurrencyAmount
The transfer amount. For example: 12.34
Required parameter
currency
CurrencyCode
Currency code of the transfer.
Fixed value: 643 — Russian ruble.
Required parameter
agentId
xs:long
Counterparty ID issued by YooMoney.
Required parameter
contract
xs:normalizedString,
up to 128 characters
The reason for making the transfer.
Required parameter
depositionPointId
xs:int
Идентификатор точки, в которой пользователь пополнил кошелек, — id объекта point, переданный в запросе addDepositionPoints при формировании списка точек пополнения.
Обязательный параметр при зачислении переводов банковскими платежными агентами
senderPhone
xs:string,
11 to 15 digits, no additional characters or spaces
Payer’s phone number. You can use mobile phone numbers provided by mobile carriers based in Russia and abroad. Example: 79217575400. Used for funds deposits to anonymous wallets. For more information, contact your YooMoney manager.
Optional parameter
senderPhoneHash
xs:string,
SHA-256, 64 символа
Hash of the payer’s phone number. Used for funds deposits to anonymous wallets. For more information, contact your YooMoney manager.
Optional parameter
paymentParams
xs:complexType
Request element for transmitting additional payment parameters.
Optional parameter
Data for adding money to wallet from a bank card (specified in the paymentParams parameter). The information on whether a parameter is mandatory or optional is provided in the contract or addendum to the contract with YooMoney
cardBin
xs:string,
6 digits
Used for making deposits to wallets from bank cards. BIN of the payer’s bank card.
The parameter is mandatory if it’s specified as such in the contract or addendum to the contract with YooMoney
panMask
xs:string,
11 characters
Used for making deposits to wallets from bank cards. Masked card number of the payer’s bank card. Specified as a sequence of the first 6 and last 4 digits separated by *. For example, 666666*4444
The parameter is mandatory if it’s specified as such in the contract or addendum to the contract with YooMoney
cardProduct
xs:string,
up to 4 characters
Used for making deposits to wallets from bank cards. Type of payer’s bank card. Possible values depend on the specific payment system. For example, if the payer has a debit card of the Mir payment system, you should specify the value MDB.
The parameter is mandatory if it’s specified as such in the contract or addendum to the contract with YooMoney
Request examples
Request to check transfer possibility
XML
<testDepositionRequest
    agentId="123"
    clientOrderId="12345"
    requestDT="2011-07-01T20:38:00.000Z"
    dstAccount="410011234567"
    amount="10.00"
    currency="643"
    contract="Funds deposit to wallet"
/>
Request to transfer specifying paymentParams
XML
<makeDepositionRequest
    agentId="200225"
    clientOrderId="272517"
    requestDT="2013-04-12T00:01:54.000Z"
    dstAccount="2570066957329"
    amount="249.00"
    currency="643"
    contract="">
    <paymentParams>
        <pof_offerAccepted>1</pof_offerAccepted>
        <PROPERTY1>905</PROPERTY1>
        <PROPERTY2>2075556</PROPERTY2>
        <smsPhoneNumber>79653457676</smsPhoneNumber>
    </paymentParams>
</makeDepositionRequest>
Request for crediting money with cardBin specified in paymentParams
XML
<makeDepositionRequest
     agentId="321"
     clientOrderId="123456"
     requestDT="2019-11-19T09:41:14.925271+03:00"
     dstAccount="410011234567"
     amount="1.01"
     currency="643"
     contract="Зачисление на кошелек">
     <paymentParams>
         <cardBin>999999</cardBin>
         <panMask>999999*3456</panMask>
         <cardProduct>SAP</cardProduct>
     </paymentParams>
     </makeDepositionRequest>
Request for funds deposit with senderPhoneHash
XML
<makeDepositionRequest
                    agentId="123"
                    clientOrderId="12345"
                    requestDT="2019-09-10T10:48:15.060Z"
                    dstAccount="410011234567"
                    amount="100.00"
                    currency="643"
                    contract="Funds deposit to wallet"
                    senderPhoneHash="0f3d61ebdfb23ced56b5e5aa5f5e7fccab63b059bc3e25638faa6ed9deba7c2f"
/>
Response
Response parameters
ParameterTypeDescription
statusxs:intResult of executing the operation. The value of this field should be used on the Counterparty’s side to make a decision about the request state. See Request status codes
errorxs:intCode of the request execution error. Additional explanation of the status.
clientOrderIdClientTransactionNumberThe value of the clientOrderId request parameter. The parameter is omitted in the response if the request was not parsed (error codes 10, 50, 51, 53, 55) or if the clientOrderId request parameter is missing or invalid (error=18).
processedDTxs:dateTimeTime when the request was processed, according to the YooMoney server. For a successful transfer, this is the actual time when money was transferred.
balance
xs:decimal
The difference between the security amount that the Counterparty has transferred to the gateway account in YooMoney, and the amount of money that YooMoney has transferred to users at the request of the Counterparty.
techMessagexs:stringOptional field. May contain an additional explanation for refusals to accept the payment. This text contains technical information and should not be displayed in any user interface.
identification
xs:string
This field contains information about the status of the Wallet in the YooMoney service.
Possible values:
  • anonymous — Anonymous;
  • reviewed — Reviewed;
  • identified — Identified.
Examples of responses
Response about deposit possibility
XML
<testDepositionResponse clientOrderId="12345"
                          status="0"
                          processedDT="2011-07-01T20:38:01.000Z"/>
Response about successful deposit
XML
<makeDepositionResponse clientOrderId="12345"
                          status="0"
                          processedDT="2011-07-01T20:38:01.000Z"
                          balance="1000.00"/>
Rules for forming and processing requests
  1. Each transfer must be formed with a unique ID value (clientOrderId).
  2. If the response Success (status=0) is received for the deposit operation, it means the transfer was completed successfully. In some cases of a successful transfer, YooMoney might return the error field in the response with an additional explanation of the operation status.
  3. If the request was sent with a previously processed ID (clientOrderId) and the values of the dstAccount and amount parameters match the previous attempt, YooMoney returns the result of processing the previously sent request.
  4. If the request was sent with a previously processed ID (clientOrderId) and the values of the dstAccount and amount parameters differ from the first attempt, YooMoney declines this request and returns status=3, error=26 in the response.
  5. The YooMoney service processes a received request immediately. If a request can’t be handled within a few seconds, the response processing (status=1) is returned. In this case, the result of the transaction is unknown, and counterparty’s system needs to repeat the request with the same data. We recommend retrying as follows: the first retry after 1 minute, the next three with an interval of 5 minutes, and then not more than once every 30 minutes. We recommend the same retry attempts if the response from the YooMoney service is not received, or if the response contains HTTP status 500.
  6. If there is no response from YooMoney, or if the response is indefinite (for example: HTTP status 500), the counterparty’s system should repeat the request with the same data until the final response is received. We recommend using the same retry attempts as in the previous point.
  7. The status of a transaction in progress (status=1) may change either to Success (status=0), or Declined (status=3).
  8. If the transfer was declined by the YooMoney service, the response returns status=3 and error with the code of the reason for refusal. In some cases the techMessage field may be included, which contains additional information in the form of text in any format. This text is intended for analysis by technical specialists and shouldn’t be shown in any user interface.
  9. If the transfer is refused with the error status=3 error=45, the Counterparty’s system should deposit accepted transfers to the YooMoney account and confirm that the balance increased (by sending a balance request), then make the transfers with new transaction IDs (clientOrderId).
  10. The response status=3 error=21 means that the requested operation is not allowed for this Counterparty.
  11. If in the request to funds deposit from a bank card you specified cardBin, and the YooMoney service declined the transfer with an error status=3 error=49, this means that the payer tried to replenish the wallet balance from a corporate card.
See also
Request status codes Error codes Data types Зачисление переводов банковскими платежными агентами