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

Brzi start

Automatizovano generisanje poreske prijave PPDG-3R (porez na kapitalnu dobit) i PP OPO (porez na prihode od kapitala) za korisnike Interactive Brokers u Srbiji. Program automatski preuzima podatke o transakcijama i kreira gotov XML fajl za otpremanje, konvertujući sve cene u dinare (RSD).

Instalirajte ibkr-porez ↗

Ako koristite grafički interfejs, podesite svoje podatke (dugme Config) i za osvežavanje podataka i kreiranje prijava samo koristite dugme Sync.

Ako ste instalirali GUI + CLI, možete koristiti i grafički interfejs (pokreće se kao ibkr-porez bez parametara) i komandnu liniju, vidi ispod.

Grafički interfejs i komandna linija koriste istu bazu podataka.

⚠️ Dok je grafički interfejs pokrenut, ne koristite komandnu liniju, jer istovremeni rad može izazvati greške u bazi podataka.

Ako želite sve da radite kroz komandnu liniju, nastavite sa:

⚠️ Uvoz je potreban samo ako imate više od godinu dana istorije transakcija u Interactive Brokers. Flex Query omogućava preuzimanje podataka za najviše poslednju godinu, pa stariji podaci moraju biti učitani iz punog izvoza u CSV fajl ↗.

Brzo kreirati potrebnu prijavu

Ako želite brzo da kreirate konkretnu prijavu.

Preuzimanje najnovijih podataka (fetch) ↗

Kreiranje izveštaja (report) ↗

Otpremite kreirani XML na portal ePorezi (sekcija PPDG-3R).

PPDG-3R

Automatsko kreiranje prijava

Ako želite automatski da dobijate sve potrebne prijave i pratite njihov status (podneta, plaćena).

Preuzimanje najnovijih podataka i kreiranje prijava (sync) ↗

Upravljanje prijavama ↗

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

Instalacija

Instalater (GUI + CLI)

Preuzmite gotov instalater sa stranice izdanja:

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

Instalater uključuje grafičku aplikaciju (GUI) i komandu ibkr-porez za terminal (CLI).

macOS

Preuzmite najnoviji .pkg fajl. Pošto instalater nije potpisan Apple sertifikatom, macOS će ga blokirati pri otvaranju.

“IBKR Porez” je oštećen i ne može da se otvori. Treba ga premestiti u smeće.

Ne premeštajte u smeće. Umesto toga:

  1. Otvorite System Settings → Privacy & Security
  2. Pri dnu odeljka Security pojaviće se poruka o blokiranoj aplikaciji — kliknite Open Anyway
  3. U sledećem dijalogu potvrdite otvaranje

Možda će biti potrebno da ove korake ponovite dva puta:

  • prvo pri otvaranju preuzetog instalatera (.dmg)
  • a zatim pri prvom pokretanju instalirane aplikacije iz /Applications

Nakon toga aplikacija bi trebalo da se pokreće bez upozorenja.

Windows

Preuzmite najnoviji .msi fajl. Pošto instalater nije digitalno potpisan, Windows može prikazati bezbednosna upozorenja.

Ako pregledač blokira preuzimanje (na primer u Microsoft Edge):

  1. Otvorite panel preuzimanja u pregledaču (Ctrl+J)
  2. Pronađite blokirano .msi preuzimanje
  3. Kliknite KeepShow moreKeep anyway

Pri pokretanju instalatera, Windows može prikazati poruku Windows protected your PC:

  1. Kliknite More info
  2. Kliknite Run anyway

Može se pojaviti i User Account Control dijalog sa porukom Unknown publisher. Ako je fajl preuzet sa zvanične stranice izdanja, kliknite Yes za nastavak.

Nakon instalacije:

  • IBKR Porez će se pojaviti u Start meniju
  • Komanda ibkr-porez biće dostupna u terminalu (možda će biti potrebno ponovo pokrenuti terminal)

Preuzimanje gotovog binarnog fajla

Takođe možete preuzeti binarne fajlove za vašu platformu sa stranice izdanja:

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

