AI ПаделДокументация API На сайт

Кошелёк и оплата

Баланс игрока, пополнение через ЮKassa и уведомления ЮKassa.

Базовый адрес: https://адрес-вашего-сервера/api · Руководство по разделу: Онлайн-оплата через ЮKassa

Кошелёк игрока #

GET/v1/wallet

Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.

Баланс в рублях и последние 30 операций: пополнения, брони, возвраты, прокат, доли.

Заголовки

ИмяТипОбязательноОписание
AuthorizationстрокадаBearer <токен игрока>

Пример запроса

curl -X GET "https://адрес-вашего-сервера/api/v1/wallet" \
  -H "Authorization: Bearer <токен игрока>"

Ответы

КодdetailЗначение
200—Успешный ответ; пример ниже
401no_tokenНет токена в заголовке Authorization
401invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh

Пример ответа

{
  "balance": 4200,
  "transactions": [
    {
      "id": "71b3e9d0-5c2a-4e86-9f14-a8d6c3b0e275",
      "amount": 5000,
      "kind": "topup",
      "status": "done",
      "note": "Оплата ЮKassa 2f1a…",
      "at": "2026-10-02T09:12:44+00:00"
    }
  ]
}

Пополнить кошелёк #

POST/v1/wallet/topup

Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.

Создаёт платёж ЮKassa и возвращает confirmationUrl — страницу оплаты, которую нужно открыть игроку. Деньги зачисляются только после подтверждения статуса у ЮKassa. Сумма — целые рубли в пределах, заданных в облаке (по умолчанию 100–100 000). Если онлайн-оплата не подключена — 503.

Заголовки

ИмяТипОбязательноОписание
AuthorizationстрокадаBearer <токен игрока>

Тело запроса application/json

ПолеТипОбязательноОписание
amountцелоедаСумма в целых рублях
больше 0; не больше 100000

Пример запроса

curl -X POST "https://адрес-вашего-сервера/api/v1/wallet/topup" \
  -H "Authorization: Bearer <токен игрока>" \
  -H "Content-Type: application/json" \
  -d '{"amount": 5000}'

Ответы

КодdetailЗначение
200—Успешный ответ; пример ниже
401no_tokenНет токена в заголовке Authorization
401invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh
400bad_amountСумма вне допустимого диапазона; в ответе min и max
503payments_provider_not_configuredОнлайн-оплата не подключена
502payment_create_failedЮKassa не создала платёж
422[…]Ошибка проверки параметров или тела: detail — список ошибок

Пример ответа

{
  "ok": true,
  "status": "pending",
  "paymentId": "e4a19c7d-6b3f-4c21-8d5e-0f2a7b9c1d36",
  "confirmationUrl": "https://yoomoney.ru/checkout/payments/v2/contract?orderId=<id>"
}

Статус пополнения после возврата со страницы оплаты #

GET/v1/wallet/payments/{payment_id}

Доступ: Токен игрока Заголовок Authorization: Bearer <токен игрока> — токен по SMS-входу.

Статус пополнения после возврата со страницы оплаты. Если платёж ещё ждёт (pending), облако само перепрашивает статус у ЮKassa и при успехе зачисляет деньги. Статусы: pending, succeeded, canceled.

Параметры пути

ИмяТипОбязательноОписание
payment_idстрока (uuid)даpaymentId из ответа на пополнение

Заголовки

ИмяТипОбязательноОписание
AuthorizationстрокадаBearer <токен игрока>

Пример запроса

curl -X GET "https://адрес-вашего-сервера/api/v1/wallet/payments/e4a19c7d-6b3f-4c21-8d5e-0f2a7b9c1d36" \
  -H "Authorization: Bearer <токен игрока>"

Ответы

КодdetailЗначение
200—Успешный ответ; пример ниже
401no_tokenНет токена в заголовке Authorization
401invalid_tokenТокен просрочен или подделан — обновите его через /v1/auth/refresh
404payment_not_foundПлатёж не найден или не ваш
422[…]Ошибка проверки параметров или тела: detail — список ошибок

Пример ответа

{
  "paymentId": "e4a19c7d-6b3f-4c21-8d5e-0f2a7b9c1d36",
  "status": "succeeded",
  "amount": 5000,
  "balance": 9200
}

Уведомление ЮKassa #

POST/v1/wallet/yookassa/webhook

Доступ: Только для ЮKassa Без авторизации: тело уведомления не принимается на веру, статус платежа перепрашивается у ЮKassa.

Адрес для уведомлений ЮKassa. Из тела берётся только object.id; статус и сумма перепрашиваются у ЮKassa по ключу магазина и сверяются с записью облака. Деньги зачисляются ровно один раз, повторные уведомления ничего не меняют. Чужой платёж — ответ 200 с ignored=true.

Тело запроса

Тело — объект уведомления ЮKassa; облако читает из него только object.id.

Пример запроса

curl -X POST "https://адрес-вашего-сервера/api/v1/wallet/yookassa/webhook" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "notification",
  "event": "payment.succeeded",
  "object": {"id": "<id платежа ЮKassa>", "status": "succeeded"}
}'

Ответы

КодdetailЗначение
200—Успешный ответ; пример ниже
400no_payment_idВ уведомлении нет object.id
422[…]Ошибка проверки параметров или тела: detail — список ошибок

Пример ответа

{"ok": true, "status": "succeeded"}