Docs
Инструкции
Помощь
Подключить ЮKassa
Выплаты через Систему быстрых платежей (СБП)
Недоступно при выплатах самозанятым. Если делаете выплаты самозанятым, используйте другие способы получения выплат (кошелек ЮMoney или банковскую карту).
При выплатах через СБП вы переводите деньги на счет в системе участника СБП (банка или платежного сервиса), зная только номер телефона пользователя и название банка или сервиса.
Выплаты через СБП можно делать с проверкой получателя и без. Проверка получателя — это проверка того, что счет, на который вы переводите деньги, принадлежит получателю выплаты. Подробнее о выплатах через СБП с проверкой получателя
В этой статье описаны особенности и общий порядок проведения выплат через СБП без проверки получателя.
Лимиты выплат
Ограничения на размер выплат:
  • минимальная сумма выплаты — 1 рубль;
  • максимальная сумма разовой выплаты — 500 000 рублей.
Общий сценарий проведения выплат через СБП
Общий сценарий проведения выплат через СБП
  1. Вы запрашиваете у пользователя номер телефона, который привязан к банку или платежному сервису в СБП.
  2. Пользователь сообщает вам номер телефона.
  3. Вы запрашиваете список участников СБП — отправляете ЮKassa GET-запрос.
  4. ЮKassa запрашивает список участников у эквайера.
  5. Эквайер возвращает список участников.
  6. ЮKassa возвращает вам список участников СБП.
  7. Вы отображаете пользователю список участников и просите выбрать тот банк или платежный сервис, к которому привязан указанный номер телефона и в который нужно перевести выплату.
  8. Пользователь выбирает участника СБП.
  9. Вы создаете выплату — отправляете ЮKassa POST-запрос с данными о том, какую сумму списать с вашего баланса и куда ее перевести.
  10. ЮKassa отправляет эквайеру распоряжение на перевод денег получателю выплаты.
  11. Эквайер обрабатывает запрос и сообщает результат выполнения операции.
  12. ЮKassa возвращает вам объект выплаты с финальным статусом —
    succeeded
    (выплата успешна) или 
    canceled
    (выплата отменена).
Если в ответ на запрос ЮKassa вернула вам объект выплаты в статусе
pending
, это значит, что эквайер еще обрабатывает распоряжение на перевод. Чтобы узнать финальный статус, повторяйте запрос на проведение выплаты с тем же ключом идемпотентности или запрашивайте информацию о выплате методом GET с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
Проведение выплат
Чтобы сделать выплату через СБП:
  1. Получите данные для выплаты.
  2. Проведите выплату с полученными данными.
Получение данных для выплаты
Для проведения выплаты вам понадобятся номер телефона пользователя и идентификатор участника СБП, к которому этот телефон привязан.
Номер телефона получите любым удобным вам способом.
Чтобы получить идентификатор участника СБП:
Шаг 1. Отправьте ЮKassa запрос на получение списка участников СБП .
Пример запроса на получение списка участников СБП
cURL
curl https://api.yookassa.ru/v3/sbp_banks \
    -X GET \
    -u <Идентификатор шлюза>:<Секретный ключ> \
Пример списка участников СБП
JSON
{
  "type": "list",
  "items": [
    {
      "bank_id": "100000000111",
      "name": "СберБанк",
      "bic": "044525225"
    }
  ]
}
Шаг 2. Отобразите пользователю названия полученных участников СБП.
Шаг 3. Когда пользователь выберет участника, сохраните соответствующий ему идентификатор (параметр
bank_id
объекта). Его нужно передать при проведении выплаты.
Проведение выплаты через СБП
Создайте выплату 
: отправьте ЮKassa запрос с данными для аутентификации запроса, ключом идемпотентности и данными для выплаты через СБП:
  • в объекте
    amount
    передайте сумму, которую нужно выплатить пользователю; сумма должна укладываться в лимиты;
  • в параметре
    description
    передайте описание выплаты;
  • в объекте
    payout_destination_data
    передайте способ получения выплаты
    sbp
    , номер телефона пользователя и идентификатор участника СБП.
Пример запроса на создание выплаты
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": "sbp",
            "phone": "79000000000",
            "bank_id": "100000000111"
          }
        },
        "description": "Выплата по заказу № 37",
        "metadata": {
          "order_id": "37"
        }
      }'
В ответ на запрос ЮKassa вернет созданный объект выплаты .
Пример созданного объекта выплаты
JSON
{
  "id": "po-285ec15d-0003-5000-a000-08d1bec7dade",
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "status": "pending",
  "payout_destination": {
    "type": "sbp",
    "phone": "79000000000",
    "bank_id": "100000000111",
    "recipient_checked": false
  },
  "description": "Выплата по заказу №37",
  "created_at": "2021-06-21T14: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": "800.00",
        "currency": "RUB"
    },
    "status": "succeeded",
    "payout_destination": {
      "type": "sbp",
      "phone": "79000000000",
      "bank_id": "100000000111",
      "recipient_checked": false
    },
    "description": "Выплата по заказу №37",
    "created_at": "2021-06-21T14:28:45.132Z",
    "metadata": {
        "order_id": "37"
    },
    "test": false
}
Что почитать еще
Выплаты с проверкой получателяНеуспешные выплатыКоды ответа (состояния) HTTPЗапрос баланса выплат