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 | Српски

Употреба

Брзи старт

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

  1. Подесите податке (config) ↗ — jednom pri prvom pokretanju
  2. Преузмите најновије податке (fetch) ↗
  3. Креирајте извештај (report) ↗
  4. Отпремите креирани XML на портал еПорези (секција ППДГ-3Р)

За аутоматско добијање свих пријава и праћење њихових статуса — користите sync уместо корака 2–3.


Конфигурација (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 дана (ако већ нису креиране).

💡 Ако веза са IBKR-ом не успе, sync и даље креира пријаве из већ локално сачуваних трансакција и исписује упозорење; команда се завршава успешно, а у GUI-ју се поновни покушаји за свежим подацима настављају аутоматски у следећем циклусу.

Затим можете Управљати креираним пријавама.

💡 Ако сте покренули sync први пут и она је креирала пријаве које сте већ подали пре почетка коришћења апликације, можете брзо да их све означите као плаћене и уклоните из излаза list:

ibkr-porez list --status submitted -1 | ibkr-porez pay

Синхронизација из преузетог XML фајла (sync --file)

Ако IBKR API привремено није доступан, можете ручно преузети Flex Query XML са IBKR сајта и користити га:

ibkr-porez sync --file /path/to/report.xml

Ради све исто што и sync — чува трансакције, креира све потребне пријаве — али чита податке из локалног фајла уместо позивања IBKR API-ја.

Погледајте како преузети Flex Query XML ↗.

У GUI-у, иста опција доступна је у менију као Sync from Flex Query XML….

Приказ статистике (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Р или ПП ОПО)
  • Период пријаве
  • Статус (нацрт, поднета, на чекању, завршена)
  • Детаље трансакција и прорачуна
  • За PPDG-3R: добитак/губитак признат од стране пореске управе поред израчунатих вредности, искоришћени пренос капиталних губитака (почетно/ искоришћено/кориговано/крајње стање) и из којих “транши” је искоришћен
  • Приложене фајлове

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

# Забележи износ и одмах означи као већ плаћено
ibkr-porez assess <declaration_id> --tax 1234.56 --paid

# Забележи губитак признат од стране пореске управе (само за PPDG-3R)
ibkr-porez assess <declaration_id> --loss 50000.00 \
    --reference "RES-123/2025" --date 2025-09-01

# Забележи добитак признат од стране пореске управе (само за PPDG-3R)
ibkr-porez assess <declaration_id> --gain 12000.00

Команда је најважнија за PPDG-3R, где износ пореза, као и признати капитални добитак/губитак, одређује пореска управа након подношења пријаве.

Шта команда ради:

  • уписује званичан износ пореза у метаподатке пријаве (--tax);
  • са --paid одмах пребацује пријаву у finalized;
  • без --paid:
    • ако је износ већи од нуле, пријава остаје активна (submitted) за накнадно плаћање;
    • ако је износ нула, пријава прелази у finalized.

Мора бити наведена бар једна од опција: --tax, --gain, --loss.

--gain и --loss су доступни само за PPDG-3R и уписују капитални добитак/губитак признат од стране пореске управе — чувају се поред израчунатих вредности апликације и могу се разликовати од њих (због CPI корекција или методологије пореске управе). Једно решење не може истовремено признати и добитак и губитак.

--reference, --date и --notes су подаци о решењу (број, датум, напомене). Приказују се у show, а за признати губитак број и датум решења се додатно уписују у део 7 будућих PPDG-3R пријава (види пренос капиталних губитака), па их вреди евидентирати.

Ако решење признаје губитак (--loss већи од нуле), креира се (или ажурира) запис у регистру преноса капиталних губитака. Пренос се увек заснива на губитку признатом од стране пореске управе, а не на израчунатом.

⚠️ Након што је пренети губитак макар делимично искоришћен у једној од наредних пријава, признати губитак се више не може мењати путем assess — команда ће вратити грешку.

Пренос капиталних губитака (carryforward)

ibkr-porez carryforward

Приказује листу свих “транши” (vintages) капиталних губитака признатих од стране пореске управе, доступних за пренос у будуће периоде:

  • пријаву-извор и период за који је губитак признат;
  • признат и преостали (неискоришћени) износ;
  • пореску годину након које пренос истиче (губитак се може пренети највише 5 година унапред);
  • статус: Active (може се користити), Exhausted (потпуно искоришћен), Expired (истекао рок).

Иста листа је доступна у GUI-ју у менију Capital loss carryforward….

Свака PPDG-3R пријава креирана путем sync аутоматски умањује израчунату пореску основицу користећи расположиве преносе (од старијих ка новијим периодима), док се основица не сведе на нулу или се преноси не исцрпе. Преглед report-а приказује искоришћени и преостали износ преноса након тога. Износ се одбија из регистра само једном — приликом чувања пријаве; поновни sync за исти период га не одбија поново.

Пренети губици се такође пријављују у самој пријави: у PPDG-3R XML-у се попуњава део 7 („Капитални губици“) — по један ред за сваки активан пренос, са бројем и датумом решења пореске управе (7.2/7.3) и преосталим износом губитка (7.4). Коначни Osnovica и PorezZaUplatu у XML-у такође узимају у обзир примењени пренос. Пријављивање губитка у делу 7 је обавеза самог пореског обвезника — без тога га пореска управа неће применити у решењу.

Број и датум решења се узимају из assess (--reference и --date). Ако нису евидентирани, поља 7.2/7.3 у XML-у остају празна, а report исписује упозорење — евидентирајте их кроз assess и поново генеришите извештај, или попуните та поља ручно на порталу.

Извоз пријаве (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

Враћа статус пријаве.

Брисање пријаве (delete)

# Преглед плана (ништа се не мења)
ibkr-porez delete <id>

# Обриши пријаву
ibkr-porez delete <id> --yes

# Дозволи брисање пријаве која није нацрт
ibkr-porez delete <id> --yes --force

Брише пријаву и поништава њен утицај на књигу преноса: пренос губитка који је искористила враћа се изворним „траншама”, а њена сопствена транша признатог губитка (направљена преко assess) се уклања. Ако сте је обрисали да бисте исправили грешку, затим покрените sync да поново направите период из сачуваних трансакција.

Без --yes само исписује шта би било обрисано. --force је неопходан за брисање пријаве која није нацрт. Може се обрисати само најновији PPDG-3R — брисање старијег оставило би „висећи” пренос код каснијих пријава; PP OPO пријаве се могу брисати у било ком тренутку.

Тако се исправља и признати губитак претходне пријаве који је каснија већ искористила: обришите каснију пријаву (ослобађајући пренос), поново покрените assess на ранијој, па sync за поновно прављење.

У GUI-ју је иста радња доступна дугметом Delete у реду пријаве: отвара дијалог за потврду (уместо --yes) са пољем Force за пријаве које нису нацрт.

Приложавање фајла уз пријаву (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 sync --file -