YooMoney API
Old versions of the API
Sign up for YooMoney
Funds deposit (makeDeposition)
Для перевода денег получателям выплат нужно использовать запрос makeDeposition. Вы можете делать выплаты физическим лицам и самозанятым. Деньги можно переводить на кошельки ЮMoney, рублевые банковские счета, банковские карты и счета мобильных телефонов.
Данные для зачисления переводов получателям выплат необходимо передавать в запросе makeDeposition. Что важно учесть:
Выплаты по виду или получателюОсобенности
Выплаты на кошельки
Выплаты на банковские карты или банковские счета
Выплаты на номера мобильных телефонов
Выплаты самозанятым
  • Вам нужно получить данные для регистрации чека в налоговой и разрешение формировать чеки от имени пользователя. Подробнее о выплатах самозанятым
  • Можно делать все виды выплат — на кошельки ЮMoney, номера мобильных телефонов, банковские карты и счета.
Согласие с офертой ЮKassa
Если вы делаете выплаты на банковские карты, банковские счета и номера мобильных телефонов, вам необходимо получить от пользователя согласие с офертой ЮKassa. Для этого разместите на своей стороне ссылку на оферту и реализуйте получение от пользователя подтверждения, что он согласен с условиями.
Ссылка на оферту ЮKassa
После получения согласия передавайте в запросе makeDeposition параметр pof_offerAccepted.
Verification of recipient’s passport information
In requests to debit to a bank account or bank card, the recipient’s personal data must be passed. Before making the deposit, YooMoney verifies this data against the database of active passports of the Ministry of Internal Affairs (as required by the legislation of the Russian Federation).
If everything is in order, the YooMoney service will returns status=0.
If the data does not pass verification, the YooMoney service returns status=3, a deposition error (error=48) with an explanation.
Формат запроса
Address for sending requests
Общие параметры запроса
Здесь описаны только общие параметры, которые есть в каждом запросе на зачисление перевода. Параметры, специфичные для конкретного вида или получателя выплаты, описаны в соответствующих статьях:
Описание общих параметров
Identifier of the transfer recipient. Depends on where you send the transfer:
Required parameter
Operation ID. Must be unique for your system over the entire history of operations. Recommended values: a positive integer in decimal notation.
Required parameter
The date and time the operation request was formed on your side, according to your system.
Required parameter
The transfer amount. For example: 12.34
Required parameter
Currency code of the transfer. Possible value — 643 (Russian ruble).
Required parameter
Идентификатор вашего шлюза. Выдается ЮKassa.
Required parameter
xs: normalizedString,
up to 128 characters
The reason for making the transfer. При выплатах самозанятым — описание услуги, оказанной получателем выплаты (для печати в чеке).
Required parameter
xs: complexType
Дополнительные данные для выплат. Possible values are described in the sections Payouts to bank card, Payouts to bank account, and Payouts to mobile phone account.
Optional parameter
Request example
Request to transfer specifying paymentParams (makeDeposition)
<makeDepositionRequest agentId="200225"
Формат ответа
Здесь описаны только общие параметры, которые есть в каждом ответе на зачисление перевода. При выплатах самозанятым в ответе дополнительно возвращаются параметры, связанные с регистрацией чека.
Параметры ответа
statusxs:intResult of executing the operation. По значению этого поля вам необходимо принимать решение о состоянии запроса. 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.
balancexs:decimalThe difference between the security amount that you have transferred to the gateway account in YooMoney, and the amount of money that YooMoney has transferred to users at your request.
May contain an additional explanation for refusals make the payout. This text contains technical information and should not be displayed in any user interface.
Optional parameter
This field contains information about the status of the Wallet in the YooMoney for Shopping service. Only present for deposits to YooMoney for Shopping wallets.
Possible values:
  • anonymous — Anonymous.
  • reviewed — Reviewed.
  • identified — Identified.
Internal ID of the payout in YooMoney. It’s a technical parameter, ignore it when processing the response. The value of this parameter must not be displayed in any user interface.
Optional parameter
Example of a response
Response about successful deposit (makeDeposition)
<makeDepositionResponse clientOrderId="12345"
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 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 operation is unknown, and the merchant should repeat the request with the same data to get a final response. 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 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), you 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, 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, you 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 you.
See also
Тестирование выплат Уведомление о неуспешном переводе Запрос баланса Reports on successful and returned payouts Payouts from a business account