1 Informacije o proizvođaču

Naziv firme: Dejan Velimirović Agencija za računarsko programiranje DVSoftware Bela Crkva

Sedište firme: Proleterska 46, 26340 Bela Crkva

Kontakt telefon: 060 1755 733

E-Mail: info@dvsoftware.rs

Web sajt: https://dvsoftware.rs

2 Opis proizvoda

StoreBuddy L-PFR je softverski lokalni procesor fiskalnih računa. Napravljen je da radi pod Windows, Linux i MacOS operativnim sistemima. Implementiran je prema specifikacijama definisanim u tehničkom vodiču Poreske uprave Republike Srbije.

StoreBuddy L-PFR se pokreće i vrši funkciju kao pozadinski proces na računaru, i komunicira sa akreditovanom ESIR aplikacijom putem HTTP JSON protokola koji je definisan u tehničkom vodiču. Korisniku je takođe dostupan i Web Interfejs za konfigurisanje, status, unos PIN koda i lokalno iščitavanje.

3 Bezbednosni zahtevi

Korisnik je u obavezi da računar na kome je instaliran StoreBuddy L-PFR, redovno održava i ažurira operativni sistem, kao i da obezbedi zaštitu računara od neovlašćenog pristupa (npr. antivirus, firewall, lozinka). DVSoftware nije odgovoran za gubitak podataka ili tehničku neispravnost opreme usled nestručnog korišćenja i održavanja. Navedeno se odnosi na sam računar kao i na periferije koje su u upotrebi tokom korišćenja.

4 Karakteristike StoreBuddy L-PFR

4.1 Osnovne funkcije

  • Generiše fiskalni račun bez internet konekcije
  • Oslanja se na bezbednosni element za potpisivanje računa i čuvanje internih podataka
  • Potvrđuje svoj identitet validnim digitalnim sertifikatom (koji je skladišten u PKI apletu bezbednosnog elementa) kada zahteva token za pristup API servisu SUF-a
  • Koristi token kada komunicira sa SUF-ovim veb servisima
  • Obrađuje sve komande pristigle od strane SUF-a
  • Može da skladišti, onoliko fiskalnih računa u internoj memoriji, dok radi bez interneta, koliko dozvoljava kapacitet diska na računaru gde je instaliran. Jedan fiskalni račun zauzima oko 8kb
  • Napravljen je tako da može da registruje fiskalne račune dok istovremeno šalje podatke za iščitavanje ka SUF-u
  • Dobija informaciju o poreskom identifikacionom broju (PIB) sa bezbednosnog elementa
  • Dobija informaciju o jedinstvenom identifikatoru (JID) sa bezbednosnog elementa
  • Dobija informaciju o obvezniku sa bezbednosnog elementa
  • Dobija informaciju o imenu prodajnog mesta sa bezbednosnog elementa
  • Dobija informaciju o adresi sa bezbednosnog elementa
  • Dobija informaciju o opštini sa bezbednosnog elementa
  • Preko svog korisničkog interfejsa prikazuje trenutni operativni status - da li je funkcionalan ili nije
  • L-PFR memorija je takva da joj nije potrebno energetsko napajanje da bi sačuvala podatke
  • Računa porez na osnovu iznosa i labele po artiklu poslatih sa ESIR-a, u sklopu zahteva za fiskalizaciju računa
  • Dobija informacije o poreskim grupama (automatski ili manuelno) preko komande “Tax Rates Command” tokom procesa inicijalizacije ili ako su poreske stope promenjene, ova komanda sadrži datum i vreme od kada će nove poreske stope biti primenjene
  • Ne briše pakete za iščitavanje iz memorije, niti ih zamenjuje novim paketima u memoriji, osim ako to nije odobreno dobijenim “Dokazom o iščitavanju” (DI)
  • Dostavlja bezbednosnom elementu “Dokaz o iščitavanju”, generisan od strane SUF-a, odmah kada primi taj podatak
  • Funkcionisanje L-PFR-a ne usporava izdavanje računa na strani ESIR-a
  • Promenom pametne kartice L-PFR ne obustavlja internet ili lokalno iščitavanje podataka iz interne memorije
  • Formatiranje fiskalnih podataka koji se dostavljaju se izvršava u skladu sa Tehničkim vodičem
  • Obrađuje sve naredbe primljene od SUF-a uzastopnim redosledom

4.2 Sat realnog vremena

  • Realno vreme L-PFR-a ne odstupa više od 3 minuta po godini
  • Ima mogućnost ažuriranja URL-a vremenskog servera koji se koristi za sinhronizaciju sata
  • Pruža adekvatnu kontrolu vremenskog odstupanja - nije moguće izdati račun mlađi od prethodno izdatog. Svakih sat vremena se vrši sinhronizacija vremena sa NTP serverom koji je određen od strane SUF-a, i ukoliko postoji odstupanje u odnosu na lokalno vreme, interni sat L-PFR-a se koriguje.

4.3 Izveštaji

  • Čuva izveštaje o svim greškama kao što je opisano u tehničkom vodiču
  • Beleži i čuva svaku grešku hronološki u lokalnom vremenu (datum, sat, minut)
  • Izveštajima o greškama je moguće pristupiti iz kontekstualnog menija.
  • Čuva izveštaj o greškama koji pokriva minimalno poslednjih trideset dana
  • Izveštaj o greškama ne utiče na deo memorije koji je eksplicitno odvojen za skladištenje potpisanih fiskalnih računa

