Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English | Русский | Українська | Srpski | Српски

Брзи старт

Аутоматизовано генерисање пореске пријаве ППДГ-3Р (порез на капиталну добит) и ПП ОПО (порез на приходе од капитала) за кориснике Interactive Brokers у Србији. Програм аутоматски преузима податке о трансакцијама и креира готов XML фајл за отпремање, конвертујући све цене у динаре (РСД).

Инсталирајте ibkr-porez ↗

Ако користите графички интерфејс, подесите своје податке (дугме Config) и за освежавање података и креирање пријава само користите дугме Sync.

Ако сте инсталирали GUI + CLI, можете користити и графички интерфејс (покреће се као ibkr-porez без параметара) и командну линију, види испод.

Графички интерфејс и командна линија користе исту базу података.

⚠️ Док је графички интерфејс покренут, не користите командну линију, јер истовремени рад може изазвати грешке у бази података.

Ако желите све да радите кроз командну линију, наставите са:

⚠️ Увоз је потребан само ако имате више од годину дана историје трансакција у Interactive Brokers. Flex Query омогућава преузимање података за највише последњу годину, па старији подаци морају бити учитани из пуног извоза у CSV фајл ↗.

Брзо креирати потребну пријаву

Ако желите брзо да креирате конкретну пријаву.

Преузимање најновијих података (fetch) ↗

Креирање извештаја (report) ↗

Отпремите креирани XML на портал еПорези (секција ППДГ-3Р).

ППДГ-3Р

Аутоматско креирање пријава

Ако желите аутоматски да добијате све потребне пријаве и пратите њихов статус (поднета, плаћена).

Преузимање најновијих података и креирање пријава (sync) ↗

Управљање пријавама ↗

English | Русский | Українська | Srpski | Српски

Инсталација

Инсталатер (GUI + CLI)

Преузмите готов инсталатер са странице издања:

https://github.com/andgineer/ibkr-porez/releases

Инсталатер укључује графичку апликацију (GUI) и команду ibkr-porez за терминал (CLI).

macOS

Преузмите најновији .pkg фајл. Пошто инсталатер није потписан Apple сертификатом, macOS ће га блокирати при отварању.

“IBKR Porez” је оштећен и не може да се отвори. Треба га преместити у смеће.

Не премештајте у смеће. Уместо тога:

  1. Отворите System Settings → Privacy & Security
  2. При дну одељка Security појавиће се порука о блокираној апликацији — кликните Open Anyway
  3. У следећем дијалогу потврдите отварање

Можда ће бити потребно да ове кораке поновите два пута:

  • прво при отварању преузетог инсталатера (.dmg)
  • а затим при првом покретању инсталиране апликације из /Applications

Након тога апликација би требало да се покреће без упозорења.

Windows

Преузмите најновији .msi фајл. Пошто инсталатер није дигитално потписан, Windows може приказати безбедносна упозорења.

Ако прегледач блокира преузимање (на пример у Microsoft Edge):

  1. Отворите панел преузимања у прегледачу (Ctrl+J)
  2. Пронађите блокирано .msi преузимање
  3. Кликните KeepShow moreKeep anyway

При покретању инсталатера, Windows може приказати поруку Windows protected your PC:

  1. Кликните More info
  2. Кликните Run anyway

Може се појавити и User Account Control дијалог са поруком Unknown publisher. Ако је фајл преузет са званичне странице издања, кликните Yes за наставак.

Након инсталације:

  • IBKR Porez ће се појавити у Start менију
  • Команда ibkr-porez биће доступна у терминалу (можда ће бити потребно поново покренути терминал)

Преузимање готовог бинарног фајла

Такође можете преузети бинарне фајлове за вашу платформу са странице издања:

https://github.com/andgineer/ibkr-porez/releases

Архива садржи оба бинарна фајла: ibkr-porez (CLI) и ibkr-porez-gui (GUI). Распакујте архиву и ставите фајлове негде у ваш PATH.

Инсталација из изворног кода

Ако имате инсталиран Rust:

cargo install ibkr-porez

English | Русский | Українська | Srpski | Српски

Употреба

Конфигурација (config)

ibkr-porez config

Креирање или измена личних података и подешавања приступа IBKR-у.

