Блог им. airens

Отчитываемся перед налоговой по доходам Interactive Brokers за 5 минут

Все мы знаем, что зарубежные брокеры не являются налоговыми агентами в РФ, соответственно, отчитываться по доходам и платить налоги с них мы должны самостоятельно. Вопрос отчитываться или нет у меня не стоял, поэтому, чтобы не тратить каждый год уйму времени на достаточно трудоемкие расчеты, я написал скрипт, который берет отчеты Interactive Brokers и формирует на основе них пояснительную записку со всеми пояснениями и расчетами для налоговой. Вам останется только приложить этот файл к декларации 3-НДФЛ, а в нее саму внести лишь два пункта (см. ниже).

Ограничения по применению

Поскольку я занимаюсь долгосрочными инвестициями, я не использую такие инструменты, как фьючерсы, опционы, а также никогда не использую плечо и сделки SHORT. В связи с этим, такие операции скриптом не поддерживаются. Если у кого-то есть желание — могут дописать сами.

Подготовка к использованию
  • Установите Python 3+
  • Скачайте архив со скриптом отсюда и распакуйте его в произвольную папку на компьютере
  • Скачайте годовые отчеты из личного кабинета брокера в формате .csv (необходимы за все года для корректного расчета сделок продажи), переименуйте их в {год отчета}.csv (например «2018.csv») и положите в папку со скриптом
  • Исправьте дату открытия счета в скрипте ib.py на свою (строка StartDate = «20.03.2019»)
  • Выполните установку необходимых пакетов Python при помощи команды в консоли, запущенной от имени администратора:
pip install -r requirements.txt
Использование
  • Запустите скрипт командой в консоли:
python ib.py
  • По запросу, введите первый год, на который есть отчет (например «2018»)
  • Дождитесь появления надписи «Готово» и нажмите Enter. Скрипт должен сформировать вашу пояснительную записку в формате .docx и открыть его
  • Повторите п.2-3 для всех годов (нужно делать только в первый раз, дальше — только подотчетный год)
  • Внесите в раздел Доходы за пределами РФ декларации 3-НДФЛ следующие доходы в рублях(!!!) с датой 31 декабря подотчетного года:
Источник выплат — «Interactive Brokers (дивиденды)». Полученный доход и Налог, уплаченный в иностранном государстве — {ваши суммы из пояснительной записки}
Источник выплат — «Interactive Brokers (операции с ЦБ)». Полученный доход и Сумма вычета (расхода) в рублях (код вычета — 201) — {ваши суммы из пояснительной записки}
Дополнительная информация

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

★119 | ₽ 201
39 комментариев
ЗакрепитьКомментарий закреплен пользователем Валерий Чистяков
P.S> Налоговая, сформированную при помощи данного скрипта декларацию, приняла и полностью утвердила все расчеты. Единственное, имейте ввиду, что некоторые неопытные сотрудники могут не понять, почему у вас все доходы от зарубежного брокера (которые были получены в валюте), указаны в декларации одной-тремя строками в рублях. В этом случае нужно просто объяснить налоговику, что все расчеты представлены в пояснительной записке, а в декларации так указано для того, чтобы эта самая декларация не вышла размером с Войну и мир, а вам не пришлось через сайт или программу вбивать несколько сотен операций.
P.P.S> Просьба со всеми вопросами\проблемами\предложениями обращаться ко мне через GitHub (через Issues, например), т.к. сюда я захожу крайне редко.
полезная вещь! благодарю
Спасибо за информацию!
avatar
Вы святой
И это всё бесплатно!!!
Почему именно 31 декабря?
avatar
John Smith, последний день в году. По большей части — дата не важна, я думаю. Для инспектора важнее содержимое записки
Валерий Чистяков, У инспектора не возникнет вопрос: почему все дивиденды в один день?
avatar
John Smith, для того, чтобы у инспектора не возникло вопросов и нужна Пояснительная записка
А опционы поддерживаются?
avatar
Павел Ку, если сделки по ним отображаются в том же разделе отчета, что и с акциями — да. 
Валерий Чистяков, попробую на выходных. Я ваял на PowerGrep + Excel. И раздел там другой у опционов и не совсем тривиальная система расчетов. Если опцион купил-продал, то тут все понятно. А вот если он исполнился, то прибыли нет, зато меняется цена сделки с бумагой связанно.

Огромное спасибо!
avatar
Павел Ку, если допилите под опционы — просьба поделиться либо тут, либо на Github. Я в них ничего не понимаю, а кому-то может пригодиться.
Такое невозможно не плюсануть. Даже если не пользуешься IB
avatar
Большое человеческое спасибо.
avatar
Большое спасибо

avatar
Спасибо большое!
А если убытки за год на аккаунте в IB, их надо как-то документировать?
avatar
ebanuha, да, они будут в пояснительной записке и лучше их также внести в декларацию. В течение 10 лет можно будет их зачесть и снизить налогооблагаемую базу
Валерий Чистяков, спасибо за ответ! Вы святой человек
avatar
Спасибо. Попробую. Хоть мне и не нужно — только по дивам отчитываюсь. Но записку я каждый год прикладываю
avatar
reglament, ребаланс портфеля не делаете? Да и по дивам у меня тоже таблица строк на 30 получилась, считать небыстро, учитывая валютную переоценку.
Валерий Чистяков, ребаланс нет, не делаю. а дивы одной суммой пишу в 3-ндфл
avatar
Спасибо большое!
avatar
Коллеги, помогите чайнику, не могу победить. Что то не так с синтаксисом.