Arhiva sadrži oba binarna fajla: ibkr-porez (CLI) i ibkr-porez-gui (GUI). Raspakujte arhivu i stavite fajlove negde u vaš PATH.

Instalacija iz izvornog koda

Ako imate instaliran Rust:

cargo install ibkr-porez

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

Upotreba

Konfiguracija (config)

ibkr-porez config

Kreiranje ili izmena ličnih podataka i podešavanja pristupa IBKR-u.

Biće vam zatraženo:

  • IBKR Flex Token: Preuzimanje tokena ↗
  • IBKR Query ID: Kreiranje Flex Query-a ↗
  • Personal ID: JMBG / EBS
  • Full Name: Ime i Prezime
  • Address: Adresa prebivališta
  • City Code: Trocefrni kod opštine. Primer: 223 (Novi Sad). Kod možete naći u šifarniku (videti kolonu “Šifra”). Takođe dostupan u padajućem meniju na portalu ePorezi.
  • Phone: Telefon
  • Email: Email
  • Data Directory: Apsolutna putanja do foldera sa fajlovima podataka (transactions.json, declarations.json, rates.json, itd.). Podrazumevano: ibkr-porez-data u folderu aplikacije.
  • Output Folder: Apsolutna putanja do foldera za čuvanje fajlova iz komandi sync, export, export-flex, report. Podrazumevano: folder Downloads vašeg sistema.

Preuzimanje podataka (fetch)

ibkr-porez fetch

Preuzima najnovije podatke sa IBKR i sinhronizuje kurseve sa NBS (Narodna banka Srbije).

Čuva ih u lokalno skladište.

Uvoz istorijskih podataka (import)

ibkr-porez import /path/to/activity_statement.csv

Učitavanje istorije transakcija starije od 365 dana, koja se ne može preuzeti putem Flex Query-a (fetch).

Da biste kreirali fajl sa transakcijama na portalu Interactive Brokers pogledajte Izvoz pune istorije ↗

⚠️ Ne zaboravite da pokrenete fetch nakon import kako bi aplikacija dodala maksimum detalja bar za poslednju godinu u manje detaljne podatke učitane iz CSV-a.

Logika sinhronizacije (import + fetch)

Pri učitavanju podataka iz CSV-a (import) i Flex Query-a (fetch), sistem daje prioritet potpunijim Flex Query podacima:

  • Podaci Flex Query-a (fetch) su izvor istine. Oni prepisuju CSV podatke za bilo koje podudarne datume.
  • Ako se zapis Flex Query-a semantički poklapa sa CSV zapisom (Datum, Tiker, Cena, Količina), to se računa kao ažuriranje (zamena zvaničnim ID-em).
  • Ako se struktura podataka razlikuje (npr. split nalozi u Flex Query-u protiv “spojenog” zapisa u CSV-u), stari CSV zapis se uklanja, a novi Flex Query zapisi se dodaju.
  • Potpuno identični zapisi se preskaču.

Sinhronizacija podataka i kreiranje prijava (sync)

ibkr-porez sync

Radi sve isto što i fetch:

  • Preuzima najnovije transakcije sa IBKR putem Flex Query-a
  • Sinhronizuje kurseve valuta sa NBS

Nakon toga kreira sve potrebne prijave za poslednjih 45 dana (ako već nisu kreirane).

Zatim možete Upravljati kreiranim prijavama.

💡 Ako ste pokrenuli sync prvi put i ona je kreirala prijave koje ste već podali pre početka korišćenja aplikacije, možete brzo da ih sve označite kao plaćene i uklonite iz izlaza list:

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

Prikaz statistike (stat)

ibkr-porez stat --year 2025
ibkr-porez stat --ticker AAPL
ibkr-porez stat --month 2025-01

Prikazuje:

  • Primljene dividende (u RSD)
  • Broj prodaja (poreski događaji)
  • Procenu realizovanog P/L (Kapitalna dobit) (u RSD)
  • Detaljnu podelu po tikerima ili mesecima (pri korišćenju filtera)

