Api токен тинькофф где взять

Обновлено: 28.03.2024

Безопасность

Как хранится у вас токен? Брокер не рекомендует передавать третьим лицам.

Токена API хранится в зашифрованном виде, воспользоваться токеном для чтения записей о совершенных сделках может только владелец аккаунта. Ключом к зашифрованному токену является пароль, который указывается в настройках интеграции. Такой пароль не хранится, он известен только владельцу аккаунта.

Что будет, если кто-то получит доступ в мой личный кабинет Intelinvest?

Можно ли как-то (случайно) совершить сделку у брокера через Intelinvest?

Решил отменить интеграцию, как убрать токен?

Настроенную интеграцию можно отменить в любой момент, зашифрованное значение токена удаляется. Также клиент Тинькофф может сменить токен API в личном кабинете брокера.

Настойка интеграции

Использовал загрузку отчетов брокера, как настроить интеграцию?

Используйте раздел Настройки — Импорт сделок. Выбрав в роли брокера Тинькофф перейдите в настройку интеграции(кнопка Интеграция).
Рекомендуем производить настройку интеграции в пустой портфель, не содержащий других сделок.
Проверка списка сделок по API происходит от последней сделки в портфеле до настоящего момента.

В окне настроек необходимо указать пароль, это пароль аккаунта?

В окне настроек необходимо указать ваш индивидуальный API токен для торговли (инструкция «как получить api токен» находится на странице импорта), и установить пароль (пароль может быть любым, но его необходимо запомнить).

Указал токен, но настройки не сохраняются

Настройка интеграции с API токеном для песочницы не производится.
Ознакомьтесь с подробной инструкцией «Как получить API токен» на странице импорта.

У меня несколько счетов, как настроить интеграцию?

Если у Вас больше 1 счета в Тинькофф, после указания токена и пароля появится поле выбора. Необходимо указать счет (как правило Брокерский или ИИС) по которому будет произведена настройка.
Для интеграции по нескольким счетам используйте отдельные портфели. Добавить портфель можно через Управление портфелями.

Уникальный номер счета в брокере Тинькофф отображается на странице , а также в выгружаемых отчетах брокера.

Добавил новую сделку у брокера, в Intelinvest ее нет. Как обновляются сделки?

Предоставляемый брокером токен API позволяет отправлять торговые поручения, в связи с чем для безопасности использования введено обязательное условие: шифрование токена с помощью пароля, который не хранится в базе и известен только владельцу аккаунта.

Для обновления списка сделок перейдите в Импорт сделок, нажмите «Обновить данные» и укажите пароль для интеграции. Система проверит сделки от последней даты в портфеле до текущего момента и дополнит портфель необходимыми записями.
Через API попадает полный список сделок, даже если они совершены 5 минут назад.

Результаты импорта

Если в результатах импорта есть комментарий «Неверный идентификатор бумаги» напишите почту вашего аккаунта в службу технической поддержки. После проведения проверки данных поступающих от Tinkoff Open API будут внесены корректировки для автоматического распознавания таких бумаг.

Если в вашем портфеле присутствуют еврооблигации, на данный момент сделки с такими бумагами не импортируются. Внести их можно в ручном режиме через «Пользовательские активы«.

РЕПО сделки не были импортированы

РЕПО (брокер может брать часть активов клиента в кредит, предоставляя за это вознаграждение) сделки не импортируются, так как не оказывают значительного влияния на расчеты доходности. На сумму вознаграждения за такие операции автоматически заводится корректировка баланса.

Маржинальная торговля(кредитное плечо)

Сделки маржинальной торговли на данный момент не учитываются. Импорт переносит сделки обычного режима торговли. Внести сделки с кредитным плечом можно через интерфейс ручного ввода в режиме портфеля PRO (Управление портфелями).Когда сделки будут попадать автоматически, без проверки пароля?

Прочие вопросы

Когда сделки будут попадать автоматически, без проверки пароля?

Будут ли интеграции с другими брокерами?

Работа в данном направлении уже проводится. Переговорный процесс занимает много времени, так как большинство брокеров не имеют открытой документации по API.

Будет ли интеграция доступна в мобильном приложении?

Да, основная работа проделана в одном из ближайших обновлений такая возможность будет добавлена и в приложение.


Здравствуйте дорогие хабровчане, в этом посте я покажу, как написать свой биржевой индекс наподобие S&P 500 или Nasdaq.

