Возможности
Отмена раундов и возвраты
Платный раунд начинается с callback bet. Если ваш кошелёк его не подтверждает, платформа повторяет ту же транзакцию — но не бесконечно. Здесь описано, как отменяется раунд, когда отправляется callback refund и как вы можете сами отменить незавершённый раунд.
Автоматическая отмена (неподтверждённая ставка)#
| Шаг | Что происходит |
|---|---|
| 1 | Раунд создаётся с операцией bet. Каждая попытка несёт тот же id транзакции и то же тело. |
| 2 | Если ставка всё ещё не подтверждена после политики отмены — по умолчанию 10 минут (или 600 попыток) — платформа отменяет раунд. |
| 3 | Ставка закрывается и больше никогда не отправляется. Создаётся операция refund на ту же сумму с meta.original_transaction = meta.transaction ставки. |
| 4 | refund доставляется по обычным правилам повторов, пока вы не ответите ok. |
Для игрока раунд завершается как отклонённый: ничего не сыграно, результат не раскрыт, перезагрузка показывает то же, можно начать новый раунд. Баланс игрока корректен, как только ваш кошелёк подтвердит возврат (сразу, если ставка не списывалась).
Значения политики задаются платформой для каждого окружения; нужны другие — обратитесь к менеджеру аккаунта.
Сторона вашего кошелька#
Реализуйте refund, как описано в Callbacks кошелька. Важны два случая:
- ставка была списана (ответ потерялся): верните её один раз;
- ставка не приходила: запишите id транзакции как отменённый, ответьте
okи откажите в ставке, если она придёт позже (TRANSACTION_CANCELLED).
Отмена раунда самостоятельно — round_cancel#
curl -s -X POST https://notell-api.com/gameActions.do -H 'content-type: application/json' -H 'Idempotency-Key: cancel-b2a7' -d '{
"method": "round_cancel",
"partner": "YOUR_PARTNER_ID",
"api_key": "YOUR_API_KEY",
"round_id": "b2a7…"
}'{
"status": "ok",
"round": {
"round_id": "b2a7…", "state": "cancelled", "result": "cancelled",
"reason": "operator_cancel", "source": "operator",
"refund": {"transaction": "c41e…", "amount": "1.50", "status": "pending"}
}
}round_id — это meta.round_id callbacks кошелька по раунду (или round_id из report_rounds). refund.status равен pending, пока ваш кошелёк не подтвердит возврат (смотрите через report_rounds). Повтор возвращает result: "already_cancelled" с той же транзакцией возврата.
Раунд можно отменить, если
- его ставка ещё не подтверждена, или
- ставка подтверждена, но результат игроку ещё не показан и выигрыш не зачисляется (например, бонусный раунд, который игрок не открыл).
Иначе ответ HTTP 409 ROUND_NOT_CANCELLABLE — раунд завершён, выигрыш зачисляется, результат уже показан или это фриспин-раунд (ничего не списывалось). ROUND_NOT_FOUND (404) — id не относится к раундам вашего проекта; ROUND_BUSY (409) — идёт обращение к кошельку по раунду, повторите через несколько секунд. Методу нужны partner, api_key и IP из списка разрешённых, как у других методов /gameActions.do.
Правила денег#
- Одна ставка возвращается не более одного раза; сумма возврата всегда равна ставке.
- Списание, начисление и возврат отправляются с уникальным id транзакции и повторяются без изменений: ваш кошелёк отвечает на повтор из своей записи.
report_ggrсчитаетставки − возвраты − выигрыши; см. Отчёты.