Выплаты на кошельки ЮMoney
В этой статье описаны особенности и порядок проведения выплат на кошельки ЮMoney.
Лимиты выплат
Выплаты можно делать на кошельки ЮMoney с любым статусом.
Ограничения на сумму выплат:
  • минимальная сумма выплаты — 1 рубль;
  • максимальная сумма разовой выплаты зависит от текущего баланса кошелька. После выплаты баланс кошелька не может превышать определенную сумму:
    • Анонимный кошелек — 15 000 рублей;
    • Именной кошелек — 60 000 рублей;
    • Идентифицированный кошелек — 500 000 рублей;
  • максимальная сумма выплат за месяц — 600 000 рублей.
Общий сценарий проведения выплат на кошелек ЮMoney
Общий сценарий проведения выплат на кошельки ЮMoney
  1. Вы запрашиваете у пользователя номер кошелька ЮMoney, на который он хочет получить выплату.
  2. Пользователь сообщает вам номер кошелька.
  3. Вы создаете выплату — отправляете ЮKassa POST-запрос с данными о том, какую сумму списать с вашего баланса и куда ее перевести.
  4. ЮKassa переводит выплату на кошелек пользователя и возвращает вам объект выплаты с финальным статусом —
    succeeded
    (выплата успешна) или 
    canceled
    (выплата отменена).
Если в ответ на запрос ЮKassa вернула вам объект выплаты в статусе
pending
, это значит, что ЮKassa еще в процессе перевода денег на кошелек пользователя. Чтобы узнать финальный статус, повторяйте запрос на проведение выплаты с тем же ключом идемпотентности или запрашивайте информацию о выплате методом GET с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
Проведение выплаты
Чтобы сделать выплату на кошелек ЮMoney:
  1. Получите данные кошелька ЮMoney.
  2. Проведите выплату с полученными данными.
Получение данных кошелька ЮMoney
Для проведения выплаты вам понадобится номер кошелька ЮMoney. Получите его любым удобным вам способом.
Предупредите пользователя, что после выплаты остаток в кошельке не должен превышать определенную сумму, размер которой зависит от статуса кошелька. Если выплата не проходит из-за лимита на баланс, получателю следует изменить статус кошелька, потратить сумму, на которую превышается остаток, или выбрать другой способ получения выплаты.
Проведение выплаты на кошелек ЮMoney
Создайте выплату 
: отправьте ЮKassa запрос с данными для аутентификации запроса, ключом идемпотентности и данными для выплаты на кошелек ЮMoney:
  • в объекте
    amount
    передайте сумму, которую нужно выплатить пользователю; сумма должна укладываться в лимиты;
  • в параметре
    description
    передайте описание выплаты;
  • в объекте
    payout_destination_data
    передайте код вида выплаты
    yoo_money
    и номер кошелька, на который нужно сделать выплату.
Пример запроса на создание выплаты
cURL
curl https://api.yookassa.ru/v3/payouts \
  -X POST \
  -u <Идентификатор шлюза>: <Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payout_destination_data":
        {
            "type": "yoo_money",
            "account_number": "4100116075156746"
        },
        "description": "Выплата по заказу № 37",
        "metadata": {
          "order_id": "37"
        }
      }'
Пример созданного объекта выплаты
JSON
{
    "id": "po-285ec15d-0003-5000-a000-08d1bec7dade",
    "amount": {
        "value": "2.00",
        "currency": "RUB"
    },
    "status": "pending",
    "payout_destination": {
        "type": "yoo_money",
        "account_number": "4100116075156746"
    },
    "description": "Выплата по заказу № 37",
    "created_at": "21.06.2021T14:28:45.132Z",
    "metadata": {
        "order_id": "37"
    },
    "test": "false"
}
Если вы получили объект выплаты в статусе
pending
, дождитесь, когда статус изменится на 
succeeded
или 
canceled
. Для этого повторяйте запрос с тем же ключом идемпотентности или запрашивайте информацию о выплате методом GET с возрастающим разумным интервалом.
Пример запроса на получение информации о выплате
cURL
curl https://api.yookassa.ru/v3/payouts/{payout_id} \
    -X GET \
    -u <Идентификатор шлюза>:<Секретный ключ> \
Пример объекта выплаты в статусе succeeded
JSON
{
    "id": "po-285ec15d-0003-5000-a000-08d1bec7dade",
    "amount": {
        "value": "2.00",
        "currency": "RUB"
    },
    "status": "succeeded",
    "payout_destination": {
        "type": "yoo_money",
        "account_number": "4100116075156746"
    },
    "description": "Выплата по заказу № 37",
    "created_at": "21.06.2021T14:28:45.132Z",
    "metadata": {
        "order_id": "37"
    },
    "test": "false"
}
Что почитать еще
Выплаты самозанятымНеуспешные выплатыКоды ответа (состояния) HTTPТестирование выплатЗапрос баланса выплат