О том, как мне это пришло в голову можно прочитать в моей предыдущей статье: Как я решил стать трейдером и проигрался, а потом отыгрался, потому, что я программист. Мой опыт. Здесь будет рассмотрена только техническая сторона.

В силу того, что прошлая статья получила большой отклик у хабровчян, я решил сделать техническое описание кода приложения.

Не работаю в Тинькофф и мне не заплатили за рекламу. Конечно, была попытка добавить эту статью в корпоративный блог Тинькова хоть за символическую плату, но не тут то было. Меня просто месяц динамили, а потом сказали, дескать блог только исключительно для сотрудников компании (должно быть это месть за критику службы поддержки в прошлой статье).

В предыдущей статье было описано, как мне удалось рассчитать и использовать индекс чистой стоимости фонда и как я к этому пришёл. Этот индекс был написан на старом api, на тот момент единственном. Из-за этого возникло множество проблем, главная из которых большая задержка в обновлении данных.

Чтобы уменьшить эту задержку (которая в итоге составила 5,5 секунд!), мне пришлось использовать два токена доступа, которые чередовались для каждого запроса. Также я вынужден был выбрать строго ограниченное количество компаний, для которых проводился расчёт. Бутылочным горлышком являлось отсутствие возможности получать данные по нескольким компаниям в одном запросе. Например, чтобы получить текущие цены акций десяти компаний нужно было десять запросов. Если не укладывался в лимит, а количество запросов было ограничено в минуту, api возвращал ошибки на последующие обращения.

Однако, в начале 2022 года тинькофф выкатил новый api, в котором эти проблемы были решены. Теперь можно в одном запросе получать все текущие цены на акции.

Сам микросервис написан на Python 3 и упакован в Docker-контейнер, клиент — на JavaScript, график TradingView. Микросервис и клиент общаются при помощи api реализованном на FastApi.


Шаг 1. Получаю данные из Тинькофф api

У каждой компании, торгующейся на бирже, кроме названия, есть свой тикер. Однако, для того, чтобы получить данные по компании необходимо знать её figi код. Чтобы его получить необходимо сопоставить тикер и figi код. Это происходит в конструкторе класса CustomIndex . В нём скачиваются figi для всех акций и сопоставляются с нужными мне тикерами. Здесь нет ничего сложного.

Метод get_tinkoff_candles получает исторические данные по figi коду. Исходя из ограничений api на интервалах 1, 5 и 15 минут можно получить только один день. Так же было и в старом api. То есть, чем больше исторических данных мне нужно, тем больше нужно запросов (ограничение запросов в минуту никуда не делось). Любопытно было бы узнать, из каких соображений данные ограничили одним днём.

Ну и главное отличие от старого api я с удовольствием использовал в методе get_tinkoff_last_prices . В нём обновляются все последние цены для всех акций за один запрос.

Шаг 2. Микросервис (FastApi)

Через этот микросервис поставляются данные клиенту. Основные параметры для настройки находятся в начале файла.

  • Лист tickets — в нём записаны тикеры компании на основе которых будет рассчитываться индекс. Для примера я взял 5 самых дорогих акций из списка S&P 500.
  • Переменная historical_days — количество исторических дней для загрузки. Если дней будет слишком много, то можно получить ошибки, см. лимитную политику.
  • Функция compute_index — здесь происходит непосредственный расчёт индекса, в моём случае я просто беру среднюю цену всех акций.

В функции historical_candles формируются исторические данные. Для их расчёта группируются все цены каждого тикера, т.е. цены open , high , low и close рассчитываются отдельно друг от друга. На выходе получаются исторические данные рассчитанного индекса.

Функция currient_candle формирует текущую свечку графика и рассчитывает индекс исходя из текущих цен на акции.

Шаг 3. Клиент (TradingView)

Файл index.html совсем простой, содержит в себе переключатель 'radio' для изменения интервала графика 1, 5 и 15 минут, также div контейнер custom_chart для самого графика. Здесь же подключены скрипты TradingView.

В файле index.js функция getHistory получает исторические данные из микросервиса и отображает график. Обновление текущей цены происходит в планировщике вызова setInterval , здесь же обновляются исторические данные, если поменять интервал свечей графика.

Шаг 4. Упаковываем в Docker контейнер

Упакованный в Docker-контейнер микросервис очень удобно использовать и портировать.

Микросервис и клиент общаются между собой через порт 8000 , клиент доступен на localhost:8080


Заключение

Как и было отмечено в предыдущей статье, подобный индекс вполне себе рабочий инструмент. Однако есть несколько недочетов, которые не удалось решить (возможное решение это stream-соединения в тинькофф api):

