# T-Invest API: Выгрузить операции по счёту

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

Сделки, комиссии, дивиденды и пополнения — для учёта и налоговых расчётов.

1. Запроси операции: POST /tinkoff.public.invest.api.contract.v1.OperationsService/GetOperationsByCursor с accountId, from и to в UTC и limit (до 1000).
2. Если в ответе hasNext = true, повтори запрос с cursor = nextCursor из ответа.
3. Отфильтровать можно по типам операций (operationTypes), инструменту (instrumentId) и статусу (state).
4. Лимит сервиса операций — 200 запросов в минуту; при превышении придёт 429.

```python
ops, cursor = [], ""
while True:
    r = requests.post(f"{API}.OperationsService/GetOperationsByCursor", headers=H, json={
        "accountId": "<id счёта>", "from": "2026-01-01T00:00:00Z", "to": "2026-10-24T00:00:00Z",
        "limit": 1000, "cursor": cursor}).json()
    ops += r["items"]
    if not r.get("hasNext"):
        break
    cursor = r["nextCursor"]
```

## Базовые URL

- Боевой (REST): `https://invest-public-api.tbank.ru/rest`
- Тестовый (REST, песочница): `https://sandbox-invest-public-api.tbank.ru/rest`
- Боевой (gRPC): `invest-public-api.tinkoff.ru:443`
- Тестовый (gRPC, песочница): `sandbox-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"
```

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

### POST /tinkoff.public.invest.api.contract.v1.OperationsService/GetOperationsByCursor — Операции по счёту с пагинацией

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `accountId` | body | string | да | Идентификатор счёта клиента |
| `instrumentId` | body | string | нет | FIGI или UID инструмента |
| `from` | body | string | нет | Начало периода по UTC |
| `to` | body | string | нет | Окончание периода по UTC |
| `cursor` | body | string | нет | Идентификатор элемента, с которого начать ответ |
| `limit` | body | integer | нет | Лимит операций: по умолчанию 100, максимум 1000 |
| `operationTypes` | body | array | нет | Типы операций из списка OperationType |
| `state` | body | v1OperationState | нет | Статус операции |
| `withoutCommissions` | body | boolean | нет | Флаг возврата комиссии, по умолчанию false |
| `withoutTrades` | body | boolean | нет | Ответ без массива сделок |
| `withoutOvernights` | body | boolean | нет | Флаг показа overnight-операций |

## Нюансы

- Для `PostOrder` и `PostStopOrder` обязателен `orderId` — ключ идемпотентности в формате UID до 36 символов; у `ReplaceOrder` новый ключ передаётся в `idempotencyKey`.
- Суммы и цены передаются не числом, а объектом Quotation/MoneyValue: целая часть в `units` (строка) и дробная в `nano`.
- Песочница работает почти со всеми теми же методами, но в ней недоступны `GetBrokerReport`, `GetDividendsForeignIssuer` и сервис стоп-заявок; для неё нужен отдельный Sandbox token.
- Сделки на сумму больше 30 000 000 рублей требуют подтверждения и через API недоступны.
- Лимиты считаются суммарно по всем счетам пользователя; с одного адреса рекомендуется не больше 50 запросов в секунду по всем счетам и токенам.
- Разработчикам публичного ПО нужно зарегистрировать название приложения через invest-public-api@tbank.ru.

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

- [Посмотреть счета и портфель](https://mcp-everything.ru/integrations/t-invest/scenarios/posmotret-scheta-i-portfel.md)
- [Найти инструмент и узнать его цену](https://mcp-everything.ru/integrations/t-invest/scenarios/nayti-instrument-i-uznat-ego-tsenu.md)
- [Выставить заявку и проверить исполнение](https://mcp-everything.ru/integrations/t-invest/scenarios/vystavit-zayavku-i-proverit-ispolnenie.md)
- [Проверить робота в песочнице](https://mcp-everything.ru/integrations/t-invest/scenarios/proverit-robota-v-pesochnitse.md)

---

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