Биће вам затражено:

  • IBKR Flex Token: Преузимање токена ↗
  • IBKR Query ID: Креирање Flex Query-а ↗
  • Personal ID: ЈМБГ / ЕБС
  • Full Name: Име и Презиме
  • Address: Адреса пребивалишта
  • City Code: Троцифрени код општине. Пример: 223 (Нови Сад). Код можете наћи у шифарнику (видети колону “Шифра”). Такође доступан у падајућем менију на порталу еПорези.
  • 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 погледајте Извоз пуне историје ↗

⚠️ Не заборавите да покренете fetch након import како би апликација додала максимум детаља бар за последњу годину у мање детаљне податке учитане из 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

Приказује:

  • Примљене дивиденде (у РСД)
  • Број продаја (порески догађаји)
  • Процену реализованог P/L (Капитална добит) (у РСД)
  • Детаљну поделу по тикерима или месецима (при коришћењу филтера)

Генерисање пореског извештаја (report)

ibkr-porez report

Ако не наведете тип извештаја и период, подразумевано се генерише ППДГ-3Р за последње пуно полугодиште

  • Креира ppdg3r_XXXX_HY.xml у Output Folder
  • Увезите овај фајл на портал Пореске управе Србије (еПорези)
  • Ручно отпремите фајл из Документ потврде у Тачку 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>

Приказује:

  • Тип пријаве (ППДГ-3Р или ПП ОПО)
  • Период пријаве
  • Статус (нацрт, поднета, на чекању, завршена)
  • Детаље трансакција и прорачуна
  • Приложене фајлове

Подношење пријаве (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

English | Русский | Українська | Srpski | Српски

Interactive Brokers (IBKR)

Flex Web Service

  1. Performance & Reports > Flex Queries.
  2. Кликните на икону Settings (зупчаник) у “Flex Web Service Configuration”.
  3. Омогућите Flex Web Service.
  4. Генеришите Token.
    • Важно: Одмах копирајте овај токен. Нећете моћи поново да га видите у целости.
    • Поставите рок трајања (препоручено max - 1 година).

Flex Query

  1. Performance & Reports > Flex Queries.
  2. Кликните + да креирате нови Activity Flex Query.
  3. Name: нпр. ibkr-porez-data.
  4. Delivery Configuration (на дну странице):
    • Period: Изаберите Last 365 Calendar Days.
  5. Format: XML.

Секције за укључивање (Sections):

Омогућите следеће секције и означите Select All (Изабери све) за колоне.

Ако никоме не верујете 8-) уместо Select All изаберите бар поља наведена у Обавезне колоне.

Trades - Трансакције

Налази се под Trade Confirmations или Activity.

Обавезне колоне
  • Symbol
  • Description
  • Currency
  • Quantity
  • TradePrice
  • TradeDate
  • TradeID
  • OrigTradeDate
  • OrigTradePrice
  • AssetClass
  • Buy/Sell

Cash Transactions - Новчане трансакције

Обавезне колоне
  • Type
  • Amount
  • Currency
  • DateTime / Date
  • Symbol
  • Description
  • TransactionID

Сачувајте и преузмите Query ID

Забележите Query ID (број који се обично појављује поред имена упита у листи).

Требаће вам Token и Query ID за конфигурацију ibkr-porez.

Документ потврде

За Тачку 8 (Докази уз пријаву) пореске пријаве ППДГ-3Р потребан вам је PDF извештај од брокера. Мора се ручно приложити на порталу еПорези након увоза XML-а.

Како преузети одговарајући извештај:

  1. У IBKR идите на Performance & Reports > Statements > Activity Statement.
  2. Period: Изаберите Custom Date Range.
  3. Наведите датуме који одговарају вашем пореском периоду (нпр. 01-01-2024 до 30-06-2024 за прво полугодиште).
  4. Кликните Download PDF.
  5. На порталу еПорези, у секцији 8. Докази уз пријаву, отпремите овај фајл.

Извоз пуне историје (за import команду)

Ако треба да учитате историју трансакција за период дужи од 1 године (недоступно преко Flex Web Service-а), извезите податке у CSV:

  1. У IBKR идите на Performance & Reports > Statements > Activity Statement.
  2. Period: Изаберите Custom Date Range и наведите цео период од отварања рачуна.
  3. Кликните Download CSV.
  4. Овај фајл се може користити са командом import ↗.