4.4 Iščitavanje

  • Podržava dva načina iščitavanja: lokalno iščitavanje i internet iščitavanje
  • Svi podaci su enkriptovani koristeći AES-256 sa enkripcionim ključem kao što je navedeno u Tehničkom vodiču
  • Koristi isti format podataka za lokalno i internet iščitavanje
  • Ukoliko je neophodno iščitavanje, L-PFR tu informaciju prikazuje u polju auditRequired, kao što je opisano u odeljku tehničkog vodiča “Get Status Command”
  • Komunicira sa SUF-om na način koji je opisan u Tehničkom vodiču
  • JSON fajl sa komandama se naziva po vrednosti JID-a bezbednosnog elementa, kao što je opisano u odeljku tehničkog vodiča “E-SDC Executes Commands Received via SD Card or USB Drive”
  • Skladišti podatke za iščitavanje lokalno pre nego što ESIR-u vrati odgovor sa fiskalizovanim podacima

4.4.1 Lokalno iščitavanje

  • Na zahtev korisnika šalje podatke ka jedinici spoljne memorije (USB fleš, SD kartica…) u formatu koji je definisan u tehničkom vodiču, a ukoliko spoljna memorija nije dostupna, korisnik može odabrati bilo koji direktorijum na računaru
  • Svi podaci se skladište na jedinici spoljne memorije, u folderu nazvanom po vrednosti JID-a bezbednosnog elementa, kao što je opisano u odeljku tehničkog vodiča “E-SDC Stores Audit Files on SD Card or USB Drive”. L-PFR kreira te foldere ukoliko ne postoje.
  • Folder nazvan po vrednosti JID-a bezbednosnog elementa se sastoji od {JID}.arp fajla koji sadrži rezultate poziva Begin Audit APDU komande, kao i jednog ili više paketa za iščitavanje, čiji nazivi koriste konvenciju {JID}-{JID}-{Redni broj}.json
  • Prikazuje obaveštenja kada se lokalno iščitavanje započne i kada se završi
  • Čita i primenjuje komandu za završetak iščitavanja ukoliko se ista nalazi na jedinici spoljne memorije

4.4.2 Internet iščitavanje

  • Internet iščitavanje je implementirano po specifikaciji definisanoj u tehničkom vodiču
  • Kada započne internet iščitavanje, L-PFR prvo šalje prethodno neposlate pakete za iščitavanje
  • Neprekidno šalje pakete za iščitavanje kad su paketi i internet dostupni
  • Čuva pakete za iščitavanje lokalno, sve dok se ne dobije Dokaz o iščitavanju (DI) od SUF-a
  • Započinje Dokaz o iščitavanju (DI) periodično. Period između započinjanja dva dokaza o iščitavanju nije kraći od 5 minuta

4.5 Čuvanje paketa za iščitavanje i procesuiranje fiskalnih računa

  • Prima i procesuira zahtev za fiskalizaciju računa od strane ESIR-a
  • Verifikuje strukturu zahteva poslatog od strane ESIR
  • Izračunava porez na osnovu trenutno aktivnih poreskih stopa
  • Zaokružuje sve sume na 4 decimale koristeći metodu “zaokruživanje na veći broj” (half-round up)
  • Šalje podatke za fiskalizaciju računa bezbednosnom elementu, sa trenutnim datumom i vremenom, kao i PIN kodom (ISO/IEC 7816-4)
  • Prima račun potpisan od strane bezbednosnog elementa
  • Kreira žurnal fajl i generiše URL za proveru ispravnosti (verifikaciju) računa
  • Šalje fiskalizovane podatke ESIR-u, u sklopu odgovora na zahtev za fiskalizaciju računa
  • Prikazuje greške na način propisan u tehničkom vodiču, npr. greška 1300 “Pametna kartica nije prisutna” kada pametna kartica nije prisutna

4.6 Digitalni sertifikati

  • Šalje podatke za iščitavanje SUF-u, u skladu sa tehničkim vodičem, za svaki račun vrste: P-Promet, A-Avans, K-Kopija, O-Obuka, R-Predračun
  • Kreira jedinstven URL za generisanje QR koda
  • Digitalni potpis računa omogućava verifikovanje integriteta podataka računa i verodostojnost u skladu sa tehničkim vodičem

4.7 Zabranjene funkcije

  • U slučaju greške L-PFR, ne šalje bilo koji drugi podatak osim šifre greške definisane u šifarniku grešaka u sklopu tehničkog vodiča. U slučaju da vrati grešku koja nije definisana u šifarniku, biće prihvaćena samo ako je definisana u korisničkoj dokumentaciji L-PFR-a
  • Ne prihvata i ne procesuira zahtev za fiskalizaciju računa ako sadrži nepostojeću poresku stopu ili stopu koja nije bila aktivna ili koja nije bila aktivna u trenutku izdavanja referenciranog dokumenta
  • Ne dozvoljava da se promene parametri u komunikacionom protokolu, u skladu sa tehničkim vodičem
  • Ne skladišti PIN kod, osim u radnoj memoriji. Kada se L-PFR restartuje, operater/kasir mora ponovo da unese PIN kod
  • Ne odgovara na zahtev za račun iz ESIR-a ako nije u direktnoj vezi sa bezbednosnim elementom

5 Zahtevi

Zahtevi za funkcionisanje StoreBuddy L-PFR-a su sledeći:

  • računar sa Windows, Linux ili MacOS operativnim sistemom
  • čitač pametnih kartica
  • licenca za rad

5.1 Računar i operativni sistem

5.1.1 Hardverski zahtevi

StoreBuddy L-PFR je razvijen sa posebnom pažnjom, tako da ima izuzetno nisku hardversku zahtevnost, i kao takav neće stvarati smetnje po rad ostalih aplikacija koje koristite na računaru.

Procesor: 700 MHz, x86, amd64 ili ARM arhitektura

Prostor na disku: minimum 500 mb za aplikaciju i potrebne biblioteke

RAM memorija: 128 mb

