Integracija sa državnim sistemima / 2023
efakture.exe: program za kasu šalje na SEF bez prepisivanja
Studija slučaja: program za kasu nije umeo da šalje na SEF. Servis u Go-u od 2023. poslao je preko 10.000 faktura i 5.000 otpremnica.

- Klijent
- BKC Soft
- Godina
- 2023
- Uloga
- Kompletan razvoj i održavanje servisa
- Tehnologije
- Go, HTTP, UBL XML, JSON, SMTP
10.000+
faktura poslato na SEF
5.000+
eOtpremnica poslato
50+
ruta, skoro svaka sa probnom verzijom
Ovo je studija slučaja o servisu efakture.exe, koji sam napravio za program za fiskalnu kasu BKC Soft. Servis je deo veće saradnje sa BKC Soft-om, opisane u studiji o njihovom portalu.
Klijent i kontekst
BKC Soft pravi program za fiskalnu kasu, akreditovan kod Poreske uprave kao ESIR pod registarskim brojem 88. Od 1. 1. 2023. firme iz privatnog sektora, obveznici PDV-a, izdaju i čuvaju eFakture i međusobno, preko SEF-a, sistema elektronskih faktura Ministarstva finansija. Program koji radi u objektima morao je da počne da šalje fakture u državni sistem, a kasnije i elektronske otpremnice.
Problem
Zakon je uveo eFakture, elektronske otpremnice i evidenciju PDV-a, sve kroz državne sisteme, preko HTTP poziva sa UBL XML-om (propisanim formatom dokumenta), ključevima i šifrovanom vezom. Program na kasi je pisan da razgovara sa lokalnom bazom i fiskalnim štampačem, ne sa web servisima čija se specifikacija menja.
Prepisati ga nije bila opcija. Program radi u objektima, korisnici ga znaju napamet, a svaka veća izmena znači novu instalaciju kod svakog korisnika.
Ograničenja
Faktura poslata na državni sistem je poslata: nema povlačenja nazad. Zato svaki tok mora da se proba pre nego što ode prava faktura. Specifikacija se menja sa svakom izmenom zakona, a zakon o eFakturama je od 2021. menjan šest puta. Treće ograničenje su računari u objektima: servis mora da radi bez instalacije i bez dodatnih programa, jer se ne obilazi svaki objekat.
Rešenje
Jedan fajl između programa i države
Sve što izlazi iz objekta izmešteno je u poseban servis: jedan izvršni fajl, bez instalacije i bez zavisnosti. Program pozove lokalnu adresu i dobije odgovor. O XML-u, ključevima i sertifikatima ne zna ništa. Kada država promeni specifikaciju, menja se samo taj fajl.
Šta servis radi za SEF
Šalje izlazne fakture na SEF, uz upis u Centralni registar faktura kada je potrebno, proverava status poslate fakture, preuzima ulazne fakture kao XML i PDF i prihvata ih ili odbija. Radi i pojedinačno elektronsko evidentiranje PDV-a, a XML proverava pre slanja, da se greška uhvati pre nego što ode. Ima i drugog posrednika, Moj e-Račun, kao zamenu za državni, sa istim tokovima.
eOtpremnice i ostalo
Isti servis šalje i preuzima elektronske otpremnice, ulazne i izlazne, i do sada ih je poslao preko 5.000. Usput nosi i poslove koji nisu državni: šalje poštu sa prilogom preko Gmail-a, Outlook-a ili Yahoo-a, pri čemu se podaci za poštu prosleđuju po pozivu i nigde ne čuvaju, šalje fiskalni račun u web prodavnicu (tako kupac EcoLED-a dobija račun mejlom) i dnevne izveštaje o prometu velikim dobavljačima.
Probna verzija svake rute
Servis danas ima preko 50 ruta, i skoro svaka ima svog probnog blizanca koji šalje na demo okruženje. Ceo tok, od sastavljanja preko provere i slanja do statusa, prođe se na probi, pa se nova verzija uvodi bez straha. Odgovor državnog sistema se snima u fajl, pa se greška može pogledati i kasnije.
Kako ide jedna faktura
- Faktura se napravi u programu na kasi, kao i do sada.
- Program pozove servis na adresi na istom računaru i preda mu podatke.
- Servis sastavi XML po UBL 2.1 standardu.
- Servis proveri XML pre slanja.
- Faktura ide na SEF, ili na demo okruženje kada se proba.
- Odgovor državnog sistema se snima u fajl, a program dobija status: poslata, prihvaćena ili odbijena.
Šta sve servis pokriva
| Oblast | Šta radi |
|---|---|
| SEF | slanje izlaznih faktura, upis u Centralni registar faktura, status, prijem, prihvatanje i odbijanje ulaznih |
| PDV | pojedinačno elektronsko evidentiranje |
| eOtpremnice | slanje i preuzimanje, ulaznih i izlaznih |
| Firme | pregled firmi koje su na sistemu |
| Kasa | čitanje dnevnog izveštaja i priprema za slanje |
| Dokumenti | base64 u oba smera, PDF u tekst i nazad, preuzimanje kao XML i PDF |
| Pošta | slanje sa prilogom preko Gmail-a, Outlook-a ili Yahoo-a |
| Prodavnica i dobavljači | fiskalni račun u web prodavnicu, dnevni izveštaji o prometu dobavljačima |
Tehnologije i zašto
Go je izabran zbog jedne osobine: kompajlira se u jedan izvršni fajl bez zavisnosti. Na računaru u objektu nema okruženja koje treba instalirati ni verzije koja se ne poklapa; fajl se prekopira i pokrene. Dokumenti idu u formatu UBL 2.1, preko HTTP-a i šifrovane veze, a pošta preko SMTP-a.
Rezultat
Program na kasi ispunjava zakonsku obavezu, a nije prepisan. Preko servisa je poslato preko 10.000 faktura i preko 5.000 otpremnica. Servis radi od 2023, prve godine obaveznih eFaktura između firmi, i raste sa propisom: eOtpremnice, evidencija PDV-a i drugi posrednik dodati su kasnije, svaki put kao dopuna istog fajla. Izmene zakona koje važe od 1. 1. 2027. već su ugrađene (stanje u oktobru 2026).
Izvori
Rokovi su provereni 4. 10. 2026. u prečišćenom tekstu Zakona o elektronskom fakturisanju („Sl. glasnik RS“ br. 44/2021 do 80/2026), član 24, i na zvaničnom sajtu efaktura.gov.rs.
Usluge korišćene na ovom projektu
- Integracija sa SEF-om bez prekucavanja faktura
- eOtpremnice za firme: integracija i portal
- Održavanje sajta posle lansiranja
Pitanja o projektu
Šta radi efakture.exe?
To je servis u jeziku Go koji program za fiskalnu kasu poziva na istom računaru. Servis sastavlja XML, šalje fakture na SEF i otpremnice u sistem eOtpremnica, preuzima ulazne dokumente, prati statuse i vraća programu odgovor.
Da li servis mogu da koriste i druge firme?
Trenutno ga koristi samo BKC Soft. Može da se prilagodi i za druge programe; to se dogovara kao SEF integracija.
Koliko košta slična integracija za drugi program?
Povezivanje programa sa SEF-om je na upit i okvirno počinje od 300 EUR, a traje 20 dana i više. Detalji su na stranici SEF integracija.
Šta je Moj e-Račun?
Informacioni posrednik: pravno lice koje, uz saglasnost Ministarstva finansija, razmenjuje elektronske fakture u ime firmi. Servis može da šalje i preko njega, sa istim tokovima kao preko SEF-a.
Kako se servis ažurira kod korisnika?
Zamenom jednog fajla. Nema reinstalacije programa na kasi ni obilaska objekata; korisnik dobije novi fajl i nastavlja da radi.
Šta se dešava kada država promeni specifikaciju?
Menja se samo servis. Korisnicima se pošalje jedan novi fajl, a program na kasi ostaje isti. Izmene zakona koje važe od 1. 1. 2027. već su ugrađene.
Kako se servis testira?
Skoro svaka ruta ima probnu verziju koja šalje na demo okruženje Ministarstva finansija, pa se ceo tok prođe pre nego što ode prava faktura.
Slični projekti
Studija slučaja
BKC Soft: licence i dnevni izveštaji sa kasa na jednom portalu
Studija slučaja: BKC Soft je licence izdavao ručno, a vlasnici sabirali promet telefonom. Portal sada drži 500+ licenci i izveštaje 20+ korisnika.
Studija slučaja
eOtpremnice: portal za slanje otpremnica bez čitača kartica
Studija slučaja: otprema je čekala čoveka sa ličnom kartom u čitaču. Portal šalje eOtpremnice sa API ključem firme, i sa telefona. 3 meseca besplatno.
Imate sličan posao?
Opišite šta vam treba u nekoliko rečenica. Na poruke poslate do 17 h odgovaram istog dana, sa procenom cene i roka.