Generisanje poreskog izveštaja (report)

ibkr-porez report

Ako ne navedete tip izveštaja i period, podrazumevano se generiše PPDG-3R za poslednje puno polugodište

  • Kreira ppdg3r_XXXX_HY.xml u Output Folder
  • Uvezite ovaj fajl na portal Poreske uprave Srbije (ePorezi)
  • Ručno otpremite fajl iz Dokument potvrde u Tačku 8

Da biste izabrali drugi tip prijave ili vremenski period pogledajte dokumentaciju

ibkr-porez report --help

Upravljanje prijavama

Nakon kreiranja prijava putem komande sync možete ih pregledati, menjati status i izvoziti za otpremanje na poreski portal.

Spisak prijava (list)

Prikazuje spisak svih prijava sa mogućnošću filtriranja po statusu.

# Prikaži aktivne prijave (podrazumevano):
# draft + submitted + pending
ibkr-porez list

# Prikaži sve prijave
ibkr-porez list --all

# Filter po statusu
ibkr-porez list --status draft
ibkr-porez list --status submitted
ibkr-porez list --status pending
ibkr-porez list --status finalized

# Samo ID prijava (za korišćenje u cevima)
ibkr-porez list --ids-only
ibkr-porez list --status draft -1

Primer korišćenja u linux-stilu:

# Podneti sve nacrte
ibkr-porez list --status draft -1 | ibkr-porez submit

Pregled detalja prijave (show)

Prikazuje detaljne informacije o određenoj prijavi.

ibkr-porez show <declaration_id>

Prikazuje:

  • Tip prijave (PPDG-3R ili PP OPO)
  • Period prijave
  • Status (nacrt, podneta, na čekanju, završena)
  • Detalje transakcija i proračuna
  • Priložene fajlove

Podnošenje prijave (submit)

ibkr-porez submit <id> [<id> ...]

Označava prijavu kao podnetu (uvezenu na poreski portal).

Ponašanje zavisi od tipa prijave:

  • PPDG-3R nakon submit prelazi u status pending (čeka rešenje poreske uprave o iznosu poreza).
  • PP OPO nakon submit:
    • prelazi u submitted ako postoji porez za plaćanje;
    • prelazi direktno u finalized ako je porez 0.

Plaćanje prijave (pay)

ibkr-porez pay <id> [<id> ...]
ibkr-porez pay <id> --tax 1234.56

Označava prijavu kao završenu (finalized) i čuva datum plaćanja.

Opcija --tax omogućava da odmah zabeležite iznos poreza tokom plaćanja, bez posebnog koraka assess.

Nakon toga će nestati sa spiska prikazanog list (bez --all)

Evidencija iznosa po rešenju poreske (assess)

# Zabeleži zvaničan iznos poreza iz rešenja
ibkr-porez assess <declaration_id> --tax-due 1234.56

# Zabeleži iznos i odmah označi kao već plaćeno
ibkr-porez assess <declaration_id> --tax-due 1234.56 --paid

Komanda je najvažnija za PPDG-3R, gde iznos poreza određuje poreska uprava nakon podnošenja prijave.

Šta komanda radi:

  • upisuje zvaničan iznos poreza u metapodatke prijave;
  • sa --paid odmah prebacuje prijavu u finalized;
  • bez --paid:
    • ako je iznos veći od nule, prijava ostaje aktivna (submitted) za naknadno plaćanje;
    • ako je iznos nula, prijava prelazi u finalized.

Izvoz prijave (export)

ibkr-porez export <declaration_id>
ibkr-porez export <declaration_id> -o /path/to/output

Kopira XML i sve priložene fajlove (attach) u Output Folder ili u katalog naveden u parametrima.

Povratak statusa prijave (revert)

# Vratiti na nacrt (podrazumevano)
ibkr-porez revert <id> [<id> ...]

# Vratiti na podnetu
ibkr-porez revert <id> [<id> ...] --to submitted

