T-Invest API: Проверить робота в песочнице

Сценарий из mcp-everything. Актуально на 2026-10-24.

Тестировать стратегию на реальных рыночных данных, не трогая настоящий счёт.

  1. Выпусти отдельный Sandbox token — обычный токен в песочнице не работает, и наоборот. Адрес песочницы — https://sandbox-invest-public-api.tbank.ru/rest.
  2. Открой счёт: POST /tinkoff.public.invest.api.contract.v1.SandboxService/OpenSandboxAccount.
  3. Пополни его: POST /tinkoff.public.invest.api.contract.v1.SandboxService/SandboxPayIn с accountId и amount.
  4. Дальше вызывай те же методы, что и в бою, — заявки, портфель, котировки — на адресе песочницы. Стоп-заявки и часть отчётов в песочнице недоступны.
SB=https://sandbox-invest-public-api.tbank.ru/rest/tinkoff.public.invest.api.contract.v1
ACC=$(curl -s -X POST "$SB.SandboxService/OpenSandboxAccount" -H "Authorization: Bearer $SANDBOX_TOKEN" \
  -H 'Content-Type: application/json' -d '{"name": "robot-test"}' | jq -r .accountId)

curl -X POST "$SB.SandboxService/SandboxPayIn" -H "Authorization: Bearer $SANDBOX_TOKEN" \
  -H 'Content-Type: application/json' -d "{\"accountId\": \"$ACC\", \"amount\": {\"units\": \"100000\", \"nano\": 0, \"currency\": \"rub\"}}"

Базовые URL

Авторизация

Тип: 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"

Методы сценария

POST /tinkoff.public.invest.api.contract.v1.SandboxService/OpenSandboxAccount — Открыть счёт в песочнице

Параметр Где Тип Обяз. Описание
name body string нет Название счёта

POST /tinkoff.public.invest.api.contract.v1.SandboxService/SandboxPayIn — Пополнить счёт в песочнице

Параметр Где Тип Обяз. Описание
accountId body string да Номер счёта в песочнице
amount body v1MoneyValue да Сумма пополнения

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://developer.tbank.ru/invest/intro/intro/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/t-invest.md