5.1.2 Operativni sistem

Microsoft Windows: Windows 7 ili noviji

Linux: Testirano na Ubuntu 20.04

MacOS: Mojave 10.14 ili noviji

5.2 Čitač pametnih kartica

Potrebno je obezbediti i povezati čitač pametnih kartica sa računarom, kako bi StoreBuddy L-PFR mogao da koristi bezbednosni element koji se nalazi na pametnoj kartici.

Čitač pametnih kartica

Preporučujemo Thales (Gemalto) čitače kartica pošto je StoreBuddy L-PFR testiran na nekoliko modela ovog proizvođača. Upravljački program (driver) nije potreban ni za jedan operativni sistem.

5.3 Licenca

Ukoliko je dostupna internet veza, prilikom prvog ubacivanja bezbednosnog elementa će Vam se dodeliti licenca u trajanju od 14 dana, i ona predstavlja probni period. Nakon isteka probnog perioda, možete odlučiti da li želite da nastavi korišćenje, u kom slučaju će biti izrađena faktura za korišćenje na osnovou podataka dobijenih sa bezbednosnog elementa i podataka unetih prilikom registracije.

Ukoliko odlučite da kupite licencu pre isteka probnog perioda, njeno korišćenje će početi nakon isteka probnog perioda.

Moguće je mesečno i godišnje plaćanje. Za godišnju pretplatu je obezbeđen popust.

Ukoliko internet veza nije dostupna, licencu je moguće uneti ručno, kopiranjem fajla sa licencom u direktorijum sa podacima StoreBuddy L-PFR-a (videti sekciju 11). U ovom slučaju preporučujemo godišnju pretplatu, kako biste izbegli često ručno unošenje licence.

Za veća preduzeća, postoji mogućnost za trajnom licencom pod posebnim uslovima. Obratite nam se na info@dvsoftware.rs ukoliko želite trajnu licencu.

6 Instalacija

Paket za instalaciju StoreBuddy L-PFR-a za Vaš operativni sistem možete preuzeti sa zvanične prezentacije StoreBuddy L-PFR-a.

6.1 Windows

Pokrenite instalaciju StoreBuddy L-PFR-a duplim klikom na ikonicu:

StoreBuddy L-PFR Setup

Otvoriće Vam se čarobnjak za instalaciju StoreBuddy L-PFR-a:

StoreBuddy L-PFR Instalacija

Kliknite na dugme Napred kako biste prešli na sledeći korak:

StoreBuddy L-PFR Instalacija

Odaberite destinaciju za instalaciju i kliknite na dugme Instaliraj

StoreBuddy L-PFR Instalacija

Odaberite gde će se kreirati prečice i kliknite na dugme Napred

StoreBuddy L-PFR Instalacija

Kliknite na dugme Kraj, i instalacija StoreBuddy L-PFR-a je gotova.

6.2 Linux

StoreBuddy L-PFR se na Linux operativnom sistemu može pokrenuti u grafičkom i konzolnom režimu. Konzolni režim je predviđen za korišćenje na serveru.

Napomena

Trenutno je testiran samo Ubuntu 20.04 Focal Fossa. Lista podržanih distribucija će biti redovno dopunjavana.

Potrebno je instalirati sledeće biblioteke: pcscd, libgtk-3-0 i libayatana-appindicator3

apt install pcscd libgtk-3-0 libayatana-appindicator3

Napravite direktorijum u koji ćete raspakovati StoreBuddy L-PFR, na primer lpfr

mkdir lpfr

Raspakujte arhivu koju ste preuzeli

# Na amd64 arhitekturi
tar xvf StoreBuddyLPFR_1.0.22_amd64.tar.gz -C lpfr

# Na arm64 arhitekturi
tar xvf StoreBuddyLPFR_1.0.22_arm64.tar.gz -C lpfr

Pokrenite StoreBuddy L-PFR

cd lpfr
./lpfr

6.3 MacOS

Otvorite DMG fajl sa instalacijom StoreBuddy L-PFR-a koji ste preuzeli:

Installer DMG

Pojaviće se sledeći prozor:

Installer DMG

Instalacija StoreBuddy L-PFR-a se obavlja jednostavnim prevlačenjem aplikacije u Applications folder na računaru.

Prilikom prvog pokretanja, potrebno je da prihvatite otvaranje aplikacije preuzete sa interneta:

Prvo pokretanje

7 Inicijalizacija LPFR-a

Pre upotrebe, i za svaki novi bezbednosni element, L-PFR je potrebno inicijalizovati.

Inicijalizacija će u konfiguraciji L-PFR-a sačuvati poreske stope, server za sinhronizaciju vremena, URL za verifikaciju računa i URL do SUF servisa.

Ukoliko je dostupna internet veza, prilikom prvog unosa PIN koda, StoreBuddy L-PFR će preuzeti i izvršiti komande za inicijalizaciju sa SUF-a, i nakon izvršenja svake komande obavestiti SUF o uspešnom ili neuspešnom izvršavanju.

Ukoliko internet veza nije dostupna, pratite korake opisane u ovom uputstvu u sekciji 8.7.3 kako biste ručno inicijalizovali L-PFR.

8 Korišćenje StoreBuddy L-PFR-a

Svim funkcijama StoreBuddy L-PFR-a se pristupa putem kontekstualnog menija na ikonici koja se nalazi u statusnoj traci. Ova ikonica se može razlikovati u zavisnosti od operativnog sistema.

Većina stavki u kontekstualnom meniju će odabranu funkcionalnost otvorti u Vašem podrazumevanom web pregledaču.

Kontekstualni meni

Napomena

L-PFR nije moguće koristiti za izdavanje fiskalnih računa sve dok inicijalizacija nije uspešno obavljena.