Vraća status prijave.

Priložavanje fajla uz prijavu (attach)

# Priložiti fajl
ibkr-porez attach <declaration_id> /path/to/file.pdf

# Obrisati priloženi fajl
ibkr-porez attach <declaration_id> <file_id> --delete
ibkr-porez attach <declaration_id> --delete --file-id <file_id>

Priložava fajl uz prijavu ili uklanja priloženi fajl iz skladišta prijava.

Za čuvanje u skladištu prijava koristi se samo ime fajla (putanja se odbacuje), tako da imena moraju biti jedinstvena - inače će fajl sa istim imenom prepisati ranije učitan fajl sa istim imenom čak i iz druge putanje

💡 Priloženi fajlovi se kopiraju zajedno sa XML prijave tokom izvoza (export)

Izvoz 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 -  # Izlaz u stdout (za cevi)

Izvoz XML fajla Flex Query dobijenog tokom fetch ili sync na navedeni datum.

Primer korišćenja u linux-stilu:

ibkr-porez export-flex 2025-01-15 | ibkr-porez import

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

Interactive Brokers (IBKR)

Flex Web Service

  1. Performance & Reports > Flex Queries.
  2. Kliknite na ikonu Settings (zupčanik) u “Flex Web Service Configuration”.
  3. Omogućite Flex Web Service.
  4. Generišite Token (Generate Token).
    • Važno: Odmah kopirajte ovaj token. Nećete moći ponovo da ga vidite u celosti.
    • Postavite rok trajanja (preporučeno max - 1 godina).

Flex Query

  1. Performance & Reports > Flex Queries.
  2. Kliknite + da kreirate novi Activity Flex Query.
  3. Name: npr. ibkr-porez-data.
  4. Delivery Configuration (na dnu stranice):
    • Period: Izaberite Last 365 Calendar Days.
  5. Format: XML.

Sekcije za uključivanje (Sections):

Omogućite sledeće sekcije i označite Select All (Izaberi sve) za kolone.

Ako nikome ne verujete 8-) umesto Select All izaberite bar polja navedena u Obavezne kolone.

Trades - Transakcije

Nalazi se pod Trade Confirmations ili Activity.

Obavezne kolone
  • Symbol
  • Description
  • Currency
  • Quantity
  • TradePrice
  • TradeDate
  • TradeID
  • OrigTradeDate
  • OrigTradePrice
  • AssetClass
  • Buy/Sell

Cash Transactions - Novčane transakcije

Obavezne kolone
  • Type
  • Amount
  • Currency
  • DateTime / Date
  • Symbol
  • Description
  • TransactionID

Sačuvajte i preuzmite Query ID

Zabeležite Query ID (broj koji se obično pojavljuje pored imena upita u listi).

Trebaće vam Token i Query ID za konfiguraciju ibkr-porez.

Dokument potvrde

Za Tačku 8 (Dokazi uz prijavu) poreske prijave PPDG-3R potreban vam je PDF izveštaj od brokera. Mora se ručno priložiti na portalu ePorezi nakon uvoza XML-a.

Kako preuzeti odgovarajući izveštaj:

  1. U IBKR idite na Performance & Reports > Statements > Activity Statement.
  2. Period: Izaberite Custom Date Range.
  3. Navedite datume koji odgovaraju vašem poreskom periodu (npr. 01-01-2024 do 30-06-2024 za prvo polugodište).
  4. Kliknite Download PDF.
  5. Na portalu ePorezi, u sekciji 8. Dokazi uz prijavu, otpremite ovaj fajl.

Izvoz pune istorije (za import komandu)

Ako treba da učitate istoriju transakcija za period duži od 1 godine (nedostupno preko Flex Web Service-a), izvezite podatke u CSV:

  1. U IBKR idite na Performance & Reports > Statements > Activity Statement.
  2. Period: Izaberite Custom Date Range i navedite ceo period od otvaranja računa.
  3. Kliknite Download CSV.
  4. Ovaj fajl se može koristiti sa komandom import ↗.