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
Parameter | Type | Description |
---|---|---|
dstAccount | YMAccount | ID of the transfer recipient: Wallet number, phone number, or payment code.
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 |
subAgentId | xs:long | Unique ID of the channel for accepting transfers. Issued by YooMoney. Mandatory parameter if you divide transfers to several channels |
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 specified 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" />
Request for funds deposit with specified subAgentId
XML
<makeDepositionRequest agentId="123" subAgentId="456" clientOrderId="12345" requestDT="2019-09-10T10:48:15.060Z" dstAccount="410011234567" amount="100.00" currency="643" contract="Funds deposit to wallet" />
Response
Response parameters
Parameter | Type | Description |
---|---|---|
status | xs:int | Result 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 |
error | xs:int | Code of the request execution error. Additional explanation of the status . |
clientOrderId | ClientTransactionNumber | The 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 ). |
processedDT | xs:dateTime | Time 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. This parameter is passed in the response only for the makeDeposition request, and only if the transfer was successful. |
techMessage | xs:string | Optional 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:
|
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
- Each transfer must be formed with a unique ID value (
clientOrderId
). - 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 theerror
field in the response with an additional explanation of the operation status. - If the request was sent with a previously processed ID (
clientOrderId
) and the values of thedstAccount
andamount
parameters match the previous attempt, YooMoney returns the result of processing the previously sent request. - If the request was sent with a previously processed ID (
clientOrderId
) and the values of thedstAccount
andamount
parameters differ from the first attempt, YooMoney declines this request and returnsstatus=3
,error=26
in the response. - 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. - 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.
- The status of a transaction in progress (
status=1
) may change either to Success (status=0
), or Declined (status=3
). - If the transfer was declined by the YooMoney service, the response returns
status=3
anderror
with the code of the reason for refusal. In some cases thetechMessage
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. - 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
). - The response
status=3 error=21
means that the requested operation is not allowed for this Counterparty. - If in the request to funds deposit from a bank card you specified
cardBin
, and the YooMoney service declined the transfer with an errorstatus=3 error=49
, this means that the payer tried to replenish the wallet balance from a corporate card.
See also