8.1 Obaveštenja

StoreBuddy L-PFR obaveštava korisnika o statusu na dva načina. Putem ikonice u statusnoj traci i obaveštenja koja pruža operativni sistem.

8.1.1 Statusna traka

Ikonica u statusnoj traci će se menjati u zavisnosti od statusa StoreBuddy L-PFR-a i ona može biti:

Ikonica Opis
Rad se odvija neometano
Čitač kartica nije prepoznat ili bezbednosni element nije umetnut
Potreban je unos PIN koda
U toku je izvršavanje komandi
Disk je pun. Izdavanje računa nije moguće dok se ne oslobodi prostor na disku
Potrebno je iščitavanje. Ukoliko je internet veza dostupna, iščitavanje će automatski biti pokrenuto
U toku je otpremanje paketa za iščitavanje

8.1.2 Sistemska obaveštenja

Obaveštenja će se pojavljivati u nekom od uglova ekrana, ukoliko su omogućena. U nastavku je spisak svih obaveštenja:

Bezbednosni element je pronađen.
Bezbednosni element je otključan.
Bezbednosni element još uvek nije inicijalizovan.
Bezbednosni element je inicijalizovan i spreman za rad.
Čitač kartica nije pronađen. Uključite čitač kartica.
Bezbednosni element nije pronađen. Umetnite bezbednosni element u čitač kartica.
Bezbednosni element je uklonjen. Umetnite bezbednosni element u čitač kartica.
Dogodila se greška u komunikaciji sa bezbednosnim elementom.
Dogodila se greška prilikom čitanja sertifikata sa bezbednosnog elementa.
Ubačena kartica nije bezbednosni element nego npr. lična karta ili kreditna kartica.
Bezbednosni element je istekao ili još uvek nije aktivan.
Transfer paketa za lokalno iščitavanje je pokrenut.
Transfer paketa za lokalno iščitavanje je završen.
Izvršavanje komandi je pokrenuto.
Izvršavanje komandi je završeno.
Potrebno je iščitavanje zbog dostizanja limita bezbednosnog elementa.
Potrebno je iščitavanje zbog malo prostora na disku.
Disk je pun. Nije moguće dalje izdavanje računa dok se ne oslobodi prostor na disku.
API server nije mogao da se pokrene jer je konfigurisan port već zauzet.

Napomena

Ukoliko su obaveštenja na Vašem operativnom sistemu isključena, StoreBuddy L-PFR neće biti u mogućnosti da ih šalje, i možda nećete znati ukoliko postoji neki problem. Savetujemo da omogućite obaveštenja.

macOS

Na macOS operativnom sistemu je potrebno dozvoliti slanje obaveštenja. StoreBuddy L-PFR će prilikom prvog pokretanja zatražiti dozvolu. Ukoliko ste odbili, uvek možete promeniti ovo podešavanje iz System Preferences -> Notifications.

8.1.3 Konzolni režim

Ukoliko je StoreBuddy L-PFR pokrenut u konzolnom režimu, sve poruke ćete videti u standardnom izlazu aplikacije, kao i u izveštaju o radu (log-u).

8.2 O StoreBuddy L-PFR

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica sa osnovnim informacijama o aplikaciji, na kojoj možete videti instaliranu verziju aplikacije, kontakt podatke proizvođača i koje su korišćene komponente otvorenog koda.

O aplikaciji

8.3 Unos PIN koda

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica za unos PIN koda.

Unos PIN koda

Unesite Vaš PIN kod bezbednosnog elementa u prazno polje i pritisnite Enter taster na tastaturi ili dugme Pošalji.

Dobićete obaveštenje o ispravnosti PIN koda na neki od sledeća 2 načina:

Pogrešan PIN kod
Ispravan PIN kod

Pažnja

Uverite se da unosite tačan PIN kod bezbednosnog elementa. Uzastopnim unosom 5 pogrešnih PIN kodova ćete trajno blokirati bezbednosni element, i neće biti moguće njegovo dalje korišćenje.

8.4 Status

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica sa statusom L-PFR-a.

Status

8.5 Podešavanja

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica sa podešavanjima L-PFR-a.

Status

Opis svih parametara:

Naziv Podrazumevana vrednost Opis
L-PFR API Porešavanja L-PFR API-ja
Slušanje na IP adresi 127.0.0.1 IP adresa na kojoj će StoreBuddy L-PFR API slušati
Slušanje na portu 8888 Port na kome će StoreBuddy L-PFR API slušati
Ostalo Ostala podešavanja
Broj sačuvanih privremenih fajlova 100 StoreBuddy L-PFR čuva zahteve i odgovore bezbednosnog elementa i ESIR-a u svrhe otkrivanja i rešavanja problema

8.6 Internet iščitavanje

Ukoliko je internet veza dostupna, StoreBuddy L-PFR će automatski slati fiskalne račune i zahtev za iščitavanje na server Poreske uprave. Da bi StoreBuddy L-PFR obavljao internet iščitavanje, potrebno je da bezbednosni element bude umetnut u čitač kartica i da bude unet PIN kod.

Prilikom svakog izdavanja fiskalnog računa, StoreBuddy L-PFR šalje račun na server Poreske uprave, a na svakih 10 minuta šalje i zahtev za iščitavanje. Kada StoreBuddy L-PFR primi dokaz o iščitavanju, odmah ga prosleđuje bezbednosnom elementu.

8.7 Lokalno iščitavanje

Ukoliko na računaru na kome je instaliran StoreBuddy L-PFR nije dostupna internet veza, obaveza poreskog obveznika je da u roku od 5 dana od izdavanja računa izvrši lokalno iščitavanje i putem SUF portala dostavi pakete za iščitavanje.

