Сценарий из mcp-everything. Актуально на 2026-10-24.
Торговый робот или кнопка «Купить» в своём интерфейсе.
import uuid
order = requests.post(f"{API}.OrdersService/PostOrder", headers=H, json={
"accountId": "<id счёта>",
"instrumentId": "<uid инструмента>",
"quantity": "1",
"direction": "ORDER_DIRECTION_BUY",
"orderType": "ORDER_TYPE_LIMIT",
"price": {"units": "280", "nano": 500000000}, # 280,5 ₽
"orderId": str(uuid.uuid4()),
}).json()
state = requests.post(f"{API}.OrdersService/GetOrderState", headers=H,
json={"accountId": "<id счёта>", "orderId": order["orderId"]}).json()
print(state["executionReportStatus"])
https://invest-public-api.tbank.ru/resthttps://sandbox-invest-public-api.tbank.ru/restinvest-public-api.tinkoff.ru:443sandbox-invest-public-api.tinkoff.ru:443Тип: Bearer-токен
Токен выпускается в настройках профиля Т-Инвестиций (https://www.tbank.ru/invest/settings/). Функция «Подтверждение сделок кодом» должна быть отключена. Токен показывается один раз, выпускать можно неограниченное количество. Виды токенов: Readonly (только чтение), Full-access (все методы), токен с доступом к конкретному счёту и Sandbox token (только для песочницы; для обычных методов вернёт ошибку). Токен передаётся в заголовке Authorization в формате Bearer t.QtEo8ahkNFX4RTpbqp0u4z4GDZq27HzUp6AotJASBx7_DVqmqZMHfM2Cy7JmUjS80boI9eVg, в gRPC — в metadata каждого запроса и стрима.
Срок жизни токена — три месяца с даты последнего использования. Неактуальный токен даёт ошибку:
"code": "40003"
"message": "authentication token is missing or invalid"
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
quantity |
body | string | да | Количество лотов |
price |
body | v1Quotation | нет | Цена (для лимитной заявки) |
price.units |
body | string | нет | Целая часть суммы |
price.nano |
body | integer | нет | Дробная часть суммы |
direction |
body | v1OrderDirection | да | ORDER_DIRECTION_BUY или ORDER_DIRECTION_SELL |
accountId |
body | string | да | Номер счёта |
orderType |
body | v1OrderType | да | ORDER_TYPE_LIMIT, ORDER_TYPE_MARKET, ORDER_TYPE_BESTPRICE |
orderId |
body | string | да | Идентификатор запроса для идемпотентности в формате UID, до 36 символов |
instrumentId |
body | string | нет | Figi или Instrument_uid |
timeInForce |
body | v1TimeInForceType | нет | Срок действия заявки |
priceType |
body | v1PriceType | нет | Тип цены |
confirmMarginTrade |
body | boolean | нет | Согласие на заявку, которая может привести к непокрытой позиции; по умолчанию false |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
accountId |
body | string | да | Номер счёта |
orderId |
body | string | да | Идентификатор заявки на бирже |
idempotencyKey |
body | string | да | Новый ключ идемпотентности, до 36 символов; перезатирает старый |
quantity |
body | string | да | Количество лотов |
price |
body | v1Quotation | нет | Цена |
priceType |
body | v1PriceType | нет | Тип цены |
confirmMarginTrade |
body | boolean | нет | Согласие на непокрытую позицию |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
accountId |
body | string | да | Номер счёта |
orderId |
body | string | да | Идентификатор заявки |
orderIdType |
body | v1OrderIdType | нет | Тип идентификатора заявки |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
accountId |
body | string | да | Номер счёта |
orderId |
body | string | да | Идентификатор заявки |
priceType |
body | v1PriceType | нет | Тип цены |
orderIdType |
body | v1OrderIdType | нет | Тип идентификатора заявки |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
accountId |
body | string | да | Номер счёта |
instrumentId |
body | string | да | Идентификатор инструмента |
price |
body | v1Quotation | нет | Цена |
PostOrder и PostStopOrder обязателен orderId — ключ идемпотентности в формате UID до 36 символов; у ReplaceOrder новый ключ передаётся в idempotencyKey.units (строка) и дробная в nano.GetBrokerReport, GetDividendsForeignIssuer и сервис стоп-заявок; для неё нужен отдельный Sandbox token.Если этого недостаточно — официальная документация: https://developer.tbank.ru/invest/intro/intro/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/t-invest.md