Preskoči na sadržaj

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.

Šema toka: program na kasi BKC Soft levo, servis efakture.exe u sredini, desno SEF, Centralni registar faktura, eOtpremnice, Moj e-Račun, pošta i web prodavnica
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

  1. Faktura se napravi u programu na kasi, kao i do sada.
  2. Program pozove servis na adresi na istom računaru i preda mu podatke.
  3. Servis sastavi XML po UBL 2.1 standardu.
  4. Servis proveri XML pre slanja.
  5. Faktura ide na SEF, ili na demo okruženje kada se proba.
  6. 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

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.

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.