8.7.1 Umetanje spoljne jedinice memorije

StoreBuddy L-PFR će detektovati novu spoljnu jedinicu memorije (USB fleš, SD Karticu…), i automatski započeti transfer paketa za iščitavanje ili izvršiti komande ukoliko su pronađene na disku.

8.7.2 Transfer paketa za iščitavanje

Kako biste započeli lokalno iščitavanje, odaberite ovu stavku kontekstualnog menija, ili umetnite USB fleš ili SD karticu:

Transfer paketa za iščitavanje

Ukoliko je umetnut USB fleš u USB port na računaru, i na USB fleš disku postoji samo jedna particija, biće započeto lokalno iščitavanje.

Ukoliko na USB fleš disku postoji više particija, pojaviće se prozor za odabir particije:

Odabir particije

Ukoliko USB fleš disk nije umetnut, ili nije prepoznat, otvoriće se dijalog za izbor direktorijuma u koji želite da iskopirate pakete za lokalno iščitavanje.

Nakon što je završeno lokalno iščitavanje, na USB fleš disku ili u direktorijumu koji ste odabrali će se naći folder čiji je naziv JID bezbednosnog elementa, u kome se nalaze paketi za iščitavanje u formatu {JID}-{JID}-{Redni broj računa}.json i fajl {JID}.arp.

Sadržaj diska

Zatim se ulogujte na SUF portal, i u meniju Lokalno iščitavanje, odaberite stavku Otpremi račune.

Otpremi račune

Nakon ovoga će Vam se otvoriti stranica sa sledećim sadržajem:

Lokalno iščitavanje na SUF portalu

Kliknite na Izaberi datoteke i otvoriće Vam se dijalog za odabir fajlova. Izaberite fajlove sa USB fleš diska ili druge lokacije na kojoj su sačuvani paketi za iščitavanje.

Odabir fajlova

Ukoliko je proces završen kako treba, pojaviće Vam se sledeća poruka:

Uspešno lokalno iščitavanje

Napomena

Ukoliko uopšte nemate pristup internetu, možete odneti USB fleš ili SD karticu u Poresku upravu gde će službenik obaviti ove korake za Vas.

8.7.3 Izvršavanje komandi

5 - 10 minuta nakon otpremanja računa, potrebno je da preuzmete komande sa SUF-a koje ćete izvršiti na L-PFR-u. Kako biste preuzeli komande, na SUF portalu, u meniju Lokalno iščitavanje, odaberite stavku Preuzmi komande.

Preuzmi komande

Otvoriće Vam se stranica sa sledećim sadržajem:

Preuzimanje komandi na SUF portalu

Potrebno je da upišete JID bezbednosnog elementa u polje namenjeno za to i da kliknete na dugme Naredna. Prikazaće Vam se informacije o poslovnom prostoru. Još jednom kliknite na dugme Naredna ukoliko su informacije o poslovnom prostoru u redu. Nakon toga će Vam se otvoriti sledeći ekran:

Preuzimanje komandi

Napomena

Ukoliko se na stranici za preuzimanje komandi ne pojavljuje dugme Neizvršene komande, znači da SUF još uvek nije pripremio komande za Vaš bezbednosni element. Ukoliko preuzimate komande za inicijalizaciju, kliknite na Komande za inicijalizaciju

Na Vašem USB flešu ili SD kartici će se naći fajl {JID}.commands.

{JID}.commands fajl

Kada ubacite ovaj disk u računar na kome je instaliran StoreBuddy L-PFR, bićete upitani da li želite da pokrenete lokalno iščitavanje. Ukoliko na disku postoji fajl sa komandama, pokrenuće se izvršavanje komandi.

Izvršavanje komandi

Ukoliko želite da pokrenete izvršavanje komandi bez umetanje USB fleša ili SD kartice, možete to uraditi iz kontekstualnog menija:

Izvršavanje komandi

Nakon što su komande uspešno izvršene, na USB flešu ili SD kartici će se pojaviti fajl {JID}.results.

{JID}.commands fajl

Zatim na SUF portalu, iz menija Lokalno iščitavanje, odaberite stavku Otpremi status komandi.

Otpremi status komandi

Kliknite na polje za otpremanje:

Otpremanje statusa komandi

Odaberite {JID}.results fajl:

Otpremanje statusa komandi

SUF portal će Vas obavestiti da je otpremanje statusa komandi završeno

Završeno otpremanje statusa komandi

Napomena

Ukoliko uopšte nemate pristup internetu, možete odneti USB fleš ili SD karticu u Poresku upravu gde će službenik obaviti ove korake za Vas.

8.7.4 Lokalno iščitavanje u konzolnom režimu

Ukoliko StoreBuddy L-PFR pokrećete na serveru u konzolnom režimu, neće Vam biti dostupan grafički interfejs za pokretanje lokalnog iščitavanja.

Umetanjem USB fleša će se automatski pokrenuti lokalno išćitavanje ukoliko na USB flešu postoji samo jedna particija. Status lokalnog iščitavanja možete pratiti u izveštaju o radu aplikacije (log).

Lokalno iščitavanje se može pokrenuti i slanjem USR1 signala aplikaciji:

killall -USR1 lpfr

U ovom slučaju će se podaci za lokalno iščitavanje sačuvati u, ili učitavati iz audit direktorijuma koji se nalazi u direktorijumu sa podacima StoreBuddy L-PFR (videti sekciju 11)

8.8 Pomoć

8.8.1 Korisničko uputstvo

Uputstvo koje upravo čitate.

8.8.2 API dokumentacija

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica sa API dokumentacijom u Swagger-u.

Swagger

8.8.3 Izveštaji o radu

Odabirom ove stavke kontekstualnog menija, otvoriće se direktorijum sa izveštajima o radu

