Najbolja fiskalna kasa za velike biznise koji prodaju online
Firma sa više web shopova, ERP sistemom i timom od desetine ljudi ne bira kasu po izgledu ekrana, nego po tome da li može da bude jezgro koje drugi sistemi zovu. Ovo je pregled zahteva velikih biznisa i kako ih rešava Tezga eKasa preko API-ja, webhooka, uloga i paketa po računu.
Izaberi iznos ili skeniraj kod bez iznosa pa ga upiši u banci. Novac ide direktno na račun autora (GoSimple), Trek ne uzima ništa i nije posrednik u plaćanju.
Na telefonu: preuzmi kod, pa ga u aplikaciji banke učitaj iz galerije.
Najbolja fiskalna kasa za veliki biznis koji prodaje online je ona koja radi kao API jezgro: ERP i web shopovi joj šalju dokumente, ona ih fiskalizuje preko V-PFR-a ili šalje na SEF, javlja rezultat odlaznim webhookom i drži više firmi, uloge i ključeve pod kontrolom. Tezga eKasa, odobreni ESIR, ИБ 1597, taj model nudi sa cenom od 4 RSD po računu.
- Velika firma ne kupuje kasu nego integraciju: ono što se ocenjuje su API, idempotentnost, odlazni webhook, ponašanje kad je PFR nedostupan i kontrola pristupa.
- Tezga eKasa drži više firmi na jednom nalogu, više korisnika sa ulogama i do 20 API ključeva po firmi sa rotacijom na 90 dana i opcionim vezivanjem za IP adresu.
- Paket „Po računu” košta 4 RSD po fiskalnom računu i refundaciji, sa dopunom unapred do 20.000 RSD i kreditom koji važi 12 meseci, bez mesečne pretplate.
- Isti API zahtev bira tok: fiskalni račun, e-faktura na SEF ili oba, a e-otpremnice su deo istog skupa dokumenata.
- Za fizičke prodavnice sa naplatom na licu mesta i dalje je obavezan L-PFR, pa je online kasa jezgro za daljinsku prodaju, ne zamena za kasu na pultu.
Šta veliki biznis traži od fiskalne kase, a mali ne primećuje?
Preduzetnik sa jednim shopom gleda cenu i da li kasa radi na telefonu. Firma sa tri brenda, dva web shopa, veleprodajom, ERP sistemom i timom u Beogradu i Nišu gleda nešto drugo: ko sme šta da radi, gde se vidi svaki dokument, šta se dešava kad Poreska uprava ne odgovara u 23:40 na Crni petak i može li se kasa zameniti bez zaustavljanja prodaje. Kasa za takvu firmu nije ekran, nego servis sa ugovorom o ponašanju.
Zakon o fiskalizaciji (Sl. glasnik RS 153/2020, 96/2021, 138/2022) ne razlikuje velike i male obveznike: promet na malo obuhvata i prodaju na daljinu fizičkim licima, a račun se izdaje u trenutku prometa. Ono što se menja sa veličinom je broj sistema koji učestvuju u jednoj prodaji. Porudžbina nastane u shopu, zalihe se rezervišu u ERP-u, plaćanje potvrdi platni procesor, kurir preuzme paket, knjigovodstvo knjiži izvod. Fiskalni račun mora da nastane na pravom mestu u tom lancu i da o sebi obavesti sve ostale. Redakcija je opšti okvir dala u tekstu fiskalna kasa za srednje i velike firme; ovaj tekst ide u tehničke zahteve.
Napomena na početku, da ne bude nesporazuma: ovde se govori o online i daljinskoj prodaji. Za prodavnicu u kojoj kupac plaća na pultu, Zakon u čl. 6 st. 4 traži L-PFR u objektu, a Tezga eKasa radi preko V-PFR-a (sopstveni L-PFR je u pripremi, bez objavljenog datuma). Veliki maloprodajni lanac sa 30 radnji zato online kasu koristi kao jezgro za web shop, B2B i daljinsku prodaju, dok radnje ostaju na L-PFR rešenju.
Koji su zahtevi velikog biznisa i kako ih Tezga eKasa pokriva?
Tabela je kontrolna lista koja se može poslati svakom dobavljaču. Kolona „Tezga eKasa” sadrži samo ono što je javno dokumentovano u uputstvu za integratore i OpenAPI opisu.
| Zahtev | Zašto je važan velikoj firmi | Pitanje dobavljaču | Tezga eKasa |
|---|---|---|---|
| API kao primarni ulaz | ERP i shop zovu kasu, niko ne prekucava | Postoji li javna OpenAPI specifikacija? | REST, JSON, OpenAPI JSON javno dostupan |
| Idempotentnost | Retry iz ERP-a ne sme da napravi dupli račun | Šta je ključ idempotentnosti? | externalId do 200 znakova, tačno jedan dokument |
| Ponašanje kad PFR ne radi | Prodaja se ne zaustavlja zbog Poreske | Šta API vraća i ko ponavlja? | 202 primljeno, kasa sama ponavlja, retry ne pravi dupli |
| Odlazni webhook | ERP saznaje broj računa bez pollinga | Koji događaji, koji potpis? | 4 događaja, zaglavlja za identifikaciju isporuke i potpis |
| Više firmi | Holding sa više pravnih lica | Jedan nalog, više PIB-ova? | Više firmi na jednom nalogu |
| Uloge i korisnici | Operater ne sme da briše, knjigovođa samo čita | Koje uloge postoje? | Više korisnika i uloga |
| Ključevi | Jedan ključ po sistemu, rotacija, opoziv | Koliko ključeva, rotacija, IP? | Do 20 po firmi, 90 dana, IP vezivanje, HMAC |
| SEF i e-otpremnice | B2B kupci i logistika u istom sistemu | Ide li iz istog zahteva? | tok: sef, fiskalni, fiskalni_i_sef; e-otpremnica |
| Refundacija i storno kroz API | Povraćaji iz shopa bez ručnog rada | Delimična refundacija po stavkama? | Da, original po documentId ili externalId |
| Izvoz podataka | Knjigovodstvo i BI | CSV, API za dokumente? | CSV, GET /documents, izveštaji na raspored |
| Cena po obimu | Predvidiv trošak na 100.000 računa | Po računu ili po korisniku? | 4 RSD po računu, bez pretplate |
| Test okruženje | Regresija pre svake izmene ERP-a | Sandbox odvojen od produkcije? | Sandbox Poreske ili računi obuke, okruženje je osobina naloga |
Kasa u velikoj firmi je srednji sloj: sistemi firme joj šalju dokumente, ona razgovara sa Poreskom upravom, SEF-om i bankom, a rezultat vraća gore.
Kako API jezgro radi kad ERP šalje dokumente, a PFR ne odgovara?
Tipičan enterprise tok počinje u ERP-u, ne u kasi. Prodajni nalog se potvrdi, ERP pozove POST /api/integrations/order sa externalId jednakim broju naloga, stavkama sa šiframa i poreskim stopama, kupcem (sa ili bez PIB-a) i načinom plaćanja usklađenim sa Pravilnikom: kartica je „Platna kartica”, pouzeće je „Prenos na račun”, jer novac stiže preko kurira na tekući račun, a ne kao gotovina. Zahtev nosi ključ u zaglavlju X-Tezga-Api-Key i, po izboru, HMAC potpis u X-Tezga-Signature. Odgovor 200 znači da je dokument fiskalizovan i vraća njegov identifikator; kasnije GET /api/integrations/documents/{id} daje stanje, PFR broj i javnu adresu PDF-a.
Ključni test za veliku firmu je šta se dešava kad V-PFR Poreske uprave privremeno ne odgovara. Tezga eKasa tada vraća 202: zahtev je primljen, dokument je u redu čekanja, kasa sama ponavlja slanje. ERP ne mora da pravi sopstveni mehanizam ponavljanja, a ako ga ipak ima, ponovljen zahtev sa istim externalId ne pravi dupli dokument. Isto važi za POST /api/integrations/refund. To je razlika između kase koja se „nekad zaglavi” i kase koja ima definisano ponašanje pod opterećenjem; redakcija je API detaljno prošla u tekstu vodič kroz API i integracije Tezga eKase.
Umesto da ERP svakih minut pita „da li je fiskalizovano”, kasa mu javlja sama. Odlazni webhook se podešava u Podešavanja, Integracije, Odlazna obaveštenja i šalje događaje racun.fiskalizovan, racun.greska, refundacija.izvrsena i storno.izvrsen. Svaka isporuka nosi zaglavlje X-Tezga-Event sa nazivom događaja, X-Tezga-Delivery kao identifikator za idempotentnost na strani primaoca i X-Tezga-Signature za proveru da poruka zaista dolazi iz kase. ERP na osnovu toga upisuje PFR broj u nalog, obaveštava logistiku i zatvara krug.
Kad Poreska uprava ne odgovara, API vraća 202 i kasa ponavlja slanje sama; ERP o konačnom rezultatu saznaje iz webhooka, a ne iz pollinga.
Kako se drže pod kontrolom više firmi, uloge i ključevi?
Velika firma retko ima jedno pravno lice. Holding u Novom Sadu može imati maloprodajni DOO, veleprodajni DOO i brend registrovan kao preduzetnik za sezonsku prodaju. Svako od njih je zaseban obveznik fiskalizacije sa svojim PIB-om i svojim računima. Tezga eKasa drži više firmi na jednom nalogu, pa finansijski direktor gleda sve iz istog pristupa, a svaka firma ima sopstvene dokumente, ključeve i izveštaje. Ivan Dabetić je praktičnu stranu opisao u tekstu fiskalna kasa za više firmi i lokacija.
Kontrola pristupa ide na dva nivoa. Prvi su korisnici i uloge: operater u korisničkoj službi radi refundacije, knjigovođa čita izveštaje, administrator upravlja ključevima. Drugi su API ključevi: do 20 po firmi, što je dovoljno da svaki sistem (ERP, shop A, shop B, B2B portal, n8n) ima sopstveni ključ koji se može opozvati bez uticaja na ostale. Ključ počinje sa tzg_ i ima 48 heksadecimalnih znakova, vidi se samo jednom pri izdavanju, čuva se kao heš, rotira se na 90 dana i može se vezati za IP adresu servera. Dnevnik pristupa pokazuje koji ključ je šta radio, što je prvo što interna revizija traži.
Ono što u praksi pravi razliku jeste odvajanje okruženja. Kod Tezga eKase okruženje je osobina naloga, ne ključa: testni nalog radi kroz sandbox Poreske uprave, gde računi nisu fiskalni, ili kroz račune tipa „Обука” koji nose napomenu „ОВО НИЈЕ ФИСКАЛНИ РАЧУН”. Produkcioni nalog ima svoje ključeve. Time se izbegava klasična nezgoda u kojoj razvojni tim sa testnim ključem slučajno fiskalizuje 300 računa u produkciji. Testni nalog integratoru izdavač otvara na zahtev.
Jedan ključ po sistemu i jedna uloga po funkciji: kad se ključ za automatizacije opozove, ERP i shop nastavljaju da rade.
Gde se u ovoj arhitekturi uklapaju SEF i e-otpremnice?
Veliki biznis skoro uvek prodaje i firmama. Promet između obveznika u sistemu e-faktura mora na SEF, dok promet fizičkim licima ide na fiskalni račun i ne ide na SEF. Kasa koja to ne razlikuje tera firmu da B2B fakture pravi u drugom programu i ručno usklađuje dva izvora. Kod Tezga eKase isti API zahtev bira tok: tok: sef za e-fakturu, fiskalni za fiskalni račun, fiskalni_i_sef za oba. Ako kupac ima PIB, fiskalni račun nosi Id kupca u obliku 10:PIB; bez PIB-a je maloprodaja. Redakcija je B2B ugao obradila u tekstu najbolja e-kasa za DOO firme.
E-otpremnice su sledeći talas. Uvode se postepeno tokom 2026. i 2027, i firme sa sopstvenom logistikom ili veleprodajom treba da ih planiraju u istom sistemu u kome nastaju fakture, jer se otpremnica vezuje za isporuku koju kasa već zna. Tezga eKasa e-otpremnicu ima među vrstama dokumenata, uz e-fakturu, avans, storno, refundaciju i kopiju. Šta se tačno menja i kako se firma priprema ima u tekstu e-otpremnica: šta se menja i kako se pripremiti, a pregled dokumenata na strani fakture, SEF i otpremnice.
Za uplate, veliki biznis ne želi da neko ručno gleda izvod. Predračun sa NBS IPS QR kodom i pozivom na broj, izvod koji stiže u kasu mejlom ili kao PDF, uparivanje po pozivu na broj i konačan dokument koji nastaje sam (fiskalni, SEF ili oba) rade i na 5 i na 500 uplata dnevno. API bez poziva na broj odbija predračun, jer bez njega uparivanje nije pouzdano. Bankovne transakcije firme dostupne su i kroz GET /api/integrations/transactions, pa ih ERP može povući za sopstveno knjiženje.
Koliko košta fiskalizacija po računu i kad je jeftinija od pretplate?
Velika firma ne želi cenu po korisniku ni po lokaciji, jer se obe menjaju. Tezga eKasa za integratore ima paket „Po računu”: 4 RSD po fiskalnom računu i po refundaciji, dopuna unapred od 2.000, 5.000, 10.000 ili 20.000 RSD, kredit važi 12 meseci. Kad se kredit potroši, prolazi još 100 računa, pa API vraća kod 402, što je dovoljno da monitoring podigne alarm pre nego što prodaja stane. Cene su neto pretplata, jer izdavač nije u sistemu PDV-a.
| Mesečni obim | Po računu (4 RSD) | Biznis paket (2.390 RSD) | Šta je jeftinije |
|---|---|---|---|
| 300 računa | 1.200 RSD | 2.390 RSD | Po računu |
| 600 računa | 2.400 RSD | 2.390 RSD | Približno isto |
| 2.000 računa | 8.000 RSD | 2.390 RSD | Biznis paket |
| 10.000 računa | 40.000 RSD | 2.390 RSD | Biznis paket |
Računica pokazuje granicu oko 600 računa mesečno po firmi. Ispod nje je po računu jeftinije i fleksibilnije, naročito za agenciju koja fiskalizuje za više klijenata ili za brend sa sezonskim vrhovima. Iznad nje Biznis paket, napredni režim sa SEF-om, daje predvidiv fiksni trošak. Holding sa tri firme može kombinovati: maloprodajni DOO na Biznis paketu, sezonski brend po računu. Šire poređenje troškova ima u tekstu koliko košta online fiskalna kasa u 2026.
Koja pitanja o dostupnosti i bezbednosti treba postaviti pre ugovora?
Tekst namerno ne navodi procente dostupnosti, jer ih treba tražiti u pisanoj formi od svakog dobavljača, uključujući izdavača Tezga eKase. Ono što se može proveriti unapred su mehanizmi: šta se dešava kad PFR ne radi (kod Tezge: 202 i sopstveno ponavljanje), da li ponovljen zahtev pravi dupli dokument (ne), gde su podaci fizički (EU region), kako se ključ čuva (heš), da li postoji ograničenje broja zahteva (da, 429 kad se pređe) i vodi li se dnevnik pristupa (da). Uz to idu redovni bezbednosni pregledi, HTTPS na svim vezama i HMAC potpis zahteva i webhooka. Detalji su na strani sigurnost i zaštita podataka.
Lista pitanja koju vredi poslati svakom dobavljaču pre potpisa:
- Koji je kod odgovora kad je V-PFR Poreske uprave nedostupan i ko ponavlja slanje?
- Koji je ključ idempotentnosti i koliko dugo se pamti?
- Koliko API ključeva po firmi, kako se rotiraju i opozivaju, mogu li se vezati za IP?
- Da li su test i produkcija odvojeni nalozi ili samo odvojeni ključevi?
- Koje događaje šalje odlazni webhook i kako se proverava potpis?
- Gde su podaci, ko im pristupa i postoji li dnevnik pristupa po ključu i korisniku?
- Kako se izvoze svi dokumenti ako firma odluči da promeni kasu?
- Koliko traje odgovor podrške na tehnički tiket i preko kog kanala?
Deset dodatnih pitanja iz ugla naručioca ima u tekstu enterprise fiskalizacija: 10 pitanja za dobavljača kase. Poslednje pitanje sa liste, izvoz pri odlasku, mnogi zaborave; postupak zamene ESIR-a bez prekida prodaje redakcija je opisala u tekstu kako promeniti fiskalnu kasu.
Kako izgleda uvođenje u firmi sa ERP-om i dva shopa?
Hipotetični primer: distributer sportske opreme iz Čačka ima ERP, WooCommerce shop za maloprodaju, Shopify shop za drugi brend i B2B portal za prodavnice širom Srbije. Faza jedan traje dan: otvara se testni nalog, razvojni tim iz OpenAPI opisa generiše klijent, na sandboxu Poreske uprave pušta sto test naloga iz ERP-a i proverava da isti externalId dva puta daje jedan dokument. Faza dva: WooCommerce i Shopify se povezuju dvosmerno bez plugina, bira se status koji pokreće fiskalizaciju i uključuje slanje računa mejlom kupcu, jer je po tumačenju Poreske uprave za daljinsku prodaju elektronska dostava uz saglasnost kupca dovoljna, što se može proveriti na purs.gov.rs.
Faza tri je B2B portal: prodavnica sa PIB-om poruči robu, portal pozove API sa tok: fiskalni_i_sef ili samo sef, po pravilu koje knjigovođa odredi, a predračun sa IPS QR kodom ide kupcima koji plaćaju virmanom. Faza četiri je webhook u ERP, pa logistika štampa otpremnicu tek kad stigne racun.fiskalizovan. Ceo posao, od naloga do prvog produkcionog računa, retko traje duže od nedelju dana radnog vremena tima, jer se najveći deo svodi na mapiranje polja koje ERP već ima. Redakcija je kraću varijantu, za firmu bez ERP-a, opisala u tekstu od naloga do prvog fiskalnog računa za 30 minuta. Ovaj tekst nije pravni savet; poreski tretman konkretnih tokova treba potvrditi sa knjigovođom i važećim pravilnikom.
Izvori: Zakon o fiskalizaciji (Sl. glasnik RS 153/2020, 96/2021, 138/2022); Pravilnik o vrstama fiskalnih računa, tipovima transakcija, načinima plaćanja; Tehničko uputstvo za ESIR, Poreska uprava; Zakon o elektronskom fakturisanju i SEF; uputstvo za integratore i OpenAPI specifikacija Tezga eKase; NBS IPS QR standard.
Česta pitanja
Može li online kasa da zameni L-PFR u fizičkim prodavnicama velikog lanca?
Ne. Zakon o fiskalizaciji u čl. 6 st. 4 traži L-PFR u objektu u kome se računi izdaju kupcima na licu mesta. Online kasa preko V-PFR-a pokriva web shop, B2B i daljinsku prodaju. Lanac zato kombinuje: radnje na L-PFR rešenju, online i B2B na API jezgru. Sopstveni L-PFR Tezga eKase je u pripremi, bez objavljenog datuma.
Šta ERP dobija nazad posle fiskalizacije?
Odgovor API-ja sa identifikatorom dokumenta, a zatim odlazni webhook sa događajem racun.fiskalizovan ili racun.greska. Kroz GET /api/integrations/documents/{id} ERP može da povuče PFR broj i javnu adresu PDF-a računa. Za WooCommerce i Shopify kasa sama upisuje broj računa nazad u porudžbinu.
Kako se sprečava da retry iz ERP-a napravi dva fiskalna računa?
Poljem externalId, koje je ključ idempotentnosti do 200 znakova. ERP u njega upisuje broj prodajnog naloga; ma koliko puta zahtev stigao, nastaje tačno jedan dokument. Isto važi kad API vrati 202 zbog nedostupnog PFR-a, pa ERP ponovi zahtev: ponavljanje ne pravi dupli dokument ni za račun ni za refundaciju.
Da li više pravnih lica može da deli jedan nalog?
Može. Tezga eKasa drži više firmi na jednom nalogu, svaka sa sopstvenim PIB-om, dokumentima, ključevima i izveštajima. Korisnici dobijaju uloge, pa administrator vidi sve, a operater ili knjigovođa samo ono što im je dodeljeno. Svaka firma ostaje zaseban obveznik fiskalizacije pred Poreskom upravom.
Koliko API ključeva može da ima jedna firma?
Do 20 po firmi. Preporuka je jedan ključ po sistemu: ERP, svaki web shop, B2B portal, automatizacije. Ključ se vidi samo jednom pri izdavanju, čuva se kao heš, rotira na 90 dana i može se vezati za IP adresu servera. Opoziv jednog ključa ne utiče na ostale sisteme.
Šta se dešava kad se potroši kredit u paketu po računu?
Posle potrošenog kredita prolazi još 100 računa, a zatim API vraća kod 402. To je prostor da nadzor podigne upozorenje i da se uplati nova dopuna od 2.000 do 20.000 RSD. Kredit iz svake dopune važi 12 meseci, a cena je 4 RSD po fiskalnom računu i po refundaciji.
Idu li e-fakture i fiskalni računi iz istog sistema?
Da. U istom API zahtevu polje tok bira sef, fiskalni ili fiskalni_i_sef. Kupac sa PIB-om dobija fiskalni račun sa Id kupca 10:PIB i e-fakturu na SEF, kupac bez PIB-a samo fiskalni račun. E-otpremnica je deo istog skupa dokumenata, što je važno za firme sa sopstvenom logistikom.
Kako se testira integracija bez rizika po produkciju?
Na zasebnom testnom nalogu koji radi kroz sandbox Poreske uprave, gde računi nisu fiskalni, ili kroz račune tipa obuke sa napomenom da nisu fiskalni. Okruženje je osobina naloga, a ne ključa, pa testni ključ ne može da fiskalizuje u produkciji. Testni nalog integratoru otvara izdavač na zahtev.
Firma koja želi da proveri API jezgro na sopstvenom ERP-u može da traži testni nalog preko strane API za fiskalizaciju ili da otvori probni nalog na tezgafiskal.com/probaj-fiskalnu-kasu i prve dokumente pusti kroz režim obuke.