В начале 2022 команда Тинькофф Инвестиции нас порадовала выпуском долгожданного API v2. Я лично очень его ждал и, знаю, многие у меня на канале Azzrael Code тоже ждали его. Я надеялся что в новом API наконец появится:

  • нормальная Песочница,
  • поддержка Мультисчетов
  • поддержка Стопов

И да! В новом API v2 Тиньков Инвестиции это все есть и много больше. Подробно про все замеченные мной изменения я рассказал в первом обзорном видео:

Важно что новое API v2 скорее всего полностью переписано и работает по интерфейсу gRPC. Соотв. методы работы новые, SDK тоже новый и пока SDK есть только под Python.

Что со старым API v1 Тинькофф Инвестиции

Пока оно работает и все что мы делали раньше также работает (как на Python, так и на PHP). Однако по мере перехода на API v2 поддержка API v1, вероятно, будет прекращена. По срокам сейчас есть только такая полуофициальная информация:

Сроки поддержки API v1 Тинькофф Инвестиции

К счастью для Python уже есть SDK работать с ним не сложно и переезд для питонистов на новое api не должен быть сложным.

Полезные ссылки для API v2 Тинькофф Инвестиции

Важно понимать, что сейчас новое апи в бете. Соотв. многое ещё может поменяться, в т.ч. и в самом API и в SDK. Однако источники информации у меня наметились такие:

  • Все видео про вторую версию API Тинькофф Инвестиции в плейлисте на Azzrael Code
  • Все исходники к видео в репозитории,
  • Официальная документация API v2 Тинькофф Инвестиции здесь, (если работаешь с SDK, то оно не надо),
  • Официальное SDK для Python здесь,
  • Что такое gRPC,
  • Живой неофициальный чатик в Телеграмме (там есть разрабы, много инфы можно найти поиском),
  • Наш чат Инвест Айтишка

Видео Как получить токены по API v2 Тиньков Инвестиции

… а также чем эти токены отличаются друг от друга, как установить SDK для Python, как обрабатывать ошибки и найти их описание в документации к API. Также в этом виде я потестировал несколько основных методов API и работу с ними на Python.

Видео getPortfolio — как получить открытые позиции

Метод getPortfolio позволяет получить информацию по открытым позициям на брокерских счетах в Тинькофф Инвестициях. Все эти купленные нами акции, облигации и фонды. Эта информация нам нужна чтобы посчитать эффективность наших инвестиций, как если бы мы прямо сейчас захотели все распродать и получить на руки деньги. Подробно также я описал этот метод в этом посте.

Как я говорил в видео, на момент съемок API v2 находилось в стадии БЕТА. Т.е. менялось (а возможно меняется и сейчас, когда вы читаете этот текст). Поэтому снятое в видео уже не полностью соответствует действительности. Несколько изменились и классы и методы. Я постарался отразить все изменения на гитхабе.

Видео getCandles — получить свечки акции, облигации или фонда в Тиньков Инвестиции

Метод getCandles — в API v2 Тиньков Инвестиции это unary запрос отдающий нам данные по свечам выбранного инструмента за определенный период, т.е. массив OHLCV данных. Именно на этих данных строится теханализ и часто алготрейдинг. На первый взгляд сам метод не выглядит сложным, однако в его использовании есть несколько нюансов.

Исходники из видео, в репозитории.

Видео getOperations — завершенные и отмененный операции на брокерском счету

Вы давно просили показать как можно покупать ценные бумаги в Тинькофф Инвестициях через API, на Python через SDK. И вот в этом видео есть почти все что нужно:

API Тинькофф Инвестиции. Как начать? Тизер сериала.

На данный момент я снял для канала Azzrael Code 14 видео посвященных работе с API Тиньков Инвестиции . Они раскрывают разные стороны работы с API, каждый ролик идет около получаса и ролики идут не по порядку. Это уйма времени! Я подумал что, возможно, стоит сделать тизер этого сериала, где рассказать что есть в каждом из роликов, в каком порядке их стоит смотреть, а где можно сэкономить время, если тема ролика хоть и связана с Тинькофф Инвестиции, но не очень то вам интересна. Поскакали!

Важно, обновление API Тинькофф Инвестици v.2 от 21 января 2022