8.9 Licenca

Odabirom ove stavke kontekstualnog menija, otvoriće Vam se stranica sa detaljima Vaše licence.

Licenca

Ovde možete videti do kada važi Vaša licenca, da li sa licencom postoji neki problem, ili se možete registrovati nakon isteka ili u toku probnog perioda.

Prilikom registracije će biti potrebno da se odlučite za tip pretplate i da unesete osnovne podatke o Vašem preduzeću, kako bismo mogli da Vam izdamo fakturu.

8.10 Izlaz

Odabirom ove stavke kontekstualnog menija, zatvorićete StoreBuddy L-PFR, i više nećete biti u mogućnosti da izdajete račune iz ESIR aplikacije.

9 Web interfejs

Pored pristupa kroz kontekstualni meni, Web interfejsu je moguće pristupiti direktno iz Web pregledača i to putem sledećih linkova:

URL Opis
http://127.0.0.1:8888/app/about O StoreBuddy L-PFR
http://127.0.0.1:8888/app/pin Unos PIN koda
http://127.0.0.1:8888/app/status Status
http://127.0.0.1:8888/app/configuration Podešavanja
http://127.0.0.1:8888/app/license Licenca

Napomena

Ukoliko ste konfigurisali drugi IP i port, zamenite ih u gore navedenim linkovima.

10 Povezivanje sa ESIR aplikacijom

ESIR se povezuje sa StoreBuddy L-PFR-om putem JSON REST API-ja koji je definisan u tehničkom vodiču.

U nastavku se nalazi spisak endpoint-a:

HTTP Metoda URL Opis
GET http://127.0.0.1:8888/api/v3/attention Provera da li je L-PFR dostupan
POST http://127.0.0.1:8888/api/v3/pin Provera PIN koda unetog od strane prodavca na ESIR-u
GET http://127.0.0.1:8888/api/v3/status Provera statusa L-PFR-a
GET http://127.0.0.1:8888/api/v3/environment-parameters Informacije i parametri SUF okruženja
POST http://127.0.0.1:8888/api/v3/invoices Kreiranje novog računa
GET http://127.0.0.1:8888/api/v3/invoices/{requestId} Preuzimanje poslednjeg računa na osnovou njegovog requestId-a definisanog od strane ESIR aplikacije

Napomena

Ukoliko ste konfigurisali drugi IP i port, zamenite ih u gore navedenim linkovima.

11 Podaci koje skladišti StoreBuddy L-PFR

StoreBuddy L-PFR tokom svog rada, na disku skladišti podatke u sledećem direktorijumu:

Operativni sistem Putanja
Windows C:\Users\%USER%\AppData\Roaming\storebuddy\lpfr\
Linux $HOME/.config/storebuddy/lpfr/
macOS $HOME/Library/Application Support/storebuddy/

Unutar tog direktorijuma se nalaze sledeći podaci:

Putanja Opis
config.json Konfiguracija StoreBuddy L-PFR-a
db.sqlite3 Baza podataka sa informacijama o paketima za iščitavanje
audit Direktorijum za lokalno iščitavanje kada spoljna jedinica memorije nije dostupna u konzolnom režimu
logs Direktorijum sa izveštajima o radu StoreBuddy L-PFR-a. Izveštaji se čuvaju 30 dana
data Direktorijum sa podacima za svaki bezbednosni element
data/JID Direktorijum sa podacima za jedan bezbednosni element
data/JID/se Direktorijum sa privremenim podacima koji su poslati ka i primljeni od bezbednosnog elementa
data/JID/pos Direktorijum sa privremenim podacima koji su poslati ka i primljeni od ESIR-a
data/JID/audit/data Direktorijum sa privremenim podacima koji su sadržani u paketima za iščitavanje
data/JID/audit/packages Direktorijum sa pripremljenim paketima za iščitavanje
license.pem Licenca za korišćenje

Pažnja

Savetujemo da ne vršite ručno izmenu bilo kog od navedenih fajlova, u suprotnom ne možemo garantovati za pravilan rad StoreBuddy L-PFR-a.

12 Periodično izvršavane operacije

StoreBuddy L-PFR periodično izvršava sledeće operacije:

Operacija Učestalost
Zahtev za iščitavanje Svakih 10 minuta
Slanje neposlatih paketa za iščitavanje Svakih 5 minuta
Provera slobodnog prostora na disku Svakih 5 minuta
Sinhronizacija vremena Svakih sat vremena
Javljanje SUF-u i preuzimanje komandi Svaki minut
Obnavljanje i provera licence Jednom dnevno
Uklanjanje privremenih fajlova Svakih sat vremena

13 Deinstalacija

13.1 Windows

Deinstalacija se obavlja pokretanjem aplikacije za deinstalaciju koja se nalazi u Start → All Programs → StoreBuddy L-PFR → Deinstaliarj StoreBuddy L-PFR. Pratite dalja uputstva u aplikaciji.

13.2 Linux

Deinstalacija se obavlja brisanjem direktorijuma gde je raspakovan StoreBuddy L-PFR.

13.3 MacOS

Deinstalacija se obavlja brisanjem StoreBuddy L-PFR aplikacije iz Applications foldera.

14 Greške

14.1 Standardne greške

U sledećoj tabeli su navedeni kodovi grešaka koji su definisani u tehničkom vodiču, a koje će StoreBuddy L-PFR vraćati tokom svog rada:

