withdrawStarBalanceПоддерживается
Расширение StaticGram (в официальном Bot API его нет). Выводит Telegram Stars с баланса бота владельцу бота (как /bank в @BotFather) или любому пользователю по выбору разработчика (параметр user_id). Получателю приходит нативное зачисление звёзд от 777000 и сообщение «Вывод с бота @bot в размере X ⭐️ успешно оформлен!». On success, returns a StarTransaction object.
Метод StaticGram, в официальном Bot API его нет. Списание с бота и зачисление получателю проходят одной транзакцией. В ответе, кроме полей StarTransaction, есть star_count, remaining_balance, owner_user_id и recipient_user_id. Ошибки: BALANCE_TOO_LOW (на балансе меньше запрошенного), STAR_COUNT_TOO_SMALL (меньше минимума), STAR_COUNT_INVALID, REQUEST_ID_INVALID, REQUEST_ID_CONFLICT, BOT_OWNER_UNAVAILABLE (у бота нет владельца-пользователя), STAR_WITHDRAWAL_DISABLED (вывод отключён администрацией). Подробнее — раздел «Оплата» → «Вывод звёзд владельцу бота».
Параметры
Ошибки
Ошибка приходит как {"ok": false, "error_code": 400, "description": "Bad Request: КОД: пояснение"}, если не указано иное.
| Ошибка | Когда |
|---|---|
BALANCE_TOO_LOW | на балансе бота меньше запрошенного |
STAR_COUNT_TOO_SMALL | меньше минимальной суммы вывода |
STAR_COUNT_INVALID | star_count не целое число или вне допустимого диапазона |
REQUEST_ID_INVALID | request_id длиннее 40 символов или содержит не-ASCII |
REQUEST_ID_CONFLICT | тот же request_id уже использован с другой суммой или другим получателем |
BOT_OWNER_UNAVAILABLE | у бота нет владельца-пользователя |
STAR_WITHDRAWAL_DISABLED | вывод отключён администрацией |
Bad Request: user not found | получатель не найден, удалён или системный аккаунт |
Bad Request: USER_IS_BOT | получатель — бот |
USER_FROZEN | аккаунт получателя заморожен |
429 Too Many Requests: retry after N | превышен лимит выводов в минуту |
Пример запроса
curl "https://api.staticgram.top/bot$TOKEN/withdrawStarBalance"from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer
session = AiohttpSession(api=TelegramAPIServer.from_base("https://api.staticgram.top"))
bot = Bot(TOKEN, session=session)
result = await bot.withdraw_star_balance()const res = await fetch(`https://api.staticgram.top/bot${TOKEN}/withdrawStarBalance`);
const data = await res.json();Ответ (StarTransaction)
{
"ok": true,
"result": {
"id": "...",
"amount": 1,
"date": 1790000000
}
}