Все посты и видео опубликованные ранее касаются версии API v1. В 2022 году вышла версия API Тинькофф Инвестиции v.2 , которая кардинально отличается от первой версии. На данный момент работают обе версии и все старые посты все ещё актуальны. Однако лучше переходить на вторую. В ближайшее время будет новый сериал посвященный API Tinkoff Invest v.2. В первую очередь все будет на канале Azzrael Code. Подписывайтесь!

Полезные ссылки про API Тиньков Инвестиции

Для всех роликов вам пригодятся эти ссылки:

Мои видео по работе с API Тинькофф Инвестиции

Чтобы вы не делали с API первое что вам нужно сделать это получить токен (это такой ключ доступа) и кое что настроить в личном кабинете. Об этом в первом видео

Как получить токен в Тинькофф Инвестиции Open API

Python + Тинькофф Инвестиции Open API — начало, настройка, SDK от @daxartio

В этом же видео будет простой пример работы с API Тиньков Инвестиции, чтобы проверить что все настроено правильно. А дальше я снял два связанных между собой видео про два наиболее интересных метода API — это методы /operations и /portfolio.

Python + Open API Тинькофф Инвестиции — метод /portfolio

Портфолио — метод, который отдает нам список открытых позиций и некоторые метрики по этим позициям, такие как:

  • figi, ticker, isin
  • тип бумаги (акция, облигация, валюта и т.д.)
  • количество
  • ожидаемая прибыль

В видео я показываю как получить и обработать эти показатели чтобы посчитать ожидаемую доходность инвестиций если продать все эти позиции «прямо сейчас». Показываю как работать с методом portfolio с помощью SDK и без него.

Ну а метод /operations API Тиньков Инвестиций показывает нам информацию о совершенных ранее сделках, а также информацию обо всех иных движениях на брокерском счете:

  • пополнение / снятие денег со счета
  • покупке / продаже бумаг и валют
  • поступлениях дохода от купонов и дивидендов
  • списаниях налогов

Об этом методе я снял видео

Python + Open API Тинькофф Инвестиций — operations, получение списка операций на счете

Вообще все это было затеяно для создания собственного отчета об эффективности инвестиций с учетом расходов на комиссии брокера, оплату налогов, в удобной для меня форме. Конечно методов operations и portfolio для такого отчета недостаточно. А кроме того нужно всю эту информацию от API Тинькофф Инвестиций как то обработать и сохранить в удобном для дальнейшего анализа виде. И подходов для реализации задуманного может быть много. Первый и самый простой — сохранить все в Excel, что я сделал в видео:

Python + Open API Тинькофф Инвестиции+ Excel, расчет доходности инвестиций

В этом видео были использованы все необходимые дополнительный методы API (курсы валют, стакан, остатки на счетах и прочее), а также я показал как работать с Excel из Python. Однако Excel это слишком просто, поэтому дальше я снял ещё несколько видео и реализовал отчетность несколькими иными способами:

    . Удобное решение, которым можно пользоваться без установки питона, из любого места на Земле (где есть интернет) и с любого устройства.
  • В видео плагина для WordPress (на PHP соотвественно). Я снял видео Как работает сервис по экспорту из API Тинькофф Инвестиций и показал Как его установить к себе на сайт (исходники выложил на GitHub).

Алготрейдинг с API Тиньков Инвестиции

Однако возможности API не ограничиваются только лишь возможностью создавать отчеты разной степени сложности. С помощью API можно получать котировки по инструментам, а также торговать ими через брокерский счет.

В этом видео я показал как пользоваться Streaming API Тинькофф Инвестиций. Оно нужно чтобы подписываться на котировки и в режиме почти реального времени следить за движениями (например) цены, чтобы затем совершать сделки (уже через Rest API).

Я рассчитывал что для начала мы со зрителями канала Azzrael Code сначала поэкспериментируем с покупками в Песочнице.

Open API Тинькофф Инвестиции + Python, Песочница (Sandbox), регистрация и первые покупки бумаг

В этом видео я рассказал как подготовить Песочницу к экспериментам. Как все настроить (а это нужно сделать) и совершить первые виртуальный сделки. Мне очень нравилась идея Песочницы и был воодушевлен идеей многочисленных запланированных экспериментов….. Однако

API Тиньков Инвестиции + Python, Покупка / продажа бумаг * Боль и Разочарования

Это видео поставило точку (зачеркнуто), многоточие на сериале про API Тинькофф Инвестиции. Почему так — обязательно посмотрите…