Kod 0-Informacija, 1-Upozorenje, 2-Greška Opis
Informacije
0000 Sve je u redu Komanda se izvršila bez grešaka ili upozorenja
0100 Pin je ispravan Ovaj kod indikuje da je poslat PIN kod ispravan
0210 Internet je dostupan Internet veza je dostupna
0220 Internet je nedostupan Internet veza nije dostupna
Upozorenja
1100 Prostor je 90% popunjen Prostor koji se koristi za čuvanje paketa za iščitavanje je 90% popunjen. Vreme je da se izvrši iščitavanje
1300 Pametna kartica nije prisutna Bezbednosni element nije ubačen u čitač pametnih kartica
1400 Potrebno išcitavanje Zbir ukupne prodaje i povraćaja je dostigao 75% limita bezbednosnog elementa. Vreme je da se izvrši iščitavanje
1500 Potreban je Pin kod Indikuje da ESIR mora poslati PIN kod
1999 Nedefinisano upozorenje Nešto nije u redu, ali nije definisano specifično upozorenje za tu situaciju
Greške
2100 Pin je neispravan PIN kod poslat od strane ESIR-a nije ispravan
2110 Kartica je zaključana Broj pokušaja unosa PIN koda je prekoračen. Kartica je zaključana za korišćenje
2210 BE je zaključan Bezbednosni element je zaključan. Nije moguće izdavati račune dok se ne završi iščitavanje
2220 Komunikacija sa BE je neuspešna L-PFR ne može da se poveže sa apletom bezbednosnog elementa
2230 Neslaganje protokola BE Bezbednosni element ne podržava zahtevanu verziju protokola
2310 Neispravne poreske oznake Poreske oznake poslate od strane ESIR-a nisu definisane
2400 Nije konfigurisano PFR nije potpuno konfigurisan za potpisivanje računa (npr. poreske stope, verifikacioni URL nedostaju i slično)
2800 Polje je obavezno Polje je obavezno (nedostaje obavezno polje u zahtevu za izdavanje računa)
2801 Vrednost polja je predugačka Dužina vrednosti polja je duža nego očekivana
2802 Vrednost polja je prekratka Dužina vrednosti polja je kraća nego očekivana
2803 Neispravna dužina vrednosti polja Dužina vrednosti polja je kraća ili duža nego očekivana
2804 Polje je van okvira Vrednost polja je van očekivanog okvira
2805 Neispravna vrednost polja Polje sadrži neispravnu vrednost
2806 Neispravna format podatka Format podatka je neispravan
2807 Lista je prekratka Lista stavki ili lista poreskih oznaka u zahtevu za izdavanje računa ne sadrži bar jedan element (stavku/oznaku)
2808 Lista je predugačka Lista stavki ili lista poreskih oznaka u zahtevu za izdavanje računa prekoračuje maksimalan dozvoljeni broj elemenata (stavki/oznaka) ili veličinu u bajtovima

14.2 Greške definisane od strane proizvođača

Pored standardnih grešaka definisanih u tehničkom vodiču, StoreBuddy L-PFR može vratiti i sledeće greške:

Kod Opis
2900 Datum i vreme izdavanja računa ne može biti raniji od datuma i vremena izdavanja prethodnog računa
2910 Disk je pun
2950 Sertifikat bezbednosnog elementa je istekao. Potrebno je zameniti bezbednosni element
2990 Licenca za korišćenje nije ispravna
2991 Licenca za korišćenje je istekla

15 Rešavanje problema

U toku rada Vam se mogu desiti određeni problemi. U nastavku je spisak poznatih problema i potencijalnih rešenja:

Problem Rešenje
Čitač kartica nije pronađen Uključite čitač kartica. Ukoliko i dalje nije pronađen, proverite da li je upravljački program (driver) pravilno instaliran. Proverite da li je čitač kartica funcionalan iz druge aplikacije (npr. čitač elektronskih ličnih karata), ili sa drugog računara.
Bezbednosni element nije pronađen Proverite da li je čitač kartica funkcionalan
API server nije mogao da se pokrene jer je konfigurisan port već zauzet StoreBuddy L-PFR će se pokrenuti na prvom sledećem slobodnom portu, kako biste iz podešavanja mogli da podesite drugi port
Aplikacija ne reaguje na umetanje ili vađenje bezbednosnog elementa Došlo je do problema u komunikaciji sa čitačem kartica. Isključite a zatim uključite čitač kartica.
Aplikacija ne prepoznaje čitač kartica na Windows operativnom sistemu Pratite uputstva na https://answers.microsoft.com/en-us/windows/forum/all/smart-card-receiving-error-resource-manager-not/8630ebca-3d3e-4897-b8d5-1eeede079df4

Ukoliko imate neki problem koji nije naveden u tabeli, obratite nam se na info@dvsoftware.rs ili telefonom na broj 060 1755 733.

16 Istorija verzija

16.1 1.0.22

  • Omogućeno učitavanje konfiguracije preprodavca iz direktorijuma aplikacije
  • Ispravljena greška pri proveri formata buyerId polja
  • Ispravljena greška u formatu vremena pri vraćanju odgovora. Sada se vreme vraća sa vremenskom zonom.

16.2 1.0.21

  • OpenSC više nije potreban
  • Produženo vreme izmedju dva iščitavanja na 30 minuta
  • Ukoliko je iščitavanje već bilo pokrenuto u podslednjih 10 minuta, novo iščitavanje neće biti pokrenuto
  • Smanjeno vreme zaključavanja kartice prilikom zahtevanja tokena od SUF-a, kako izdavanje računa ne bi bilo blokirano ukoliko SUF predugo ne odgovara na zahtev
  • Ako se token zahteva istovremeno dok je još drugi zahtev za tokenom u toku, sačekaće se odgovor i neće se ponovo zahtevati token
  • Popravljena greška zbog koje nekad lokalno iščitavanje ne pita za direktorijum u koji da se iskopiraju paketi

