English | Русский | Українська | Srpski | Српски
Использование
Настройка (config)
ibkr-porez config
Создание или изменение личных данных и настроек доступа к IBKR.
Вам будет предложено ввести:
- IBKR Flex Token: Получение токена ↗
- IBKR Query ID: Создание Flex Query ↗
- Personal ID: JMBG / EBS
- Full Name: Имя и Фамилия
- Address: Адрес регистрации
- City Code: 3-значный код муниципалитета. Пример:
223(Нови Сад). Код можно найти в справочнике (смотрите колонку “Шифра”). Также код доступен в выпадающем списке на портале ePorezi. - Phone: Телефон
- Email: Email
- Data Directory: Абсолютный путь к папке с файлами данных (
transactions.json,declarations.json,rates.jsonи т.д.). По умолчанию:ibkr-porez-dataв папке приложения. - Output Folder: Абсолютный путь к папке для сохранения файлов из команд
sync,export,export-flex,report. По умолчанию: папка Downloads вашей системы.
Получение данных (fetch)
ibkr-porez fetch
Загружает последние данные из IBKR и синхронизирует курсы валют с НБС (Национальный банк Сербии).
Сохраняет их в локальное хранилище.
Импорт исторических данных (import)
ibkr-porez import /path/to/activity_statement.csv
Загрузка истории транзакций старше 365 дней, которые невозможно получить через Flex Query (fetch).
Чтобы создать файл с транзакциями на портале Interactive Brokers смотрите Экспорт всей истории ↗
⚠️ Не забудьте после
importвыполнитьfetchчтобы приложение добавило максимум деталей хотя бы за последний год в менее подробные данные загруженные из CSV.
Логика синхронизации (import + fetch)
При загрузке данных из CSV (import) и Flex Query (fetch) система отдает приоритет более полным данным Flex Query:
- Данные Flex Query (
fetch) являются источником правды. Они перезаписывают данные CSV за любые совпадающие даты. - Если запись Flex Query совпадает с CSV по смыслу (Дата, Тикер, Цена, Количество), это считается обновлением (заменой на официальный ID).
- Если структура данных отличается (например, сплит ордеров в Flex Query против “склеенной” записи в CSV), старая запись CSV удаляется, а новые записи Flex Query добавляются.
- Полностью идентичные записи пропускаются.
Синхронизация данных и создание деклараций (sync)
ibkr-porez sync
Делает все то же, что и fetch:
- Загружает последние транзакции из IBKR через Flex Query
- Синхронизирует курсы валют с НБС
После чего создает все необходимые декларации за последние 45 дней (если они уже не были созданы).
Далее вы можете Управлять созданными декларациями.
💡 Если вы запустили
syncв первый раз и она создала декларации которые вы уже подали до начала использования приложения вы можете быстро пометить их все как оплаченные и убрать из выдачи list:ibkr-porez list --status submitted -1 | ibkr-porez pay
Просмотр статистики (stat)
ibkr-porez stat --year 2025
ibkr-porez stat --ticker AAPL
ibkr-porez stat --month 2025-01
Показывает:
- Полученные дивиденды (в RSD)
- Количество продаж (налогооблагаемых событий)
- Оценку реализованного P/L (Капитальный доход) (в RSD)
- Детальную разбивку по тикерам или месяцам (при использовании фильтров)
Генерация налогового отчета (report)
ibkr-porez report
Если не указать тип отчета и период то по умоланию генерируется ППДГ-3Р за последнее полное полугодие
- Создаст
ppdg3r_XXXX_HY.xmlв Output Folder - Импортируйте этот файл на портал Налоговой администрации Сербии (ePorezi)
- Вручную загрузите в пункт 8 файл с Документ подтверждения
Как выбрать другой тип декларации или период времени смотрите в документации
ibkr-porez report --help
Управление декларациями
После создания деклараций через команду sync вы можете просматривать их, изменять статус и экспортировать для загрузки на налоговый портал.
Список деклараций (list)
Показывает список всех деклараций с возможностью фильтрации по статусу.
# Показать активные декларации (по умолчанию):
# draft + submitted + pending
ibkr-porez list
# Показать все декларации
ibkr-porez list --all
# Фильтр по статусу
ibkr-porez list --status draft
ibkr-porez list --status submitted
ibkr-porez list --status pending
ibkr-porez list --status finalized
# Только ID деклараций (для использования в пайпах)
ibkr-porez list --ids-only
ibkr-porez list --status draft -1
Пример использования в linux-стиле:
# Отправить все черновики
ibkr-porez list --status draft -1 | ibkr-porez submit
Просмотр деталей декларации (show)
Показывает подробную информацию о конкретной декларации.
ibkr-porez show <declaration_id>
Отображает:
- Тип декларации (PPDG-3R или PP OPO)
- Период декларации
- Статус (черновик, отправлена, ожидает решения, завершена)
- Детали транзакций и расчетов
- Прикрепленные файлы
Подача декларации (submit)
ibkr-porez submit <id> [<id> ...]
Отмечает декларацию как поданную (импортированную на налоговый портал).
Поведение зависит от типа декларации:
PPDG-3Rпослеsubmitпереходит в статусpending(ожидание решения налоговой по сумме налога).PP OPOпослеsubmit:- переходит в
submitted, если есть налог к уплате; - сразу переходит в
finalized, если налог к уплате0.
- переходит в
Оплата декларации (pay)
ibkr-porez pay <id> [<id> ...]
ibkr-porez pay <id> --tax 1234.56
Отмечает декларацию как завершенную (finalized) и сохраняет дату оплаты.
Опция --tax позволяет сразу зафиксировать сумму налога при оплате, без отдельного шага assess.
После этого декларация исчезнет из списка показываемого list (без --all)
Фиксация суммы по решению налоговой (assess)
# Записать сумму налога по решению
ibkr-porez assess <declaration_id> --tax-due 1234.56
# Записать сумму и сразу отметить как уже оплаченную
ibkr-porez assess <declaration_id> --tax-due 1234.56 --paid
Команда нужна в первую очередь для PPDG-3R, где сумма налога определяется налоговой после подачи декларации.
Что делает команда:
- записывает официальную сумму налога в метаданные декларации;
- при
--paidсразу переводит декларацию вfinalized; - без
--paid:- если сумма больше нуля, оставляет декларацию активной (
submitted) для последующей оплаты; - если сумма равна нулю, переводит декларацию в
finalized.
- если сумма больше нуля, оставляет декларацию активной (
Экспорт декларации (export)
ibkr-porez export <declaration_id>
ibkr-porez export <declaration_id> -o /path/to/output
Копирует XML и все прикрепленные файлы (attach) в Output Folder или в указанный в параметрах каталог.
Откат статуса декларации (revert)
# Откатить к черновику (по умолчанию)
ibkr-porez revert <id> [<id> ...]
# Откатить к отправленной
ibkr-porez revert <id> [<id> ...] --to submitted
Откатывает статус декларации.
Прикрепление файла к декларации (attach)
# Прикрепить файл
ibkr-porez attach <declaration_id> /path/to/file.pdf
# Удалить прикрепленный файл
ibkr-porez attach <declaration_id> <file_id> --delete
ibkr-porez attach <declaration_id> --delete --file-id <file_id>
Прикрепляет файл к декларации или удаляет прикрепленный файл из хранилища деклараций.
Для сохранения в хранилище деклараций используется только имя файла (путь отбрасывается), поэтому имена должны быть уникальные - иначе файл с тем же именем перезатрет ранее загруженный с таким же именем пусть и из другого пути
💡 Прикрепленные файлы копируются как и XML декаларации при экспорте (export)
Экспорт Flex Query (export-flex)
ibkr-porez export-flex 2025-01-15
ibkr-porez export-flex 2025-01-15 -o /path/to/output.xml
ibkr-porez export-flex 2025-01-15 -o - # Вывод в stdout (для пайпов)
Экспортирует XML файл Flex Query полученный при fetch или sync в указанную дату.
Пример использования в linux-стиле:
ibkr-porez export-flex 2025-01-15 | ibkr-porez import