Спасибо
avatar
я сделал это непосредственно из командной строки запущенной с правами админа а не из piton(a) В командной строке перейти в директорию interactive_brokers_tax-master и потом ввести команду pip install -r requirements.txt
Затем в IDLE piton(a) открыть исходник и откорректировать дату открытия счета, сохранить.
Запустить скрипт просто двойным кликом мышки предварительно положив туда же файлы yyyy.csv, все файлы по годам с момента открытия счета.

Проблема правда и у меня есть — файлы формирует но сводная записка не формируется и выходит по ошибке, причем в разные годы и места ошибок разные
Так понимаю что проблема в формате исходных отчетов
Соответственно вопрос автору — Какой тип отчета использовать Activity MTM Summery?



Автору спасибо, большой и полезный труд для сообщества!

Сергей, спасибо, но не идет почему то

В командной строке перейти в директорию interactive_brokers_tax-master и потом ввести команду pip install -r requirements.txt



avatar
Андрей,  Командная строка запущена от имени админа?
проверте в каталоге \AppData\Local\Programs\Python\Python38\Scripts наличие файла pip.exe
и в командной строке введите команду pip она должна вывести список доступных команд


Если выведет то должно работать и это (у меня уже установлено о чем и пишет)




   
Сергей, что то я туплю, эффект пятницы наверное, не получается. cmd.exe от админа, что то делаю не так


avatar
Андрей, вопрос, который вы задаете, не имеет никакого отношения к скрипту и данному топику. Вы просто недоустановили Python. Введите ошибку, которую вам выдает командная строка в Гугл и по первой же ссылке найдете ответ.
Андрей, я же написал проверьте установку pip
Установка Python
либо его нет либо неверно установили Python поскольку в последних версиях он уже в пакете


Сергей, это IB чудит. У вас в отчете по какой-то причине разное количество строк в таблице с дивидендами и налогами по ним. Скрипт не может понять поэтому, какая строка какой соответствует. Можете мне послать свой отчет, на котором отваливается, в ЛС (только измените в файле Имя\Фамилию, если хотите), попробую что-то придумать.
Валерий Чистяков, понял что проблема в несоответствии заголовков столбцов. Спасибо за предложение, скинуть отчеты в лс рейтинг не позволяет Свои топики не пишу :) Если не сложно скиньте мне почту.
Сергей, проблема была не в заголовках, а в том, что не всегда раздел Дивиденды в отчете присутствует. Это исправил. Также вы используете операции SHORT, а они скриптом не поддерживаются.
Отличное начинание! Однозначно лайк и подписка :-)
Есть предложение:
1. Дополнить инструкцию: «Отчеты должны быть только на англ. языке (русский не работает при создании файлов в директории получается не корректная имя файла).
2. Доработать макет пояснительной записки (убрать ошибки и включить опись документов предоставляемых в налоговую).
3. Доработать программу для других секций (например, налоги с процентов от пользования деньгами и акциями)
4. Нужно больше отзывов по тому как отреагировала налоговая.
5. Готов оказать содействие проекту (могу программировать на Питоне).
6. Автор, как связаться с Вами оставьте координаты.
7. Большое спасибо!


 
avatar
Спасибо! Супер! Но ...)) А если не задекларирую? Как это можно отследить? По переводам из банка РФ зарубежному брокеру? Банки дают эти сведения в ИФНС? Кто что делает? Лишний раз не хочу светить в налоговой. В том числе по вопросу ниже.
При разводе, например, счет в IB реально в массу раздела включить?
И при банкротстве (все случается, мало ли) в конкурсную массу брокерский счет в IB реально управляющему включить? В IB вроде только юрисдикции международного суда? Решение суда в РФ нет же шансов квалифицировать как международное? 
Сталкивался кто-то? Спасибо!
avatar

привет.

Отличная программа. Заодно и Питон узнал


Что то не так с форматом отчетов.
Получаю ошибку:
Разделение отчета на разделы...
Чтение разделов отчета...
--ibdata\2018_Trades.csv
Traceback (most recent call last):
File «ib.py», line 195, in
trades, comissions, div, div_tax, div_accurals, usd = load_data()
File «ib.py», line 156, in load_data
trades = trades[trades.fee < 0]
File «C:\Users\avsenev\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pandas\core\generic.py», line 5274, in getattr
return object.getattribute(self, name)
AttributeError: 'DataFrame' object has no attribute 'fee'

avatar
Petya Katin, подождите. Автор дорабатывает по мере возможностей. Сообщите у Вас были торговые операции с ценными бумагами?
 
avatar
Огромное спасибо за скрипт! Очень помог в расчетах, есть на что опереться и себя дополнительно проверить! Но при заполнении декларации через сайт nalog.ru или через программу «Декларация» в разделе «Доходы» требуется заполнить обязательное поле «Сумма дохода в валюте*». После этого «Сумма дохода в рублях по курсу ЦБ» рассчитывается автоматически и не совпадает с суммой дохода полученного при расчетах скриптом в пояснительной записке. При этом сумму дохода в рублях нельзя править руками.




То же самое при заполнении раздела «Сведения о налоге, уплаченном в иностранном государстве», требуется ввести «Сумма налога в иностранной валюте*» и «Сумма налога в рублях по курсу ЦБ» считается автоматом и править ее нельзя…




Вопрос как внести в декларацию точные данные из сформированной пояснительной записки?
avatar

теги блога Валерий Чистяков

....все тэги



UPDONW