16.3 1.0.20

  • Optimizacija
  • Isključen NSSupportsAutomaticTermination flag na macOS operativnom sistemu u cilju sprečavanja obustave rada aplikacije od strane sistema u situacijama kada je visoko zauzeće memorije.
  • Smanjena veličina aplikacije na Linux platformi (sada je aplikacija kompresovana UPX-om)

16.4 1.0.19

  • Popravljeno automatsko ažuriranje na linux platformi
  • Automatsko ažuriranje na macOS platformi
  • Popravljena greška prilikom rekreiranja paketa

16.5 1.0.18

  • sdcDateTime se sada SUF-u šalje kao UTC do preciznosti u milisekundama. Rešava problem da su pojedini audit paketi bili odbijeni. Paketi koji do sada nisu uspešno poslati će biti popravljeni i poslati ponovo.

16.6 1.0.17

  • Popravljena greška koja je prouzrokovala da i dalje bude pogrešno sinhronizovano vreme u pojedinim slučajevima

16.7 1.0.16

  • Rekreiranje paketa za iščitavanje ukoliko server Poreske uprave vrati grešku prilikom slanja
  • Popravljena greška koja je prouzrokovala da se Windows verzija aplikacije ne pokreće

16.8 1.0.15

  • Usklađeno ponašanje referentDocumentId polja sa tehničkim vodičem (dozvoljen unicode)
  • Nova ikonica
  • Po nekad se sa NTP servera dobija abnormalno vreme (vreme u prošlosti i po nekoliko godina), od sada će L-PFR ignorisati ovakvo vreme i ponovo sinhronizovati
  • Popravljena greška koja je prouzrokovala da se poslati paketi ponovo šalju prilikom promene kartice
  • Registracija servisa na lokalnoj mreži putem Zeroconf/Bonjour protokola. LPFR se registruje pod nazivom StoreBuddyLPFR, tip servisa _esdc._tcp.

16.9 1.0.14

  • Popravljeno pogrešno prijavljivanje punog diska
  • Popravljena kompatibilnost sa besplatnim ESIR rešenjem Poreske uprave

16.10 1.0.13

  • U ovoj verziji nema promena, objavljena je radi testiranja automatskog ažuriranja

16.11 1.0.12

  • Licenciranje za preprodavce
  • Automatsko ažuriranje headless linux verzije

16.12 1.0.11

  • PIN kod se sada može slati i kao JSON string
  • Ispravljen pogrešan status prilikom unosa PIN koda
  • Ispravljena greška u prikazu identifikacije kupca na žurnalu (prikazivao se tekst “PIB kupca” umesto “ID kupca”)

16.13 1.0.10

  • Popravljena greška da je aplikacija prikazivala pogrešan status da je kartica zaključana.

16.14 1.0.9

  • Popravljena greška da prilikom izvršenog iščitavanja ne budu resetovane Sum i Limit vrednosti koje aplikacija čuva u memoriji, što je uzrokovalo da se bespotrebno ponavlja ciklus iščitavanja.

16.15 1.0.8

  • Dodato još dijagnostičkih logova prilikom zahtevanja tokena ## 1.0.7
  • Eksplicitno biranje cipher suite-a prilikom zahteva tokena ukoliko se komunikacija odvija preko proxy-ja
  • Ukoliko zahtev ne uspe uz pomoć proxy-ja, pokušaće se i bez proxy-ja

16.16 1.0.6

  • Dodat mehanizam ponovnog pokušaja čitanja kartice. Aplikacija sada pokušava da iščita podatke sa kartice 5 puta. Rešava problem ukoliko je pokušano čitanje kartice dok čitač nije potpuno spreman, ili je neka druga aplikacija zauzela karticu.
  • Dodata je podrška za automatsku konfiguraciju proxy servera putem pac fajla.
  • Uklonjeno logovanje poziva lokalnih API endpointa

16.17 1.0.5

  • Podešen TLS 1.2 za komunikaciju sa SUF-om
  • Automatsko osvežavanje statusa

16.18 1.0.4

  • Eksplicitno biranje cipher suite-a koji je podržan od strane klijenta i SUF servera. Rešava problem ukoliko se koristi proxy koji podržava još neki cipher suite osim onih koje podržava SUF
  • Zamenjen redosled grešaka koje se javljaju (1500 sada ima priorited nad 2400)
  • Provera Pin Koda više ne vraća status 2400
  • Dodat status 0100 u gsc polje
  • Dodato je obaveštenje o neuspešnoj inicijalizaciji

16.19 1.0.3

  • Kartica se pravilno resetuje kako bi se osiguralo uspešno čitanje nakon njenog vađenja i ponovnog ubacivanja u čitač
  • Popravljen prestanak rada aplikacije ukoliko se kartica izvadi u toku preuzimanja licence
  • Podrška za proxy server. Na Windows i macOS se konfiguracija proxy servera uzima iz sistemskih podešavanja, a na Linuxu iz standardnih environment varijabli (HTTPS_PROXY i NO_PROXY)
  • Uklonjeno bespotrebno čekanje na internet vezu prilikom provere Pin Koda

16.20 1.0.2

  • Promenjen metod provere dostupnosti interneta
  • Dodat dijagnostički režim, koji nam omogućava da za odredjeni serijski broj uključimo slanje izveštaja o radu i sertifikata bezbednosnog elementa na naš server

16.21 1.0.1

  • Ekran dobrodošlice sada čeka da se API server podigne pre nego što se pokrene
  • Dodatno obaveštavanje o greškama prilikom iščitavanja bezbednosnog elementa
  • Provera dostupnosti interneta prilikom javljanja SUF-u
  • Uklonjena beskonačna petlja ukoliko se bezbednosni element izvuče iz čitača kartica (Windows)

16.22 1.0.0

  • Inicijalna verzija