1. Namena i vrsta proizvoda#
Harmony-LPFR je softverski L-PFR za sistem e-fiskalizacije Republike Srbije. Instalira se na računar obveznika fiskalizacije (Windows, macOS ili Linux) i povezuje ESIR sa bezbednosnim elementom Poreske uprave i Sistemom za upravljanje fiskalizacijom (SUF, TaxCore).
Proizvod nije ESIR, V-PFR ni hardverski fiskalni uređaj. Za rad su mu potrebni standardni USB čitač pametnih kartica (PC/SC) i bezbednosni element koji izdaje Poreska uprava.
Ovaj dokument je sažet pregled proizvoda. Detalji su u Korisničkom uputstvu (u daljem tekstu: U) i Uputstvu za instalaciju i povezivanje sa ESIR-om (u daljem tekstu: I); uz svako poglavlje navedeno je gde se nalaze.
2. Identifikacija#
| Proizvod | Harmony-LPFR, softverski L-PFR |
| Model | HarmonyLPFR |
| Proizvođač u uređaju | HarmonyPOS (naziv proizvoda dobavljača) |
| Dobavljač | HAMZA BIŠEVAC PREDUZETNIK RAČUNARSKO PROGRAMIRANJE ONE CLICK 2025 NOVI PAZAR |
| Adresa | Osmana Dervišnurevića 19, 36300 Novi Pazar, Srbija |
| PIB / Matični broj | 114952530 / 67978943 |
| Verzija softvera | 1.0.0 |
| Verzija hardvera | 1.0.0.0 (stalna oznaka softverskog L-PFR-a) |
| Verzija protokola | 1.0.0.0 (POS-to-SDC v3) |
| Prijava za odobrenje | IB 1547 |
| Registracioni kod (MRC prefiks) | 89-0001 |
| Operativni sistemi | Windows 10/11 (64-bit), macOS 12 ili noviji, Linux (Ubuntu 20.04+, Debian 11+) |
| Kontakt | [email protected], https://harmonypos.io |
Identifikacioni podaci se vide na tri mesta:
- Na kartici Status, u odeljku Uređaj: Proizvođač / Model (
HarmonyPOS / HarmonyLPFR), Verzija softvera i Verzija hardvera. U odeljku Pametna kartica: JID i Serijski broj (U 3.2) - U statusu uređaja koji ESIR dobija preko
GET /api/v3/status: poljamake,model,softwareVersion,hardwareVersion,protocolVersionideviceSerialNumber(I 8.6) - U dijalogu O aplikaciji Harmony-LPFR iz sistemske palete: naziv, verzija i kontakt proizvođača (U 1.2)
Serijski broj instance L-PFR-a je registracioni kod i JID aktivnog bezbednosnog elementa, na primer 89-0001-EKPDW8TH. Istu vrednost nosi svaki fiskalni odgovor kao MRC.
3. Komponente proizvoda#
Sve komponente se isporučuju jednim instalacionim paketom po operativnom sistemu (Harmony-LPFR-Setup-{verzija}.exe, Harmony-LPFR-{verzija}.dmg, harmony-lpfr_{verzija}_amd64.deb; I 2).
| Komponenta | Uloga |
|---|---|
| Fiskalni server | Prima zahteve ESIR-a (REST API, opciono Unix socket i fajl-bazirani interfejs), komunicira sa karticom, obračunava porez, čuva račune i revizorske pakete i razgovara sa SUF-om |
| Glavni prozor | Kartice Status, Računi, Logovi i Pomoć i dijalog Podešavanja (U 3) |
| Ikonica u sistemskoj paleti | Stanje spremnosti, meni i sistemska obaveštenja (U 2.1) |
Baza lpfr.db |
SQLite baza na disku računara: računi, revizorski paketi, komande i podešavanja (I 4.2) |
Fiskalni server i prozor rade u istom procesu. Zatvaranjem prozora aplikacija nastavlja da radi u sistemskoj paleti; potpisivanje staje tek izlazom iz aplikacije (U 2.3). Na računaru može da radi samo jedna instanca.
4. Povezivanje sa ESIR-om#
ESIR koristi standardni POS-to-SDC v3 HTTP interfejs:
http://localhost:8888/api/v3/
- Port je podesiv u Podešavanjima (podrazumevano
8888). Server podrazumevano sluša na svim mrežnim interfejsima, pa ESIR može da radi i na drugom računaru u lokalnoj mreži (I 8.4) - Podržani su endpointi za status, pažnju, parametre okruženja, verifikaciju PIN-a, fiskalizaciju i povraćaj rezultata po
RequestId(I 8.2) - Zahtevi i odgovori u JSON ili XML formatu (I 8.1)
- Opcioni API ključ: kada je postavljen, svaka kasa mora da šalje zaglavlje
Authorization: Bearer <ključ>(U 3.4, I 8.3) - Na Windows-u instaler dodaje pravilo fajervola koje pušta samo adrese iz lokalne podmreže (I 6.1)
- Pored HTTP-a: Unix socket za ESIR na istom računaru fajl-bazirani interfejs i SSE događaji u realnom vremenu (opisani u detaljnoj tehničkoj dokumentaciji)
- L-PFR radi preko svake mrežne veze operativnog sistema: Wi-Fi, Ethernet ili mobilni internet (I 1.3)
5. Tok fiskalizacije#
Za svaki primljeni zahtev Harmony-LPFR redom (I 8.7):
- Proverava da je kartica u čitaču (inače kod
1300) i poredi vreme uređaja sa vremenom poslednjeg potpisanog računa i odbija račun koji bi bio stariji od njega (U 10.2) - Proverava strukturu zahteva: tip računa i transakcije, obavezna polja, dužine, opsege i poreske oznake. Neispravan zahtev se odbija kodom iz tehničkog vodiča (I 8.9)
- Obračunava porez po poreskim oznakama svake stavke i po poreskim stopama koje trenutno važe, sa zaokruživanjem na četiri decimale (I 8.7)
- Bezbednosnom elementu šalje podatke računa sa trenutnim datumom i vremenom; potpisivanje je moguće samo sa verifikovanim PIN-om
- Prima broj računa i digitalni potpis od bezbednosnog elementa i proverava da odgovor kartice ponavlja ono što joj je poslato
- Pravi fiskalni isečak (žurnal), URL za verifikaciju i QR kod (U 6.4)
- Pravi šifrovani revizorski paket i upisuje ga u bazu pre nego što odgovor ode ESIR-u. Ako upis ne uspe, potpisan račun se ipak vraća, a svaki sledeći račun se odbija dok se paket ne sačuva (U 8.3)
- Vraća fiskalizovan račun ESIR-u
Ponovljen zahtev sa istim RequestId ne potpisuje račun ponovo, nego vraća originalni odgovor (I 8.8).
6. Bezbednosni element i digitalni sertifikati#
- Iz sertifikata na kartici čitaju se JID, PIB, naziv firme, lokacija (prodajno mesto), adresa, okrug, adresa TaxCore-a i rok važenja sertifikata (U 4.4)
- Privatni ključevi ostaju na kartici. Račun potpisuje SE aplet kartice
- Pred SUF-om se Harmony-LPFR predstavlja sertifikatom iz PKI apleta kartice, preko mTLS veze, i dobija token kojim pristupa veb servisima SUF-a (U 7.5)
- PIN se čuva samo u radnoj memoriji aplikacije. Ne upisuje se u bazu, fajl ni log. Briše se pri vađenju kartice i pri restartu aplikacije, pa se tada unosi ponovo (U 4.2, U 4.3)
- Digitalni potpis omogućava proveru integriteta i verodostojnosti računa. Za svaki račun se pravi jedinstveni URL za verifikaciju (U 6.4)
- Revizorski podaci se prave za sve vrste računa: promet, avans, kopija, obuka i predračun, za prodaju i refundaciju (U 6.3)
7. Rad bez interneta i trajno čuvanje podataka#
- Internet nije potreban za potpisivanje računa. Potrebni su kartica u čitaču, verifikovan PIN i bar jednom primljene poreske stope (U 8.1)
- Javni ključ Poreske uprave za šifrovanje paketa čita se sa kartice, pa i račun izdat bez interneta odmah dobija svoj revizorski paket
- Baza
lpfr.dbje na disku računara: podaci ostaju posle gašenja aplikacije ili računara i posle nestanka struje (U 8.3) - Jedan račun zauzima najviše oko 25 KB (zapis u bazi i revizorski paket). Na 1 GB slobodnog prostora stane najmanje oko 40.000 računa (U 8.2, I 1.4)
- Koliko računa može da se izda bez interneta ograničava Limit iznosa na bezbednosnom elementu. Od 75% limita aplikacija upozorava da je potrebna revizija (U 3.3)
- Kod
1100(„Skladište 90% popunjeno") znači da je disk na kome je baza 90% pun
8. Internet iščitavanje#
- Paket svakog novog računa ulazi u red za slanje, koji se šalje u pozadini od najstarijeg paketa, pa prvo odlaze ranije neposlati paketi (U 7.1)
- Slanje traje dok se red ne isprazni ili do prvog neuspeha; red se proverava svakog minuta. Novi računi se izdaju i dok slanje traje (U 7.1)
- Paket koji SUF potvrdi (status 4) briše se iz baze. Paket koji SUF odbije se ne briše i ne šalje ponovo (U 7.4)
- Dokaz o iščitavanju traži se automatski na svakih 15 minuta, kada su svi paketi poslati i od prethodnog traženja je izdat bar jedan račun. Između dva započinjanja dokaza prođe najmanje 5 minuta. Primljeni dokaz se odmah prosleđuje bezbednosnom elementu (U 7.2)
- Zamena kartice ne prekida iščitavanje: paketi ostaju u bazi i šalju se kada se ubaci kartica istog TaxCore okruženja, ili se predaju lokalnim iščitavanjem (U 4.3, U 7.1)
- Paket je šifrovan AES-256 ključem na način opisan u tehničkom vodiču (U 7.1)
9. Lokalno iščitavanje#
- Operater pokreće izvoz na USB ili SD karticu dugmetom Pokreni lokalni audit; aplikacija ga nudi i sama kada se ubaci USB uređaj (U 9.1)
- Na medijumu se za JID kartice pravi folder (ako ne postoji) sa fajlom
{JID}.arp(rezultat komande Begin Audit) i paketima{JID}-{JID}-{redni broj}.json(U 9.2) - Paketi imaju isti format kao za internet iščitavanje (U 9.2)
- Ako se na medijumu nalazi fajl komandi
{JID}.commands, komande se prvo izvršavaju redom, uključujući komandu za završetak iščitavanja, a rezultat se upisuje u{JID}.results(U 9.3) - Početak i kraj izvoza prikazuju se na kartici Status i kao sistemsko obaveštenje (U 9.1)
- Pakete predate na USB aplikacija briše tek kada stigne dokaz o iščitavanju koji ih obuhvata (U 9.3)
10. Komande SUF-a i fiskalna konfiguracija#
- Podržane komande: poreske stope sa vremenom početka primene, URL za verifikaciju, NTP server, konfiguracija, dokaz o iščitavanju i direktiva za SE aplet (U 7.3)
- Komande se proveravaju na svakih 5 minuta i stižu i u odgovorima na revizorski paket i zahtev za dokaz o iščitavanju
- Sve komande se izvršavaju jedna po jedna, redom prijema; SUF posle svake dobija potvrdu da li je uspela (U 7.3)
- Korisnik ne menja poreske stope, URL za verifikaciju ni adresu TaxCore-a. Ove vrednosti dolaze sa kartice i od SUF-a, a u Podešavanjima su samo za čitanje (U 3.4)
11. Sat realnog vremena#
- Vreme računa je sistemsko vreme računara ispravljeno za odstupanje koje izmeri NTP server. Sinhronizacija je pri pokretanju i na svakih 6 sati, a posle neuspeha ponovo za 5 minuta (U 10.1)
- Podrazumevani NTP server je
pool.ntp.org; Poreska uprava ga menja komandom - Račun nikad nije stariji od prethodnog: račun raniji više od 10 sekundi se odbija kodom
2240(U 10.2) - Kada sinhronizacija ne radi duže od 48 sati ili sat računara odstupa više od minuta, na kartici Status pojavljuje se crveno upozorenje
12. Izveštaji, status i logovi#
- Kartica Status tekstualno prikazuje da li je sistem spreman i, ako nije, zbog čega: statusni kodovi i oznake stanja za karticu, uređaj i reviziju (U 3)
- Presek stanja, periodični izveštaj i dnevni zaključak, u aplikaciji i preko API-ja (U 6.5, I 8.2)
- Logovi: jedan tekstualni fajl po danu (
lpfr-GGGG-MM-DD.log), svaki red sa nivoom i lokalnim datumom i vremenom, hronološki. Svaki statusni kod i kod greške iz tehničkog vodiča upisuje se u log (U 11.1) - Logovi se čuvaju najmanje 30 dana, u zasebnom folderu, odvojeno od baze sa računima i revizorskim paketima
- Dugme Izvezi logove kopira logove na USB ili SD karticu u čitljivom tekstualnom obliku (U 11.2)
13. Licenciranje#
- Za produkcionu karticu potrebna je licenca odobrena u Harmony-ju. Licenca se ne unosi ručno: Harmony-LPFR prijavljuje karticu, a administrator licencu odobrava u Harmony panelu (U 5.2)
- Licenca je vezana za karticu (JID) i čuva se u bezbednom skladištu operativnog sistema (U 5.2)
- Test i sandbox kartice Poreske uprave rade u potpunosti bez licence i bez naknade (U 5.1)
- Licenca odlučuje samo da li je potpisivanje dozvoljeno. Ne briše i ne menja potpisane račune, revizorske pakete ni iščitavanje
14. Zabranjene funkcije#
Harmony-LPFR:
- ne potpisuje račun bez kartice u čitaču i verifikovanog PIN-a (kod
1300, odnosno1500) - ne pamti PIN van radne memorije
- ne prihvata poresku oznaku koja ne postoji ili ne važi u trenutku izdavanja računa (kod
2310) - ne dozvoljava promenu parametara komunikacionog protokola sa produkcionom karticom: adresa TaxCore-a i URL za verifikaciju važe sa kartice i od SUF-a, a NTP server od SUF-a (U 13.2)
- ne dozvoljava ručnu promenu poreskih stopa
- ne potpisuje račun sa vremenom ranijim od prethodnog računa
- ne briše revizorski paket pre nego što ga SUF potvrdi ili stigne dokaz o iščitavanju koji ga obuhvata, a paket koji SUF odbije ne briše
- ne potpisuje isti zahtev dva puta: ponovljen
RequestIdvraća originalni račun - ne vraća ESIR-u kodove grešaka mimo tehničkog vodiča; za greške koje vodič ne pokriva koristi kodove navedene u uputstvu (U 12.2, I 8.9)
- ne izvozi i ne kopira privatni ključ kartice
Detaljan pregled svih regulatornih zahteva sa referencama nalazi se u Korisničkom uputstvu, poglavlja 13 i 14.
15. Sistemski zahtevi i instalacija#
| Stavka | Zahtev |
|---|---|
| Windows | 10/11, 64-bit |
| macOS | 12 (Monterey) ili noviji |
| Linux | Ubuntu 20.04+ / Debian 11+, pcscd i OpenSC |
| Čitač | PC/SC USB čitač pametnih kartica (provereno sa HID Global OMNIKEY 3x21) |
| Kartica | Bezbednosni element Poreske uprave sa SE i PKI apletom |
| Mreža | Izlazno HTTPS 443 (TaxCore), NTP 123/UDP, DNS; ulazno TCP 8888 za ESIR; rad bez interneta je podržan |
| Prostor | Najviše oko 25 KB po računu |
Instalaciju radi ovlašćeni tehničar ili korisnik uz administratorska prava. Instalacioni fajlovi i SHA-256 nalaze se na https://harmonypos.io/sr/products/lpfr#download (I 2). Proizvod nije klaud servis: svi fiskalni podaci su na računaru obveznika.
16. Podrška i prateća dokumentacija#
- Korisničko uputstvo — rad sa karticom, podešavanja, svakodnevni rad, internet i lokalno iščitavanje: https://harmonypos.io/sr/products/lpfr/korisnicko-uputstvo
- Uputstvo za instalaciju i povezivanje sa ESIR-om — instalacija, dozvole, povezivanje ESIR-a i provera instalacije: https://harmonypos.io/sr/products/lpfr/uputstvo-za-instalaciju
- Detaljna tehnička dokumentacija (sva podešavanja, REST API, SSE, fajl-bazirani interfejs): https://harmonypos.io/sr/products/lpfr/uputstvo i https://harmonypos.io/sr/products/lpfr/instalacija
- Tehnička podrška: [email protected]
- Veb sajt: https://harmonypos.io
Autorska prava#
© 2026 One Click 2025, Novi Pazar. Sva prava zadržana.
Dokument smete da preuzmete, odštampate i prosledite u neizmenjenom obliku. Za svako drugo umnožavanje, izmenu ili objavljivanje potrebna je pismena saglasnost One Click 2025.