1. Uvod#
Harmony-LPFR je Lokalni Procesor Fiskalnih Računa (LPFR) za srpski poreski sistem. Aplikacija se nalazi između vaše POS kase i Poreske uprave Srbije (TaxCore). Svaka prodaja koju izvršite kroz POS kasu biva kriptografski potpisana pomoću državne pametne kartice i evidentirana kod Poreske uprave.
1.1 Kako funkcioniše#
- POS kasa šalje račun aplikaciji Harmony-LPFR
- Harmony-LPFR proverava podatke, obračunava porez i šalje račun na pametnu karticu za potpisivanje
- Potpisani račun se vraća kasi sa URL-om za verifikaciju, QR kodom i formatiranim tekstom fiskalnog isečka
- U pozadini se kreira šifrovani revizorski paket i šalje Poreskoj upravi
1.2 Šta vam je potrebno#
- Računar sa Windows, macOS ili Linux operativnim sistemom
- Čitač pametnih kartica (npr. HID Global OMNIKEY 3x21)
- Državna pametna kartica (fiskalna kartica) sa PIN kodom
- Internet konekcija (za slanje revizorskih paketa)
- POS kasa (softver) koja podržava SDC protokol
- Važeća licenca — za produkcione kartice (vidi poglavlje 4)
1.3 Podaci o dobavljaču#
| Proizvod | Harmony-LPFR (Lokalni Procesor Fiskalnih Računa) |
| Dobavljač | HAMZA BIŠEVAC PREDUZETNIK RAČUNARSKO PROGRAMIRANJE ONE CLICK 2025 NOVI PAZAR |
| Adresa | Osmana Dervišnurevića 19, 36300 Novi Pazar, Srbija |
| PIB | 114952530 |
| Matični broj | 67978943 |
| E-pošta | [email protected] |
| Veb sajt | https://harmonypos.io |
| Proizvođač u uređaju | HarmonyPOS (naziv proizvoda One Click 2025) |
| Model | Harmony-LPFR |
Proizvođač, model i verziju softvera Harmony-LPFR prijavljuje u statusu uređaja (GET /api/v3/status, polja make, model i softwareVersion). Verziju softvera vidite i na kartici Status, u odeljku Uređaj (polje Verzija softvera).
1.4 Bezbednosni zahtevi i upozorenja#
UPOZORENJE: Pametna kartica se blokira posle 3 pogrešna unosa PIN-a. Harmony-LPFR ne može da je deblokira; za to je potreban PUK kod ili kontakt sa izdavaocem kartice. Ako niste sigurni u PIN, ne pokušavajte nasumično.
- Računar. Korisnik je odgovoran za održavanje računara na kome radi Harmony-LPFR: redovno ažuriranje operativnog sistema i antivirusne zaštite. Kvar računara ili operativnog sistema zbog neodržavanja može zaustaviti izdavanje fiskalnih računa.
- Kartica. Ne vadite karticu iz čitača dok se račun potpisuje. Vađenjem kartice poništava se verifikacija PIN-a i potpisivanje staje dok se kartica ponovo ne ubaci i PIN ne unese (vidi Vađenje kartice).
- PIN. PIN se ne pamti nigde, ni u bazi ni u fajlu, i unosi se posle svakog ubacivanja kartice i svakog restarta aplikacije. Ne zapisujte PIN na karticu ili čitač.
- Podaci. Ne brišite folder sa podacima aplikacije (baza
lpfr.dbi folderaudit/, vidi Dodatak V). U njoj su lokalni podaci o računima i revizorski paketi koji možda još nisu poslati Poreskoj upravi. - Slanje revizije. Računar treba da ima internet konekciju da bi se revizorski paketi slali Poreskoj upravi. Ako revizija kasni, aplikacija to prikazuje (vidi poglavlje 9); bez interneta podaci se predaju lokalnim iščitavanjem (vidi poglavlje 10).
- Tačno vreme. Datum i vreme na računaru moraju biti tačni, jer ulaze u potpisani račun. Aplikacija sinhronizuje vreme preko NTP servera (vidi Vreme na uređaju nije tačno).
- Mreža. POS server podrazumevano sluša na svim mrežnim interfejsima (port
8888). Ako je računar u mreži kojoj pristupaju i drugi uređaji, podesite API ključ (vidi poglavlje 6) ili ograničite pristup fajervolom. - Sertifikat. Pratite datum isteka sertifikata na kartici Status. Kada ostane manje od 30 dana, na vreme zatražite zamenu kartice.
1.5 Funkcionalne karakteristike#
Fiskalizacija
- Implementacija SDC protokola v3 (POS-to-SDC) za srpski poreski sistem
- Potpisivanje svakog računa bezbednosnim elementom na pametnoj kartici (SE aplet)
- Obračun poreza po poreskim grupama; prethodne poreske stope ostaju sačuvane
- Šifrovani revizorski paketi (AES-256-CBC + RSA) koji se šalju Poreskoj upravi
- Internet iščitavanje i lokalno iščitavanje na USB ili SD karticu (vidi poglavlje 9 i poglavlje 10)
- URL za verifikaciju i QR kod za svaki račun
- Tipovi računa normalan, profaktura, kopija, obuka i avans, za prodaju i refundaciju (vidi poglavlje 7)
- Presek stanja, periodični izveštaj i dnevni zaključak (vidi poglavlje 8)
Povezivanje sa ESIR-om
- REST API na TCP portu (podrazumevano
8888) i opcioni Unix socket - Zahtevi i odgovori u JSON ili XML formatu
- Server-Sent Events (SSE): status, događaji sa karticom i računi u realnom vremenu
- Fajl-bazirani interfejs:
.httpfajlovi u folderuinput/, odgovori uoutput/(vidi poglavlje 11) - Ponovljen zahtev sa istim
RequestIdne potpisuje račun dva puta - OpenAPI dokumentacija na adresi
http://localhost:8888/docs
Aplikacija
- Windows, macOS i Linux, sa izvornim interfejsom na svakom sistemu
- Kartice Status, Računi, Logovi i Pomoć, i dijalog Podešavanja (vidi poglavlje 5 i poglavlje 6)
- Ikonica u sistemskoj paleti sa statusom i obaveštenjima (vidi poglavlje 13)
- Jezici: engleski, srpski ćirilica i srpski latinica
- Automatsko pokretanje pri prijavi i automatsko ažuriranje
Pouzdanost
- Neuspelo slanje revizije ponavlja se na svakih 5 minuta
- Komande Poreske uprave proveravaju se na svakih 5 minuta
- Vreme se sinhronizuje preko NTP servera
- Na računaru može da radi samo jedna instanca aplikacije
- Logovi se vode po danima i čuvaju 30 dana
2. Prvo pokretanje#
Aplikacija nema čarobnjak za podešavanje. Podrazumevana podešavanja su takva da radi odmah nakon instalacije, a sve što eventualno treba promeniti nalazi se u dijalogu Podešavanja.
2.1 Šta se dešava pri pokretanju#
- Prikazuje se prozor za pokretanje sa indikatorom napretka i poslednjim porukama inicijalizacije
- Aplikacija otvara bazu podataka, sinhronizuje vreme (NTP), traži čitač i karticu, povezuje se na TaxCore i pokreće POS server
- Kada inicijalizacija završi, otvara se glavni prozor, a ikonica se pojavljuje u sistemskoj paleti
Ako baza podataka ne može da se otvori, prikazuje se poruka o grešci umesto glavnog prozora.
2.2 Podrazumevana podešavanja#
| Podešavanje | Podrazumevana vrednost |
|---|---|
| POS port | 8888 |
| Mrežna adresa (bind) | 0.0.0.0 — sve mrežne adrese |
| Folder za fajl-interfejs | ~/Harmony-LPFR |
| NTP server | pool.ntp.org |
| Jezik | Prema sistemskim podešavanjima |
Mrežna adresa se ne podešava kroz interfejs — menja se promenljivom okruženja LPFR_BIND_ADDRESS (vidi Uputstvo za instalaciju).
2.3 Prva upotreba#
- Ubacite pametnu karticu u čitač — čitač se detektuje automatski, ne bira se iz liste
- U gornjoj traci kliknite Verifikuj PIN i unesite PIN kod
- Proverite da indikator u gornjoj traci pokazuje ● Spreman
- Podesite POS kasu da šalje račune na
http://localhost:8888
VAŽNO: Kartica se blokira posle 3 uzastopna pogrešna PIN-a. Budite pažljivi prilikom unosa.
2.4 Zatvaranje prozora#
Zatvaranje glavnog prozora (X) ne gasi aplikaciju — prozor se samo sakriva, a aplikacija nastavlja da radi u sistemskoj paleti. Za potpuno gašenje koristite Izađi iz menija sistemske palete.
3. Rad sa pametnom karticom#
3.1 Ubacivanje kartice#
- Umetnite fiskalnu pametnu karticu u čitač
- Aplikacija automatski detektuje karticu i prikazuje obaveštenje „Kartica detektovana."
- Sa kartice se čita sertifikat i popunjavaju podaci o firmi
- Proverava se licenca (vidi poglavlje 4)
- Ako PIN nije verifikovan, u gornjoj traci se pojavljuje dugme Verifikuj PIN

3.2 Verifikacija PIN-a#
Kroz glavni prozor:
- Otvorite glavni prozor (stavka Prikaži prozor u sistemskoj paleti)
- U gornjoj traci kliknite dugme Verifikuj PIN
- Unesite PIN kod i potvrdite

Kroz API:
- POS kasa može verifikovati PIN pozivom
POST /api/v3/pin(vidi Uputstvo za instalaciju)
NAPOMENA: PIN se ne pamti nigde — ni u bazi, ni u fajlu. Opcija „Zapamti PIN" iz ranijih verzija je uklonjena, jer bi automatski pokušaj sa zastarelim PIN-om trošio ograničen broj pokušaja na kartici i mogao da je blokira. PIN se unosi ponovo posle svakog vađenja kartice i posle svakog restarta aplikacije.
3.3 Vađenje kartice#
- Kada izvadite karticu iz čitača, PIN verifikacija se automatski poništava
- Sve operacije potpisivanja se obustavljaju dok se kartica ponovo ne ubaci i PIN ne verifikuje
- Aplikacija prikazuje obaveštenje „Kartica uklonjena."
3.4 Podaci sa kartice#
Iz sertifikata na kartici aplikacija automatski iščitava:
- PIB — Poreski identifikacioni broj
- JID — Jedinstveni identifikator uređaja
- Naziv firme, Lokacija, Adresa, Okrug
- TaxCore URL — Adresa servera Poreske uprave
- Datum isteka sertifikata
UPOZORENJE: Ako do isteka sertifikata ostaje manje od 30 dana, status ekran će prikazati upozorenje crvenom bojom. Blagovremeno kontaktirajte nadležne za zamenu kartice.
3.5 Zamena kartice#
Kada se kartica izvadi, potpisivanje, slanje revizorskih paketa i preuzimanje komandi staju. Paketi napravljeni tom karticom ostaju u bazi lpfr.db. Kada se ubaci kartica i unese PIN, slanje se nastavlja, počevši od najstarijeg paketa.
Pre zamene kartice sačekajte da Paketi na čekanju budu 0. Lokalno iščitavanje uradite karticom kojom su paketi napravljeni.
4. Licenciranje#
Licenca se proverava po kartici, pri ubacivanju — ne pri pokretanju. Aplikacija se uvek pokreće i uvek prikazuje status; licenca odlučuje samo da li je potpisivanje računa dozvoljeno.
| Tip kartice | Ponašanje |
|---|---|
| Test / sandbox kartica | Radi bez licence |
| Produkciona kartica sa važećom licencom | Potpisivanje omogućeno |
| Produkciona kartica bez licence | Potpisivanje blokirano + otvara se dijalog za licencu |
4.1 Dijalog za licencu#
Dijalog prikazuje:
- ID uređaja — identifikator ovog računara, uz dugme Kopiraj (potreban prilikom nabavke licence)
- Pravno ime — naziv firme pročitan sa kartice
- Polje za unos tokena licence i dugme Validiraj
- Dugme Pokreni probnu verziju — registruje probnu licencu za ovaj uređaj
4.2 Gde se licenca čuva#
Licenca je token vezan za ID uređaja i čuva se u bezbednom skladištu operativnog sistema:
| Operativni sistem | Skladište |
|---|---|
| macOS | Keychain |
| Windows | Credential Manager |
| Linux | Secret Service (npr. GNOME Keyring) |
Licenca se ne čuva u fajlu i ne prenosi se preseljenjem baze na drugi računar.
NAPOMENA: Ako već imate plaćenu HarmonyPOS desktop licencu, ona važi i za Harmony-LPFR — zasebna LPFR licenca nije potrebna.
Stanje licence se ponovo proverava svakog sata. Ako licenca istekne u toku rada, potpisivanje se blokira i dijalog se ponovo prikazuje. Datum isteka licence je vidljiv na kartici Status, u odeljku Pametna kartica.
5. Pregled glavnog prozora#
Glavni prozor ima četiri kartice (taba) u gornjoj traci, indikatore stanja desno i ikonicu zupčanika za podešavanja. (Na macOS-u traka je ugrađena u naslovnu traku prozora, na Windows-u i Linux-u je odmah ispod nje.)
| Kartica | Namena |
|---|---|
| Status | Celokupno stanje sistema — firma, kartica, uređaj, revizija |
| Računi | Pregled izdatih računa i izveštaji (presek stanja, dnevni zaključak, periodični) |
| Logovi | Pregled sistemskih logova za dijagnostiku |
| Pomoć | Otvara uputstvo u veb pregledaču |

5.1 Gornja traka#
- ● Spreman (zeleno) / ● Nije spreman (crveno) — ukupna spremnost za potpisivanje
- Verifikuj PIN — dugme se pojavljuje samo kada PIN nije verifikovan
- Potrebno slanje revizije (narandžasto) — upozorenje kada revizija kasni
- ⚙ (zupčanik) — otvara dijalog Podešavanja
5.2 Kartica Status — detaljno#
Kartica prikazuje četiri odeljka raspoređena u mrežu 2×2:
Podaci o firmi
- Naziv firme, Lokacija, Adresa, Okrug, PIB
- Porezi — aktuelne poreske stope koje važe za vašu firmu (oznaka, naziv kategorije i stopa). Stope ažurira Poreska uprava komandom — obveznik ih ne menja ručno.
Pametna kartica
- JID
- Čitač kartice pronađen: DA/NE
- Kartica prisutna: DA/NE
- PIN verifikovan: DA/NE
- Istek sertifikata (sa brojem preostalih dana)
- Istek licence (sa brojem preostalih dana)
- Statusni kodovi — lista aktivnih ESDC statusnih kodova (npr.
0100PIN OK,0210internet dostupan,1500potreban PIN)
Uređaj
- LPFR adresa — adresa na kojoj POS kasa pristupa aplikaciji, sa dugmetom za kopiranje i dugmetom ? koje otvara API dokumentaciju
- Juniks soket — sa dugmetom za kopiranje
- Putanja fajlova — folder fajl-interfejsa, sa dugmetom za kopiranje i dugmetom za otvaranje foldera
- Verzija softvera, Proizvođač / Model
- Datum/vreme uređaja (NTP sinhronizovano) i NTP server
- Poslednji potpisani račun i njegov brojač
- Internet dostupan: DA/NE
Revizija
- Neophodan audit: DA/NE, sa četiri dugmeta za akcije revizije (vidi poglavlje 10)
- Ukupan iznos i Limit iznosa (sa SE elementa)
- Popunjenost kartice
- Poslednja revizija i Poslednja uspešna revizija
- Novi računi — broj računa od poslednje uspešne revizije
- Paketi na čekanju — broj neposlatih revizorskih paketa
5.3 Značenje indikatora Spreman#
Spreman znači da je kartica u čitaču, PIN verifikovan i poreske stope učitane. Indikator ne prati sve razloge zbog kojih potpisivanje može biti odbijeno:
- Kada je dostignut Limit iznosa, indikator ostaje Spreman, a u gornjoj traci se prikazuje Potrebno slanje revizije. Potpisivanje se odbija dok ne stigne dokaz o reviziji.
- Istek sertifikata i istek licence vidite u odeljku Pametna kartica.
6. Podešavanja#
Dijalog Podešavanja se otvara klikom na ikonicu zupčanika u gornjoj traci ili stavkom Podešavanja u sistemskoj paleti.

6.1 Server#
- POS port — Broj porta na kome sluša server (podrazumevano
8888). Promena se primenjuje odmah, bez restarta. - Juniks soket — Putanja do Unix socket-a (opciono, za napredne korisnike). Promena se primenjuje odmah.
- API ključ — Ako je postavljen, svaka POS kasa mora da šalje zaglavlje
Authorization: Bearer <ključ>. Dugme pored polja prikazuje/sakriva ključ. Izuzetak su rute/docs,/openapi.json,/openapi.yamli/help, koje rade i bez ključa.
6.2 Fajl posmatrač#
- Putanja fajlova — Folder koji aplikacija nadgleda za fajl-bazirani interfejs (podrazumevano
~/Harmony-LPFR). Dugme pored otvara izbor foldera. Promena zahteva restart aplikacije — na to vas podseća poruka pri zatvaranju dijaloga. - SSE događaji preko fajla — Kada je uključeno, događaji se upisuju i u fajl, pored SSE strima
- Očisti obrađene (3+ dana) — Briše obrađene fajlove starije od tri dana
6.3 Opšte#
- Jezik — English, Srpski ćirilica ili Srpski latinica. Potreban je restart aplikacije nakon promene jezika.
- Pokreni pri prijavi — Aplikacija se automatski pokreće pri prijavi na sistem
6.4 Sistemske informacije (samo za čitanje)#
- TaxCore URL — adresa servera Poreske uprave (sa kartice ili iz konfiguracije)
- URL za verifikaciju — bazni URL za verifikaciju računa
- NTP server — server za sinhronizaciju vremena
NAPOMENA: Čitač kartica i PIN se ne podešavaju — čitač se detektuje automatski, a PIN se unosi u dijalogu i nigde se ne čuva. Mrežna adresa (bind) se podešava samo promenljivom okruženja
LPFR_BIND_ADDRESS.
Sačuvana podešavanja se čuvaju u bazi podataka i pri sledećem pokretanju imaju prednost nad promenljivama okruženja.
7. Svakodnevni rad — potpisivanje računa#
7.1 Priprema za rad#
Pre nego što počnete sa radom, proverite sledeće:
- Aplikacija je pokrenuta — ikonica u sistemskoj paleti je vidljiva
- Kartica je ubačena — pametna kartica se nalazi u čitaču
- PIN je verifikovan — gornja traka ne prikazuje dugme „Verifikuj PIN"
- Licenca važi — za produkcione kartice (vidi poglavlje 4)
- POS kasa je konfigurisana — kasa šalje račune na
http://localhost:8888(ili vaš podešeni port)
Gornja traka treba da pokazuje ● Spreman.
7.2 Proces potpisivanja računa#
Potpisivanje računa se vrši automatski — kasir ne mora da interveniše na aplikaciji Harmony-LPFR. Tok je sledeći:
- Kasir unosi stavke na POS kasi i završava prodaju
- POS kasa automatski šalje račun na Harmony-LPFR
- Harmony-LPFR proverava podatke i obračunava porez
- Račun se šalje na pametnu karticu za kriptografsko potpisivanje
- Potpisani račun se vraća POS kasi
- POS kasa štampa fiskalni isečak sa QR kodom i URL-om za verifikaciju
- U pozadini se kreira šifrovani revizorski paket
7.3 Tipovi računa#
| Tip | Opis |
|---|---|
| Normalan | Standardni fiskalni račun za prodaju |
| Profaktura | Nefiskalni pregled — ne evidentira se u fiskalnom sistemu |
| Kopija | Kopija prethodno izdatog računa (isti RequestId) |
| Obuka | Račun za obuku — ne evidentira se fiskalno |
| Avans | Račun za avansno plaćanje |
7.4 Tipovi transakcija#
| Tip | Opis |
|---|---|
| Prodaja | Standardna prodaja |
| Refundacija | Povraćaj sredstava kupcu |
7.5 Tipovi plaćanja#
| Tip | Opis |
|---|---|
| Gotovina | Plaćanje gotovim novcem |
| Kartica | Plaćanje platnom karticom |
| Ček | Plaćanje čekom |
| Virman | Plaćanje virmanom (prenos) |
| Vaučer | Plaćanje vaučerom |
| Mobilni novac | Plaćanje mobilnim novcem |
7.6 Fiskalni isečak#
Svaki potpisani račun sadrži:
- Naziv firme, PIB, adresu, lokaciju, okrug
- Listu stavki sa cenama i količinama
- Obračunati porez po kategorijama
- Broj računa i brojač
- URL za verifikaciju i QR kod
- Kriptografski potpis
Kupac može da skenira QR kod ili da poseti URL za verifikaciju da bi proverio autentičnost računa na sajtu Poreske uprave.
8. Izveštaji i dnevni zaključak#
Izveštaji se nalaze na kartici Računi. Dugmad su u gornjem desnom uglu, a generisani izveštaj se prikazuje u panelu sa desne strane, formatiran kao tekst fiskalnog isečka širine 40 karaktera.
8.1 Presek stanja (Tekući izveštaj)#
Kliknite dugme Presek stanja da dobijete trenutni izveštaj o stanju od poslednjeg dnevnog zaključka.
Izveštaj prikazuje:
- Period (od poslednjeg zaključka do sada)
- Broj transakcija po tipu računa i tipu transakcije
- Ukupne iznose prodaja i refundacija
- Razbijanje po načinu plaćanja
- Poreski pregled po kategorijama
8.2 Periodični izveštaj#
Kliknite Periodični izveštaj da dobijete izveštaj za period koji ste odabrali poljima Od i Do u istoj traci.
8.3 Štampanje izveštaja#
Kliknite Štampaj ispod panela sa izveštajem da pošaljete tekst na štampač.
8.4 Dnevni zaključak (Zatvori dan)#
Kliknite dugme Zatvori dan da izvršite dnevni zaključak.
VAŽNO: Dnevni zaključak je nepovratna operacija za tekući period. Nakon zatvaranja dana, novi period počinje od tog trenutka.
Proces:
- Kliknite Zatvori dan
- Potvrdite akciju u dijalogu za potvrdu
- Generiše se dnevni izveštaj
- Čuva se vremenska oznaka zaključka
- Novi period počinje od trenutka zaključka
Preporuka je da se dnevni zaključak vrši na kraju svakog radnog dana.
9. Internet iščitavanje (Onlajn revizija)#
Internet iščitavanje (onlajn revizija) je automatski proces koji se odvija u pozadini bez intervencije korisnika.
9.1 Kako funkcioniše#
- Svaki potpisani račun se automatski šifruje pomoću AES-256-CBC algoritma
- Ključ za šifrovanje se dodatno šifruje javnim RSA ključem Poreske uprave (TaxCore)
- Šifrovani paket se automatski šalje Poreskoj upravi preko bezbedne mTLS konekcije
- Ako slanje ne uspe (npr. nema interneta), paket se čuva lokalno i pokušava se ponovo svakih 5 minuta
9.2 Provera stanja#
Na kartici Status, u odeljku Revizija, možete videti:
- Paketi na čekanju — broj neposlatih revizorskih paketa
- Neophodan audit — DA/NE
- Poslednja revizija i Poslednja uspešna revizija
- Novi računi — broj računa od poslednje uspešne revizije
Stanje internet konekcije je u odeljku Uređaj (Internet dostupan).
9.3 Ručno slanje#
Ako želite da odmah pokušate slanje neposlatih paketa, kliknite prvo dugme (☁) u redu Neophodan audit.
9.4 Upozorenje o zakasneloj reviziji#
Ako revizorski paketi nisu poslati duže od 4 dana, aplikacija će:
- Prikazati upozorenje Potrebno slanje revizije u gornjoj traci
- Poslati sistemsko obaveštenje (najviše jednom na sat)
Šta uraditi:
- Proverite internet konekciju
- Proverite da li je kartica ubačena i PIN verifikovan
- Ako internet nije dostupan, izvršite Lokalno iščitavanje (vidi sledeće poglavlje)
9.5 Komande od Poreske uprave#
Aplikacija takođe automatski prima komande od Poreske uprave:
- Ažuriranje poreskih stopa — nove stope se automatski primenjuju
- Promena NTP servera — ažuriranje servera za sinhronizaciju vremena
- Promena URL-a za verifikaciju — ažuriranje adrese za verifikaciju računa
- Konfiguracija — kompletno ažuriranje podešavanja
- Dokaz o reviziji — potvrda revizije koja se prosleđuje SE apletu na kartici
- Direktiva za SE aplet — komanda koju Poreska uprava šalje direktno kartici
Komande se prvi put preuzimaju posle verifikacije PIN-a, a zatim se proveravaju na svakih 5 minuta.
9.6 Rad bez internet konekcije#
Harmony-LPFR potpisuje račune i bez interneta, ako je kartica u čitaču, PIN verifikovan i poreske stope bar jednom primljene. Za svaki račun pravi se revizorski paket u bazi lpfr.db. Paketi se šalju kad se veza vrati, ili se predaju lokalnim iščitavanjem (vidi poglavlje 10).
Koliko računa može da se izda bez interneta. Broj ograničava Limit iznosa na bezbednosnom elementu, a ne memorija računara. Kada zbir računa (Ukupan iznos) dostigne limit, potpisivanje staje dok ne stigne dokaz o reviziji.
- Procena: broj računa ≈ (Limit iznosa − Ukupan iznos) / prosečan iznos računa
- Obe vrednosti su na kartici Status, u odeljku Revizija
- Primer: limit 10.000.000 RSD, prazna kartica i prosečan račun od 1.000 RSD daju oko 10.000 računa
- Upozorenje Potrebna revizija (kod 1400) pojavljuje se na 75% limita, a Memorija 90% puna (kod 1100) na 90%
Prostor na disku. Jedan račun zauzima oko 25 KB: zapis u bazi i revizorski paket sa kopijom u folderu audit/. Na 1 GB slobodnog prostora stane oko 40.000 računa.
9.7 Prijava na SUF#
Harmony-LPFR se pred SUF-om (TaxCore) predstavlja sertifikatom iz PKI apleta pametne kartice, preko mTLS veze, i traži pristupni token. Token se šalje u zaglavlju TaxCoreAuthenticationToken uz svaki naredni zahtev i obnavlja se pre isteka. Za prijavu su potrebni kartica u čitaču i verifikovan PIN.
9.8 Redosled obrade komandi#
Komande iz jednog odgovora SUF-a izvršavaju se jedna po jedna, redom kojim su primljene. Dokaz o reviziji prosleđuje se bezbednosnom elementu odmah po prijemu. Komande se proveravaju na svakih 5 minuta, kada je kartica u čitaču i PIN verifikovan.
9.9 Čuvanje revizorskih paketa#
Harmony-LPFR ne briše revizorske pakete i ne zamenjuje ih novim; svaki račun ima svoj paket. Paket koji SUF potvrdi označava se kao poslat i ostaje u bazi. Ni dokaz o reviziji ne briše pakete: on bezbednosnom elementu vraća Ukupan iznos na nulu, pa potpisivanje može da se nastavi.
9.10 Izdavanje računa tokom slanja#
Slanje paketa i preuzimanje komandi rade u pozadini. Račun se vraća ESIR-u čim ga kartica potpiše, a neuspelo slanje ne utiče na izdavanje računa. Izuzetak: dok traje izvoz na USB ili SD karticu (vidi Izvoz revizorskih podataka), novi račun čeka da se izvoz završi.
9.11 Format i čuvanje paketa#
- Revizorski paket ima isti format za internet i za lokalno iščitavanje: isti JSON se šalje SUF-u i upisuje na USB ili SD karticu
- Paket se šifruje AES-256 ključem, na način opisan u tehničkom vodiču (vidi Uputstvo za instalaciju, odeljak 7.6)
- Paket se upisuje u bazu
lpfr.dbi u folderaudit/pre nego što se potpisani račun vrati ESIR-u
9.12 Slanje paketa i dokaz o iščitavanju#
- Paket novog računa šalje se SUF-u odmah posle potpisivanja, u pozadini
- Paketi koji nisu poslati (na primer, dok nije bilo interneta) šalju se ponovo na svakih 5 minuta, počevši od najstarijeg, do 100 paketa u jednom krugu. Slanje se ponavlja dok god ima neposlatih paketa i interneta
- Poslati paketi ostaju u bazi i posle potvrde SUF-a (vidi Čuvanje revizorskih paketa)
- Dokaz o iščitavanju automatski se traži na svakih 15 minuta, kada su svi paketi poslati, kartica u čitaču i PIN verifikovan
- Dokaz se traži i posle računa ili slanja paketa, kada je popunjenost Limita iznosa 75% ili više i svi paketi su poslati
- Dokaz možete zatražiti i ručno, četvrtim dugmetom u odeljku Revizija (vidi poglavlje 10)
10. Lokalno iščitavanje (Oflajn revizija)#
Lokalno iščitavanje se koristi kada internet nije dostupan ili kada poreski inspektor zahteva terensku reviziju. Podaci se izvoze na SD karticu ili USB disk.
Sve akcije revizije nalaze se na kartici Status, u odeljku Revizija, u redu Neophodan audit — četiri mala dugmeta sa ikonicama, redom:
| Dugme | Ikonica | Akcija |
|---|---|---|
| 1 | oblak sa strelicom naviše | Pošalji neposlate revizorske pakete na TaxCore (onlajn) |
| 2 | spoljni disk | Izvezi reviziju u izabrani folder |
| 3 | dokument sa lupom | Učitaj komande inspektora iz izabranog foldera |
| 4 | pečat sa kvačicom | Zatraži dokaz o reviziji (Proof of Audit) |
Poruka o rezultatu akcije prikazuje se pored dugmadi i nestaje nakon nekoliko sekundi.
10.1 Priprema#
- Ubacite SD karticu ili USB disk u računar
- Uverite se da je pametna kartica ubačena i PIN verifikovan
10.2 Izvoz revizorskih podataka#
- Kliknite drugo dugme (spoljni disk)
- U dijalogu izaberite folder na SD kartici ili USB disku
- Sačekajte da se proces završi. Na početku se pored dugmadi prikazuje poruka „Izvoz podataka revizije...", a na kraju poruka o rezultatu izvoza
Aplikacija će izvesti:
- ARP (Audit Request Payload) — zahtev za reviziju potpisan pametnom karticom
- Sve neposlate revizorske pakete — šifrovani podaci računa
10.3 Automatska ponuda pri ubacivanju USB uređaja#
Kada ubacite USB uređaj, aplikacija to sama prepoznaje i pita „Izvezite reviziju na USB uređaj?". Potvrdom se revizija izvozi na taj uređaj, a zatim se sa njega automatski učitavaju eventualne komande odgovora.
10.4 Obrada komandi inspektora#
Kada poreski inspektor dostavi SD karticu sa komandama:
- Ubacite SD karticu inspektora u računar
- Kliknite treće dugme (dokument sa lupom)
- Izaberite folder na SD kartici
- Aplikacija će obraditi komande i upisati rezultate
10.5 Dokaz o reviziji#
Četvrto dugme (pečat sa kvačicom) šalje zahtev za dokaz o reviziji (Proof of Audit) Poreskoj upravi. Rezultat se prikazuje pored dugmadi.
NAPOMENA: Za sve operacije revizije potrebno je da pametna kartica bude ubačena i PIN verifikovan.
10.6 Fajlovi na USB ili SD kartici#
Nazivi i raspored fajlova prate tehnički vodič Poreske uprave (odeljci „E-SDC Stores Audit Files on SD Card or USB Drive" i „E-SDC Executes Commands Received via SD Card or USB Drive"). JID je jedinstveni identifikator bezbednosnog elementa sa kartice. Ako folder {JID} ne postoji na disku, aplikacija ga sama napravi.
| Fajl | Gde | Sadržaj |
|---|---|---|
{JID}-{JID}-{redni broj}.json |
folder {JID} |
revizorski paket jednog računa |
{JID}.arp |
folder {JID} |
zahtev za reviziju (Audit Request Payload): rezultat komande Start Audit (Begin Audit) bezbednosnog elementa, uz zbir i limit iznosa |
{JID}.commands |
koren diska | JSON sa komandama Poreske uprave, koje aplikacija izvršava |
{JID}.results |
koren diska | JSON sa rezultatima izvršenih komandi |
Primer za karticu sa JID-om FXQ3KV79: komande su u E:\FXQ3KV79.commands, a paketi u folderu E:\FXQ3KV79\.
Ako na disku postoji {JID}.commands, aplikacija prvo izvrši te komande, pa tek onda izvozi podatke. Tako se primenjuje i komanda za završetak iščitavanja (dokaz o iščitavanju), koju Poreska uprava šalje na USB ili SD kartici. Rezultat izvršenih komandi upisuje se u {JID}.results.
11. Fajl-bazirani interfejs#
Fajl-bazirani interfejs je namenjen sistemima koji ne mogu da koriste HTTP komunikaciju. Aplikacija nema posebnu karticu za fajlove — folder se podešava u Podešavanja → Fajl posmatrač, a putanja i dugme za otvaranje foldera vidljivi su na kartici Status, u odeljku Uređaj (Putanja fajlova).
11.1 Kako funkcioniše#
- POS kasa ubacuje
.httpfajl u podfolderinput/ - Harmony-LPFR automatski obrađuje fajl
- Odgovor se upisuje u podfolder
output/pod istim imenom - Obrađeni ulazni fajl se premešta u
input/processed/
Podrazumevani koreni folder je ~/Harmony-LPFR, pa je struktura:
~/Harmony-LPFR/
├── input/
│ └── processed/
└── output/
11.2 Upravljanje#
- Otvori folder — ikonica foldera pored polja Putanja fajlova na kartici Status
- Očisti obrađene (3+ dana) — dugme u Podešavanja → Fajl posmatrač; briše obrađene fajlove starije od tri dana
- SSE događaji preko fajla — prekidač u istom odeljku; upisuje događaje i u fajl, pored SSE strima
12. Pregled računa#
Kartica Računi prikazuje sve izdate fiskalne račune.

12.1 Filtriranje po datumu#
- Izaberite datum Od i Do u gornjoj traci
- Kliknite Periodični izveštaj — tabela se filtrira na izabrani period i istovremeno se generiše izveštaj za taj period
- Pored polja se prikazuje broj prikazanih računa
Pri otvaranju kartice prikazuju se računi za tekući dan.
12.2 Tabela računa#
| Kolona | Opis |
|---|---|
| # | Ukupni brojač računa sa SE elementa |
| Broj računa | Jedinstveni identifikator računa |
| Datum/Vreme | Datum i vreme izdavanja |
| Tip | Normalan, Profaktura, Kopija, Obuka, Avans |
| Transakcija | Prodaja ili Refundacija |
| Iznos | Ukupan iznos računa |
| Plaćanje | Način plaćanja (Gotovina, Kartica, itd.) |
| Porez | Primenjene poreske oznake |
| Kasir | Ime kasira |
Računi su sortirani od najnovijeg ka najstarijem. Klikom na red prikazuje se tekst fiskalnog isečka tog računa u panelu sa desne strane, odakle se može odštampati dugmetom Štampaj.
13. Sistemska paleta (System Tray)#
Aplikacija Harmony-LPFR radi u pozadini i prikazuje ikonicu u sistemskoj paleti. Crvena oznaka na ikonici znači da sistem nije spreman.
13.1 Meni sistemske palete#
- Prikaži prozor — Otvara glavni prozor aplikacije
- Podešavanja — Otvara dijalog sa podešavanjima
- Pomoć — Otvara uputstvo u veb pregledaču
- Status: … — Trenutno stanje (samo za prikaz)
- Kartica: … — Stanje pametne kartice (samo za prikaz)
- Paketi na čekanju: N — Broj neposlatih revizorskih paketa (samo za prikaz)
- Izađi — Gasi aplikaciju
13.2 Obaveštenja#
Aplikacija šalje sistemska obaveštenja:
- Kartica detektovana / Kartica uklonjena
- PIN verifikovan — Harmony-LPFR je spreman za rad
- Pogrešan PIN — upozorenje da previše pokušaja blokira karticu
- Potrebno slanje revizije (paketi stariji od 4 dana, najviše jednom na sat)
- POS server restartovan na novom portu / Juniks soket ažuriran
- Ažuriranje primenjeno — restartujte za aktiviranje
14. Rešavanje problema#
14.1 Aplikacija prikazuje „Potrebna verifikacija PIN-a"#
Uzrok: PIN nije verifikovan. Rešenje:
- Proverite da li je kartica ubačena u čitač
- Kliknite Verifikuj PIN u gornjoj traci
- Unesite ispravan PIN kod
Nakon vađenja i ponovnog ubacivanja kartice, kao i posle restarta aplikacije, PIN se uvek unosi ponovo — ne pamti se.
14.2 Kartica se ne prepoznaje#
Uzrok: Čitač nije povezan ili sistemski servis za pametne kartice ne radi. Rešenje:
- Proverite fizičku konekciju čitača (USB)
- Pogledajte karticu Status → Pametna kartica → Čitač kartice pronađen
- Na Linux-u proverite da li
pcscdservis radi:systemctl status pcscd - Izvadite i ponovo ubacite čitač, pa sačekajte nekoliko sekundi
Čitač se bira automatski — u interfejsu nema liste čitača.

14.3 POS kasa ne može da se poveže#
Uzrok: Pogrešan port, adresa ili nedostaje API ključ. Rešenje:
- Proverite POS port u dijalogu Podešavanja
- Proverite LPFR adresu na kartici Status — dugme pored nje kopira tačnu adresu
- Ako kasa pristupa preko mreže,
LPFR_BIND_ADDRESSmora biti0.0.0.0 - Ako je API ključ postavljen, kasa mora slati zaglavlje
Authorization: Bearer <ključ> - Proverite da li fajervol (firewall) dozvoljava konekciju
14.4 Potpisivanje je blokirano, a kartica i PIN su u redu#
Uzrok: Produkciona kartica bez važeće licence. Rešenje: Otvorite dijalog za licencu koji se prikazuje pri ubacivanju kartice, unesite token i kliknite Validiraj, ili pokrenite probnu verziju. Vidi poglavlje 4.
14.5 Upozorenje o zakasneloj reviziji#
Uzrok: Revizorski paketi nisu poslati duže od 4 dana. Rešenje:
- Proverite internet konekciju
- Proverite da li je kartica ubačena i PIN verifikovan
- Pogledajte Paketi na čekanju na kartici Status
- Kliknite prvo dugme (oblak) u redu Neophodan audit da pokušate slanje odmah
- Ako internet nije dostupan, izvršite Lokalno iščitavanje (poglavlje 10)
14.6 Kartica je blokirana (3 pogrešna PIN-a)#
Uzrok: Tri puta je unet pogrešan PIN. Rešenje: Kontaktirajte nadležnu službu za deblokadu kartice. Aplikacija ne može deblokirati karticu.
14.7 Sertifikat ističe#
Uzrok: Sertifikat na pametnoj kartici je pri kraju važenja. Rešenje: Blagovremeno (minimum 30 dana pre isteka) kontaktirajte nadležnu službu za zamenu ili obnovu kartice. Aplikacija prikazuje upozorenje na kartici Status.
14.8 Potpisivanje računa ne funkcioniše#
Rešenje — proverite redom:
- Da li je kartica ubačena? (Status → Pametna kartica → Kartica prisutna: DA)
- Da li je PIN verifikovan? (Status → Pametna kartica → PIN verifikovan: DA)
- Da li gornja traka pokazuje ● Spreman?
- Da li je licenca važeća? (Status → Pametna kartica → Istek licence)
- Pogledajte karticu Logovi za detaljne poruke o greškama
14.9 Promena jezika ne funkcioniše#
Uzrok: Jezik zahteva restart. Rešenje: Nakon promene jezika u Podešavanjima, zatvorite i ponovo pokrenite aplikaciju.
14.10 Vreme na uređaju nije tačno#
Uzrok: NTP sinhronizacija nije uspela. Rešenje:
- Proverite internet konekciju
- Aplikacija automatski sinhronizuje vreme svakih 48 sati
- Restartujte aplikaciju da forsirate ponovnu sinhronizaciju
Dodatak A — Poreske stope#
Aktuelne poreske stope prikazuju se na kartici Status, u odeljku Podaci o firmi, u redu Porezi.
Prikaz sadrži:
- Oznaka — Oznaka poreske kategorije (npr. A, B, V, G, D, Đ, E, Ž, Z, I)
- Naziv kategorije — Opis poreske kategorije
- Stopa (%) — Procentualna stopa poreza
Poreske stope se automatski ažuriraju komandom od Poreske uprave. Obveznik ne može ručno menjati poreske stope. U bazi se čuvaju sve istorijske grupe stopa, a na kartici Status prikazuje se grupa sa najkasnijim datumom važenja.
A.1 Prijem i primena poreskih stopa#
Stope stižu komandom Poreske uprave (Tax Rates Command): posle prve verifikacije PIN-a, pri svakoj proveri komandi i iz fajla komandi pri lokalnom iščitavanju (vidi Obrada komandi inspektora). Svaka grupa ima datum i vreme od kada važi.
- Grupe sa budućim datumom čuvaju se u bazi i primenjuju od tog trenutka
- Račun se obračunava po grupi koja važi u vreme potpisivanja
- Račun sa referentnim dokumentom (npr. refundacija) obračunava se po grupi koja je važila u vreme referentnog dokumenta
Dodatak B — Logovi#
Kartica Logovi omogućava pregled sistemskih logova za dijagnostiku problema.

B.1 Filtriranje logova#
- Izvor — Izaberite „Uživo" za praćenje u realnom vremenu, ili odaberite konkretan datumski fajl
- Nivo — Filtrirajte po nivou ozbiljnosti:
- Sve — Prikazuje sve poruke
- DEBUG — Detaljne tehničke poruke (za razvoj)
- INFO — Informativne poruke o normalnom radu
- WARN — Upozorenja koja zahtevaju pažnju
- ERROR — Greške koje sprečavaju normalan rad
- Pretraga — Unesite tekst za filtriranje logova
- Osveži — Ponovo učitava izabrani izvor
- Otvori folder logova — Otvara folder sa log fajlovima
Pri kontaktiranju tehničke podrške, logovi u nivou DEBUG mogu biti zatraženi radi dijagnostike.
Fajlovi logova se automatski brišu nakon 30 dana — pri pokretanju i pri svakoj dnevnoj rotaciji.
B.2 Format i čuvanje logova#
- Svaki dan ima svoj fajl
lpfr-GGGG-MM-DD.log, u folderulogs/pored baze (vidi Dodatak V) - Fajl je običan tekst i otvara se u svakom uređivaču teksta (Notepad, TextEdit)
- Svaki red počinje nivoom i lokalnim datumom i vremenom, hronološki:
[ERROR] 2026-10-21 11:56:07 … - Greške su označene nivoom
ERROR, a upozorenja nivoomWARN - Čuvaju se fajlovi iz poslednjih 30 dana; stariji se brišu pri pokretanju i pri dnevnoj rotaciji
- Logovi su u zasebnom folderu
logs/. Ne upisuju se u bazulpfr.dbni u folderaudit/, pa ne zauzimaju prostor potpisanih računa i revizorskih paketa
B.3 Izvoz logova na USB ili SD karticu#
- Ubacite USB ili SD karticu u računar
- Na kartici Logovi kliknite Otvori folder logova
- Izaberite fajlove za potreban period (
lpfr-GGGG-MM-DD.log) i kopirajte ih na USB ili SD karticu - Fajlovi se na drugom računaru otvaraju kao običan tekst
Dodatak V — Tehničke informacije#
V.1 Lokacije fajlova#
Osnovni folder je sistemski folder za korisnička podešavanja, u poddirektorijumu harmonypos.io/lpfr:
| Operativni sistem | Putanja |
|---|---|
| Linux | ~/.config/harmonypos.io/lpfr/ |
| macOS | ~/Library/Application Support/harmonypos.io/lpfr/ |
| Windows | %AppData%\harmonypos.io\lpfr\ |
| Fajl | Naziv |
|---|---|
| Baza podataka | lpfr.db |
| Logovi | logs/ |
| Revizorski paketi | audit/ |
| Unix Socket | lpfr.sock |
Folder fajl-baziranog interfejsa je podrazumevano ~/Harmony-LPFR i podešava se zasebno.
V.2 Mrežni zahtevi#
- TCP port (podrazumevano 8888) — za komunikaciju sa POS kasom
- HTTPS (443) — za komunikaciju sa TaxCore serverom (mTLS) i za preuzimanje ažuriranja
- NTP (123) — za sinhronizaciju vremena (pool.ntp.org)
- DNS (53) — za proveru internet konekcije
V.3 API dokumentacija#
Kompletna API dokumentacija je dostupna na adresi:
http://localhost:8888/docs
(zamenite 8888 vašim portom ako ste ga promenili)
Do iste stranice vodi i dugme ? pored polja LPFR adresa na kartici Status.
Autorska prava#
© 2026 One Click 2025, Novi Pazar. Sva prava zadržana.
Autorska prava na ovo uputstvo i na softver Harmony-LPFR ima HAMZA BIŠEVAC PREDUZETNIK RAČUNARSKO PROGRAMIRANJE ONE CLICK 2025 NOVI PAZAR (PIB 114952530, MB 67978943), u daljem tekstu One Click 2025. Harmony, HarmonyPOS i Harmony-LPFR su nazivi proizvoda One Click 2025.
Uputstvo smete da preuzmete, odštampate i prosledite u neizmenjenom obliku, radi rada sa Harmony-LPFR-om. Za svako drugo umnožavanje, izmenu ili objavljivanje teksta i snimaka ekrana potrebna je pismena saglasnost One Click 2025.
Kontakt: [email protected], https://harmonypos.io