English | Русский | Українська | Srpski | Српски
Брзи старт
Аутоматизовано генерисање пореске пријаве ППДГ-3Р (порез на капиталну добит) и ПП ОПО (порез на приходе од капитала) за кориснике Interactive Brokers у Србији. Програм аутоматски преузима податке о трансакцијама и креира готов XML фајл за отпремање, конвертујући све цене у динаре (РСД).
Ако користите графички интерфејс, подесите своје податке (дугме Config) и за освежавање података и креирање пријава само користите дугме Sync.
Ако сте инсталирали GUI + CLI, можете користити и графички интерфејс (покреће се као ibkr-porez без параметара) и командну линију, види испод.
Графички интерфејс и командна линија користе исту базу података.
⚠️ Док је графички интерфејс покренут, не користите командну линију, јер истовремени рад може изазвати грешке у бази података.
Ако желите све да радите кроз командну линију, наставите са:
⚠️ Увоз је потребан само ако имате више од годину дана историје трансакција у Interactive Brokers. Flex Query омогућава преузимање података за највише последњу годину, па старији подаци морају бити учитани из пуног извоза у CSV фајл ↗.
Брзо креирати потребну пријаву
Ако желите брзо да креирате конкретну пријаву.
Преузимање најновијих података (fetch) ↗
Отпремите креирани XML на портал еПорези (секција ППДГ-3Р).

Аутоматско креирање пријава
Ако желите аутоматски да добијате све потребне пријаве и пратите њихов статус (поднета, плаћена).
Преузимање најновијих података и креирање пријава (sync) ↗
English | Русский | Українська | Srpski | Српски
Инсталација
Инсталатер (GUI + CLI)
Преузмите готов инсталатер са странице издања:
https://github.com/andgineer/ibkr-porez/releases
Инсталатер укључује графичку апликацију (GUI) и команду ibkr-porez за терминал (CLI).
macOS
Преузмите најновији .pkg фајл.
Пошто инсталатер није потписан Apple сертификатом, macOS ће га блокирати при отварању.
“IBKR Porez” је оштећен и не може да се отвори. Треба га преместити у смеће.
Не премештајте у смеће. Уместо тога:
- Отворите System Settings → Privacy & Security
- При дну одељка Security појавиће се порука о блокираној апликацији — кликните Open Anyway
- У следећем дијалогу потврдите отварање
Можда ће бити потребно да ове кораке поновите два пута:
- прво при отварању преузетог инсталатера (
.dmg) - а затим при првом покретању инсталиране апликације из
/Applications
Након тога апликација би требало да се покреће без упозорења.
Windows
Преузмите најновији .msi фајл.
Пошто инсталатер није дигитално потписан, Windows може приказати безбедносна упозорења.
Ако прегледач блокира преузимање (на пример у Microsoft Edge):
- Отворите панел преузимања у прегледачу (
Ctrl+J) - Пронађите блокирано
.msiпреузимање - Кликните Keep → Show more → Keep anyway
При покретању инсталатера, Windows може приказати поруку Windows protected your PC:
- Кликните More info
- Кликните 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
- Performance & Reports > Flex Queries.
- Кликните на икону Settings (зупчаник) у “Flex Web Service Configuration”.
- Омогућите Flex Web Service.
- Генеришите Token.
- Важно: Одмах копирајте овај токен. Нећете моћи поново да га видите у целости.
- Поставите рок трајања (препоручено max - 1 година).
Flex Query
- Performance & Reports > Flex Queries.
- Кликните + да креирате нови Activity Flex Query.
- Name: нпр.
ibkr-porez-data. - Delivery Configuration (на дну странице):
- Period: Изаберите Last 365 Calendar Days.
- Format: XML.
Секције за укључивање (Sections):
Омогућите следеће секције и означите Select All (Изабери све) за колоне.
Ако никоме не верујете 8-) уместо Select All изаберите бар поља наведена у Обавезне колоне.
Trades - Трансакције
Налази се под Trade Confirmations или Activity.
Обавезне колоне
SymbolDescriptionCurrencyQuantityTradePriceTradeDateTradeIDOrigTradeDateOrigTradePriceAssetClassBuy/Sell
Cash Transactions - Новчане трансакције
Обавезне колоне
TypeAmountCurrencyDateTime/DateSymbolDescriptionTransactionID
Сачувајте и преузмите Query ID
Забележите Query ID (број који се обично појављује поред имена упита у листи).
Требаће вам Token и Query ID за конфигурацију ibkr-porez.
Документ потврде
За Тачку 8 (Докази уз пријаву) пореске пријаве ППДГ-3Р потребан вам је PDF извештај од брокера. Мора се ручно приложити на порталу еПорези након увоза XML-а.
Како преузети одговарајући извештај:
- У IBKR идите на Performance & Reports > Statements > Activity Statement.
- Period: Изаберите Custom Date Range.
- Наведите датуме који одговарају вашем пореском периоду (нпр.
01-01-2024до30-06-2024за прво полугодиште). - Кликните Download PDF.
- На порталу еПорези, у секцији 8. Докази уз пријаву, отпремите овај фајл.
Извоз пуне историје (за import команду)
Ако треба да учитате историју трансакција за период дужи од 1 године (недоступно преко Flex Web Service-а), извезите податке у CSV:
- У IBKR идите на Performance & Reports > Statements > Activity Statement.
- Period: Изаберите Custom Date Range и наведите цео период од отварања рачуна.
- Кликните Download CSV.
- Овај фајл се може користити са командом import ↗.