На данный момент я закончил Сериал про API Тинькофф Инвестиции. Все что нужно и, на мой взгляд, важно реализовать получилось. Однако нам обещают глубокую переработку API Инвестиций и выпуск второй версии. Обещают довольно давно. Но, если это случиться, то, вероятно, и у меня на канале выйдет второй сезон. Поэтому тинькофф инвестиции случайное

Поступил заказ на интеграцию CRM клиента с банком Тинькофф. Клиент хотел осуществлять платежи по одному клику мыши в своей CRM. На первый взгляд ничего сложного .

Эта инструкция позволит облегчить путь интеграции.

У банка Тинкофф для организаций есть специальное Бизнес API (малоинформативная ссылка) с документацией и песочницей где можно проводить тестовые запросы, так же есть телеграм канал, в котором разработчики пишут об обновлениях и получают обратную связь от пользователей API.

Кстати, за время интеграции клиента Бизнес API успело обновиться и поле executionOrder в запросе платежа более не используется.

Платеж через API со счета на счет

Выпуск токена

Сначала нужно выпустить токен.

Для этого нужно получить право подписи, детали можно просмотреть в профиле сотрудника в разделе Право подписи.

Раздел

Без права подписи можно через API осуществлять платежи, как бы странно это не показалось, и на первый взгляд будет казаться что все нормально, запрос успешно пройдет, будет получен 201 код ответа, в течении некоторого времени статус платежа будет IN_PROGRESS , а потом:

А причина проблемы в отсутсвии права подписи!

В моем случае права подписи не было, и в общем-то не нужно было, потому что я лишь осуществлял интеграцию. Специалист поддержки банка по Бизнес продуктам посоветовал выпускать токен директору (кстати это был один из немногих полезных советов для скорейшего завершения интеграции).

Внимательный читатель задаст вопрос: как мне удалось выпустить токен без права подписи с правом осуещствления платежей пусть и не успешных если на осуществление платежей нужно право подписи?

Да, ситуация мутная, это меня сбило с толку .

С самого начала у меня не было доступа к разделу интеграций, через менеджера и заказчика удалось получить доступ (пожалуй это было единственная быстрая помощь со стороны поддержки клиентов банка).

Нет доступа к интеграциям

При генерации токена также требуется участие менеджера, так как нельзя просто так взять и отметить разрешение на осуществление платежей токену.

Нельзя отметить осуществление платежей в разрешении токена

Выпуск/перевыпуск сертификата

Для некоторых методов (платежи как раз в этой категории) Бизнес API Тинькофф использует Mutual TLS (аутентификацию клиента с использованием ssl) в качестве дополнительной меры безопасности. При этом сертификат выпускается всего-лишь на 1 год.

Если сделать запрос без сертификата то будет такой ответ:

Сначала надо выпустить токен, а затем сертификат - сертификат выпускается для уже существующего токена.

Если сделать наоборот, то при запросе платежа через API будет такой ответ:

Но если все-таки сначала был выпущен сертикат, а затем токен, то необходимо запросить новый сертифкат. Для этого нужно пройти все шаги выпуска сертификата заного, старый request.csr не пройдет, нужен новый.

  • первый раз был отправлен старый request.csr , но в заявлении был указан перевыпуск, на что получил ответ:
  • затем я сгенерировал новый request.csr на что банк ответил:
  • мне пришлось расписать всю ситуацию в деталях, после чего банк выслал новый сертифкат

Код осуществления платежа

Это была самая простая часть интеграции :)

Формируем тело в соответствовании с требованиями документации, в названии платежа обязательно нужно указать информацию НДС:

Теперь используя сертификат и приватный ключ отправляем запрос через curl :

В случае успеха код ответа будет 201 .

Лимиты

  • максимальная сумма одного платежа - 100 000 рублей
  • максимальная сумма платежей в день - 100 000 рублей
  • максимальная сумма платежей в месяц - 1 000 000 рублей
  • максимальное количество платежей в день на одного контрагента – 3

Изначально сервер банка ответит 201 - поставлено в очередь, но потом может вылезти стена лимитв . чтобы этого не произошло

API для перевода с карты на карту

Нет, метода перевода с карты на карту нет. Только с расчетного счета на карты Тинькофф, либо через СБП.

Попытка узнать про переводы с карты на карту через API

Резюме

Нет исчерпывающего руководства для интеграции. В документации Бизнес API не хватает краткой инструкции по токенам и последовательного согласования с сертификатом.

Автор статьи

Куприянов Денис Юрьевич

Куприянов Денис Юрьевич

Юрист частного права

Страница автора

Читайте также: