Preskoči na sadržaj

Korisničko uputstvo za LPFR

Kako se svakodnevno radi sa Harmony LPFR-om: prvo pokretanje, pametna kartica i PIN, licenca, potpisivanje računa, izveštaji, internet i lokalno iščitavanje i šta raditi kad nešto ne radi.

Ažurirano: Verzija dokumenta: 2.0Preuzmi PDF
Sadržaj

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#

  1. POS kasa šalje račun aplikaciji Harmony-LPFR
  2. Harmony-LPFR proverava podatke, obračunava porez i šalje račun na pametnu karticu za potpisivanje
  3. Potpisani račun se vraća kasi sa URL-om za verifikaciju, QR kodom i formatiranim tekstom fiskalnog isečka
  4. 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.db i folder audit/, 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: .http fajlovi u folderu input/, odgovori u output/ (vidi poglavlje 11)
  • Ponovljen zahtev sa istim RequestId ne 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#

  1. Prikazuje se prozor za pokretanje sa indikatorom napretka i poslednjim porukama inicijalizacije
  2. Aplikacija otvara bazu podataka, sinhronizuje vreme (NTP), traži čitač i karticu, povezuje se na TaxCore i pokreće POS server
  3. 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#

  1. Ubacite pametnu karticu u čitač — čitač se detektuje automatski, ne bira se iz liste
  2. U gornjoj traci kliknite Verifikuj PIN i unesite PIN kod
  3. Proverite da indikator u gornjoj traci pokazuje ● Spreman
  4. 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#

  1. Umetnite fiskalnu pametnu karticu u čitač
  2. Aplikacija automatski detektuje karticu i prikazuje obaveštenje „Kartica detektovana."
  3. Sa kartice se čita sertifikat i popunjavaju podaci o firmi
  4. Proverava se licenca (vidi poglavlje 4)
  5. Ako PIN nije verifikovan, u gornjoj traci se pojavljuje dugme Verifikuj PIN
Kartica je prepoznata: podaci o firmi su popunjeni, a u gornjoj traci stoji dugme Verifikuj PIN
Kartica je prepoznata: podaci o firmi su popunjeni, a u gornjoj traci stoji dugme Verifikuj PIN

3.2 Verifikacija PIN-a#

Kroz glavni prozor:

  1. Otvorite glavni prozor (stavka Prikaži prozor u sistemskoj paleti)
  2. U gornjoj traci kliknite dugme Verifikuj PIN
  3. Unesite PIN kod i potvrdite
Dijalog za verifikaciju PIN-a: PIN se unosi na numeričkoj tastaturi
Dijalog za verifikaciju PIN-a: PIN se unosi na numeričkoj tastaturi

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
Glavni prozor na kartici Status kada je sve spremno: PIN je verifikovan, a poreske stope su učitane
Glavni prozor na kartici Status kada je sve spremno: PIN je verifikovan, a poreske stope su učitane

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. 0100 PIN OK, 0210 internet dostupan, 1500 potreban 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.

Dijalog Podešavanja sa odeljcima Server, Fajl posmatrač, Opšte i Sistemske informacije
Dijalog Podešavanja sa odeljcima Server, Fajl posmatrač, Opšte i Sistemske informacije

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.yaml i /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:

  1. Aplikacija je pokrenuta — ikonica u sistemskoj paleti je vidljiva
  2. Kartica je ubačena — pametna kartica se nalazi u čitaču
  3. PIN je verifikovan — gornja traka ne prikazuje dugme „Verifikuj PIN"
  4. Licenca važi — za produkcione kartice (vidi poglavlje 4)
  5. 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:

  1. Kasir unosi stavke na POS kasi i završava prodaju
  2. POS kasa automatski šalje račun na Harmony-LPFR
  3. Harmony-LPFR proverava podatke i obračunava porez
  4. Račun se šalje na pametnu karticu za kriptografsko potpisivanje
  5. Potpisani račun se vraća POS kasi
  6. POS kasa štampa fiskalni isečak sa QR kodom i URL-om za verifikaciju
  7. 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:

  1. Kliknite Zatvori dan
  2. Potvrdite akciju u dijalogu za potvrdu
  3. Generiše se dnevni izveštaj
  4. Čuva se vremenska oznaka zaključka
  5. 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#

  1. Svaki potpisani račun se automatski šifruje pomoću AES-256-CBC algoritma
  2. Ključ za šifrovanje se dodatno šifruje javnim RSA ključem Poreske uprave (TaxCore)
  3. Šifrovani paket se automatski šalje Poreskoj upravi preko bezbedne mTLS konekcije
  4. 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:

  1. Proverite internet konekciju
  2. Proverite da li je kartica ubačena i PIN verifikovan
  3. 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.db i u folder audit/ 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#

  1. Ubacite SD karticu ili USB disk u računar
  2. Uverite se da je pametna kartica ubačena i PIN verifikovan

10.2 Izvoz revizorskih podataka#

  1. Kliknite drugo dugme (spoljni disk)
  2. U dijalogu izaberite folder na SD kartici ili USB disku
  3. 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:

  1. Ubacite SD karticu inspektora u računar
  2. Kliknite treće dugme (dokument sa lupom)
  3. Izaberite folder na SD kartici
  4. 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#

  1. POS kasa ubacuje .http fajl u podfolder input/
  2. Harmony-LPFR automatski obrađuje fajl
  3. Odgovor se upisuje u podfolder output/ pod istim imenom
  4. 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.

Kartica Računi: izbor perioda, dugmad za izveštaje i dnevni zaključak, tabela računa i pregled isečka desno
Kartica Računi: izbor perioda, dugmad za izveštaje i dnevni zaključak, tabela računa i pregled isečka desno

12.1 Filtriranje po datumu#

  1. Izaberite datum Od i Do u gornjoj traci
  2. Kliknite Periodični izveštaj — tabela se filtrira na izabrani period i istovremeno se generiše izveštaj za taj period
  3. 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:

  1. Proverite da li je kartica ubačena u čitač
  2. Kliknite Verifikuj PIN u gornjoj traci
  3. 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:

  1. Proverite fizičku konekciju čitača (USB)
  2. Pogledajte karticu Status → Pametna kartica → Čitač kartice pronađen
  3. Na Linux-u proverite da li pcscd servis radi: systemctl status pcscd
  4. Izvadite i ponovo ubacite čitač, pa sačekajte nekoliko sekundi

Čitač se bira automatski — u interfejsu nema liste čitača.

Čitač je pronađen, ali kartica nije ubačena: Kartica prisutna NE, statusni kod 1300
Čitač je pronađen, ali kartica nije ubačena: Kartica prisutna NE, statusni kod 1300

14.3 POS kasa ne može da se poveže#

Uzrok: Pogrešan port, adresa ili nedostaje API ključ. Rešenje:

  1. Proverite POS port u dijalogu Podešavanja
  2. Proverite LPFR adresu na kartici Status — dugme pored nje kopira tačnu adresu
  3. Ako kasa pristupa preko mreže, LPFR_BIND_ADDRESS mora biti 0.0.0.0
  4. Ako je API ključ postavljen, kasa mora slati zaglavlje Authorization: Bearer <ključ>
  5. 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:

  1. Proverite internet konekciju
  2. Proverite da li je kartica ubačena i PIN verifikovan
  3. Pogledajte Paketi na čekanju na kartici Status
  4. Kliknite prvo dugme (oblak) u redu Neophodan audit da pokušate slanje odmah
  5. 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:

  1. Da li je kartica ubačena? (Status → Pametna kartica → Kartica prisutna: DA)
  2. Da li je PIN verifikovan? (Status → Pametna kartica → PIN verifikovan: DA)
  3. Da li gornja traka pokazuje ● Spreman?
  4. Da li je licenca važeća? (Status → Pametna kartica → Istek licence)
  5. 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:

  1. Proverite internet konekciju
  2. Aplikacija automatski sinhronizuje vreme svakih 48 sati
  3. 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.

Kartica Logovi sa izborom izvora, nivoa i pretragom
Kartica Logovi sa izborom izvora, nivoa i pretragom

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 folderu logs/ 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 nivoom WARN
  • Č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 bazu lpfr.db ni u folder audit/, pa ne zauzimaju prostor potpisanih računa i revizorskih paketa

B.3 Izvoz logova na USB ili SD karticu#

  1. Ubacite USB ili SD karticu u računar
  2. Na kartici Logovi kliknite Otvori folder logova
  3. Izaberite fajlove za potreban period (lpfr-GGGG-MM-DD.log) i kopirajte ih na USB ili SD karticu
  4. 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