POST /api/v1/partner/sell
Продажа заданного количества акций за одного из пользователей партнёра — полное или частичное закрытие позиции, открытой через Place Bet.
Выплата остаётся на суб-аккаунте пользователя — на аккаунт-флоат она не возвращается. Её можно использовать под следующие ставки пользователя или прочитать через Get User State.
Аутентификация
Обязательно. API-ключ партнёра в заголовке X-Partner-Key.
Запрос
Параметры тела запроса
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
external_user_id | string | Да | Идентификатор пользователя в вашей системе. |
market_id | int64 | Да | ID рынка, на котором совершается продажа. |
side | string | Да | Продаваемая сторона: "yes" или "no". |
shares | int | Да | Количество продаваемых акций. 100 акций = 1 токен. |
client_bet_id | string | Да | Ваш уникальный ключ идемпотентности для этой продажи. |
Пример
curl -X POST https://api.intotes.com/api/v1/partner/sell \
-H "X-Partner-Key: <partner_key>" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "user_42",
"market_id": 12345,
"side": "yes",
"shares": 91234,
"client_bet_id": "sell_abc_001"
}'
Ответ
200 OK
{
"status": "accepted",
"client_bet_id": "sell_abc_001",
"external_user_id": "user_42",
"user_id": 987654,
"market_id": 12345,
"side": "sell_yes",
"payout_kopecks": 61000,
"shares_delta": -91234
}
Поле side в ответе содержит направление исполненной сделки — "sell_yes" или "sell_no" — а не то значение side, которое было отправлено в запросе.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
status | string | "accepted", когда продажа исполнена. |
client_bet_id | string | Ключ идемпотентности, отправленный в запросе. |
external_user_id | string | Идентификатор пользователя в вашей системе. |
user_id | int64 | ID суб-аккаунта Intotes, привязанного к external_user_id. |
market_id | int64 | Рынок, на котором проданы акции. |
side | string | Направление исполненной сделки: "sell_yes" или "sell_no". |
payout_kopecks | int | Выплата, зачисленная на суб-аккаунт пользователя, в копейках. |
shares_delta | int | Изменение позиции, отрицательное при продаже. 100 акций = 1 токен. |
Идемпотентность
Пара (partner, client_bet_id) уникальна, поэтому повтор запроса с client_bet_id, который уже был принят, не исполняет продажу второй раз.
Тело ответа на такой повтор для этого эндпоинта не документировано. Документированный ответ на повтор приведён на странице Place Bet, а полный контракт идемпотентности — в разделе Партнёрская интеграция.
Примечания
- Суммы — целые числа в копейках, где 1 RUB = 100 копеек. См. Формат денежных значений.
- Акции продаются в общий LMSR-пул — тот же пул, что обслуживает обычные сделки платформы. См. LMSR AMM и Позиции.
Ошибки
| Статус | Код | Описание |
|---|---|---|
| 400 | BAD_BODY | Невалидный JSON в теле запроса. |
| 400 | BAD_PARAMS | Отсутствуют или неверны обязательные поля. |
| 400 | TRADE_FAILED | Сделка отклонена, например, если рынок закрыт. |
| 404 | NO_ACCOUNT | У пользователя нет суб-аккаунта или позиций. |
Ошибки аутентификации, общие для всех партнёрских эндпоинтов, перечислены в разделе Обзор, а полный справочник кодов — в разделе Обработка ошибок.