Выплаты — обратная сторона приёма по QR: там рубли приходят на ваш USDT-баланс, здесь уходят с него. Вы создаёте заявку с реквизитом получателя, мы списываем USDT и передаём заявку исполнителю, который отправляет рубли на карту или по номеру телефона через СБП.
POST /payouts ──▶ списание USDT с баланса ──▶ исполнитель отправляет рубли
│ │
└──── webhook payout.status_changed ────┘Деньги списываются в момент создания заявки, а не в момент её исполнения. Так сделано намеренно: иначе заявка могла бы жить у исполнителя без списания — рубли ушли бы получателю, а USDT остались бы у вас на балансе. Если заявка не выполнится, списанное вернётся на баланс автоматически и ровно один раз.
Комиссия зашита в курс. Отдельной строки с комиссией в ответах нет: вы видите одно число — сколько USDT спишется за нужную сумму в рублях. Так же устроены QR-ордера.
Курс фиксируется при создании заявки. Движение рынка между созданием и исполнением на вас не влияет.
Выплаты подключаются отдельно и по умолчанию выключены — это перевод денег третьим лицам с вашего баланса. Если GET /payouts/config отдаёт enabled: false, а создание заявки — PAYOUTS_NOT_ENABLED, напишите менеджеру.
curl 'https://b2b.lumowallet.io/payouts/config' -H 'X-API-Key: YOUR_API_KEY'{
"enabled": true,
"minAmountRub": 9000,
"maxAmountRub": 15000,
"rate": 81.24,
"maxActivePayouts": 10,
"workFromHour": 8,
"workToHour": 22,
"withinWorkingHours": true,
"requisiteCooldownHours": 72
}Запрашивайте перед показом формы: лимиты и часы приёма настраиваются под компанию, а вне рабочего окна заявка будет отклонена уже после заполнения всех полей.
Заявки принимаются с workFromHour до workToHour по Москве — по умолчанию с 08:00 до 22:00. Граница правая открытая: в 21:59 заявку принять ещё можно, в 22:00 уже нет.
Причина не в исполнителях, а в деньгах: списание происходит сразу, поэтому принятая ночью заявка ждала бы исполнителя до утра с уже снятыми у вас средствами. withinWorkingHours показывает, открыт ли приём прямо сейчас.
Заявку, созданную до закрытия, правило не трогает — она доживает до утра.
На пару «номер телефона + банк» выплатить можно не чаще, чем раз в requisiteCooldownHours часов. Ограничение общее, а не в рамках вашей компании: считается, сколько денег утекает на конкретный счёт.
Ключ — именно пара «номер + банк». На один номер можно выплатить в Т-Банк и сразу же в Сбер, а повторно в Т-Банк — только через трое суток. Формат номера роли не играет: +79001234567, 89001234567 и 9001234567 — один и тот же счёт. Заявки, закончившиеся провалом, окно не занимают.
Выплат на карту правило не касается.
Отказ приходит с errorCode: PAYOUT_REQUISITE_COOLDOWN и полем details.availableAt — моментом, когда на этот реквизит снова можно платить.
Одновременно в работе может быть не больше maxActivePayouts заявок. Заявка перестаёт считаться активной, когда переходит в success или fail.
- Создание выплаты — реквизиты, банки, идемпотентность
- Жизненный цикл — статусы, отмена, споры, возвраты