Za programere · integracija je besplatna

Fiskalizacija iz tvog koda, bez hardvera

Tvoja platforma pozove REST API, Tezga izda i fiskalizuje račun preko V-PFR-a i vrati PFR broj, QR i PDF. Bez lokalne instalacije i uređaja, a API pozivi se ne naplaćuju.

ИБ odobrenog ESIR-a
1597ИБ odobrenog ESIR-a
bez lokalnog hardvera
V-PFRbez lokalnog hardvera
server-to-server
RESTserver-to-server
po API pozivu
0 RSDpo API pozivu

Tvoj sajt, Tezga i Poreska u jednom toku

Kako radi, uživo

Tvoj sajt, Tezga i Poreska u jednom toku

Kupac plati na sajtu, fiskalni račun nastaje sam.

  1. 1Kupac → Tvoj sajt

    plaćena porudžbina

    Kupac završi kupovinu na tvom sajtu.

  2. 2Tvoj sajt → Tezga

    POST /order

  3. 3Tezga → Poreska (V-PFR)

    račun na potpis

  4. 4Poreska (V-PFR) → Tezga

    PFR broj + QR

  5. 5Tezga → Tvoj sajt

    racun.fiskalizovan

  6. 6Tezga → Kupac

    PDF na mejl

Šta API pokriva, za poređenje

REST API, server-to-server
Sandbox i simulacija
Refundacija
Avansni račun
Storno
PDF, QR i verifikacioni URL
Idempotentnost
Webhook obaveštenja
Ograničenje zahteva
Fiskalni račun i e-faktura (SEF)
Naplata po pozivu

Radi sa svakim stekom: Next.js, Laravel, Node, PHP, Symfony, React, Vue, WordPress i headless prodavnice.

Prvi račun

curl -X POST https://pos.narbiz.com/api/integrations/order?provider=custom \
  -H "X-Tezga-Api-Key: tzg_…" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "NALOG-1042",
    "tok": "fiskalni",
    "nacinPlacanja": "Kartica",
    "kupac": { "naziv": "Kupac", "email": "kupac@primer.rs" },
    "stavke": [
      { "naziv": "Paket od 10 časova", "kolicina": 1, "cenaSaPdv": 24000 }
    ]
  }'

Odgovor nosi fiskalni.pfrBroj, brojacRacuna, verifikacioniUrl i javniPdfUrl koji radi bez prijave.

Za šta se koristi

Jedan API, isti poziv: razlika je samo u toku koji izabereš.

Usluge i zakazivanje

Klijent uplati → avansni račun; po izvršenoj usluzi konačni račun sa referencom na avans.

Web shop

Plaćena porudžbina postaje fiskalni račun; broj se vraća u porudžbinu. Katalog, kalkulacija i nivelacija kroz API.

SaaS i pretplate

Svaka naplata → račun ili e-faktura (SEF). Plaćenost po dokumentu, izvodi se uvoze sami.

Teretane i članarine

Mesečna članarina bez blagajne: račun nosi IPS QR, član skenira i plati instant.

Ulaznice i događaji

Hiljade računa u špicu: isti externalId nikad ne pravi duplikat, limit se podiže na najavu.

Marketplace i platforme

Svaki prodavac je svoj nalog i ključ; tvoja platforma bira ključ kojim šalje porudžbinu.

Avansni računi: više uplata, jedno zatvaranje

Kupac može da plati unapred više puta: prva uplata otvara avansni račun, a svaka sledeća se vezuje na isti posao (vezani avansi, po Tehničkom uputstvu Poreske uprave). Kad isporučiš, jedan poziv sa zatvori: true izda refundaciju avansa pa konačni račun. Ako refundacija ne prođe, konačni račun se ne izdaje, pa dupli promet ne može da nastane.

АПprva uplata: avansni račun
АПsvaka sledeća uplata: vezani avans
АРzatvaranje: refundacija avansa
ППkonačni fiskalni račun

Plaćanje: radi sa svima

Tezga fiskalizuje posle potvrde uplate, pa ne zavisi od platnog posrednika. Kartica, IPS instant ili gotovina: za API je isti poziv, samo drugačiji nacinPlacanja.

Platni posrednici
WSPayMonriCorvusPayAllSecureNestPay (Payten)PaySpotStripePayPal

Čim tvoj sistem dobije potvrdu uplate, pozove Tezgu.

Banke i njihova kartična rešenja
Banca IntesaRaiffeisenUniCreditOTP bankaNLB KomercijalnaAIK bankaProCreditHalkbankAddiko

E-commerce servisi banaka rade preko gornjih posrednika; Tezgi je svejedno ko je naplatio.

Novčanici i instant
Apple PayGoogle PayIPS QR (NBS)

Apple Pay i Google Pay idu kroz tvog posrednika; IPS QR je ugrađen.

Ugrađen NBS IPS QR: kupac skenira i plati instant

Na računu, predračunu i avansnom računu stoji IPS QR po NBS standardu: kupac ga skenira u aplikaciji banke i plati instant, bez poziva na broj. Izvodi se uvoze sami. Svaki fiskalni račun nosi i verifikacioni QR Poreske uprave.

Radiš vibecoding? Tezga je spremna.

Tezga ima MCP konektor: u claude.ai se dodaje kao custom connector (https://pos.narbiz.com/mcp), a u Claude Code, Cursor ili Codex preko mcp.json. Asistent sam izdaje probne račune, radi storno i avans dok ti gradiš. Radi i sa Codexom, Windsurfom, Copilotom i svakim MCP klijentom; mobilne aplikacije zovu isti REST API iz bekenda.

Pun vodič: MCP konektor

Primeri koda po steku

46 pitanja koja nam integratori najčešće pošalju

Kako radi

Da li je Tezga cloud ESIR, bez lokalne instalacije i hardvera?
Za integraciju, jeste: tvoj server pozove naš API, mi fiskalizujemo preko virtuelnog procesora fiskalnih računa (V-PFR) Poreske uprave i vratimo podatke računa. Bez lokalnog softvera i bez hardvera kod tebe. Tezga uz to podržava i lokalni procesor (L-PFR) za obveznike koji prodaju u fizičkom objektu, jer njima zakon traži uređaj koji izdaje račun i pri prekidu internet veze; to je odvojen režim i ne menja ništa u API integraciji.
Postoji li direktan REST API, nezavisno od gotovih konektora?
Postoji, i on je prvi način rada, a ne dodatak. Konektori za WooCommerce i Shopify koriste isti API. Opis za alate je na /api/openapi.json (Postman, Swagger), a uputstvo za ljude na /api-dokumentacija.pdf.
Kako se zahtev autentikuje?
API ključem u zaglavlju X-Tezga-Api-Key. Ključ ima oblik tzg_ i 48 heksadecimalnih znakova; testni i produkcijski ključ izgledaju isto, jer je okruženje osobina naloga (vidi pitanje o brani u kodu). Ključeva može biti više, po jedan za svaku integraciju, i svaki se posebno pauzira ili opoziva. Svaki ključ sme da se veže za IP adrese tvog servera (pojedinačne ili CIDR opseg), pa ukraden ključ ne radi ni sa jednog drugog mesta. Opciono se telo dodatno potpisuje HMAC-SHA256 tajnom (X-Tezga-Signature). OAuth i mTLS ne nudimo.
Koje operacije API pokriva?
Izdavanje fiskalnog računa i eFakture, predračun koji se sam zatvara po uplati, avansni račun i zatvaranje avansa, storno i refundaciju (punu i po stavkama), kopiju računa, stanje dokumenta sa svim fiskalnim podacima, poreske oznake naloga i bankovne transakcije.
Šta dobijam u odgovoru kad se račun izda?
PFR broj, vreme, brojač računa, ESIR broj, verifikacioni URL i sadržaj QR koda, plus javni link računa i PDF koji radi bez prijave. Dovoljno da sam odštampaš račun ili ga pošalješ kupcu.

Pouzdanost

Šta se dešava kada V-PFR Poreske uprave nije dostupan?
Dokument se izda i ne gubi se, a odgovor je HTTP 202 sa ok:false i porukom. Tezga zatim SAMA ponavlja fiskalizaciju u razmacima i, kad prođe, javi ti webhook-om; stanje možeš i sam pročitati kroz GET /documents/:id. Izuzetak je neizvestan ishod (Poreska je račun primila, a upis kod nas nije uspeo): tada se ne ponavlja automatski, jer bi država dobila drugi račun za isti promet. Rad bez internet veze na V-PFR putu ne postoji, jer virtuelni procesor po definiciji radi kroz stalnu vezu; obveznik kome to treba ide na lokalni procesor (L-PFR) u svom objektu.
Kako se sprečava dupli račun?
Svaki zahtev nosi tvoj externalId. Isti externalId nikad ne pravi drugi račun nego vraća postojeći, i kad dva zahteva stignu istovremeno. Zaštita je u samom API-ju, ne u konektoru.
Postoje li webhook obaveštenja?
Postoje. Tezga šalje POST na tvoju adresu za događaje: racun.fiskalizovan, racun.greska, refundacija.izvrsena, storno.izvrsen. Telo je potpisano HMAC-om, a ako tvoj server ne odgovori, slanje se ponavlja posle 1, 5, 15, 60, 360 minuta.
Postoji li ograničenje broja zahteva?
Podrazumevano 120 zahteva u minuti po firmi za izdavanje i refundaciju i 240 za čitanje. Svaki odgovor nosi X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset, a 429 i Retry-After. Ograničenje je vezano za nalog, ne za kod: ako imaš najavljen vrh, na primer početak prodaje ulaznica za veliki događaj, javi nam očekivani broj računa u minuti pa ga podižemo pre nego što krene prodaja.
Pod kojim odobrenjem Tezga radi?
Rešenje Poreske uprave 000-092-00-00123/2026-0000 od 03.07.2026, ИБ 1597, verzija 1.1, kao ESIR koji radi sa V-PFR-om.

Prodaja na daljinu i ulaznice

Kako izgleda tok kod prodaje na daljinu, na primer ulaznica?
Kupac plati karticom kod svog platnog posrednika, tvoj bekend sačeka potvrdu uplate i tek onda pošalje jedan POST na /api/integrations/order sa svojim brojem porudžbine. Mi izdamo i fiskalizujemo račun i u istom odgovoru vratimo PFR broj, brojač, QR i link na PDF. Račun kupcu ili šaljemo mi, ili ga ti preuzmeš sa javnog linka i ušteš u svoju potvrdu o kupovini.
Prodajem u ime organizatora događaja, kako to izgleda kod vas?
Tehnički: račun uvek nosi PIB firme čiji je nalog, jer se izdaje njenim bezbednosnim elementom. Ako je prodavac tvoja platforma, sve staje u jedan nalog. Ako svaki organizator izdaje svoj račun, onda je svaki organizator svoj nalog, sa svojim bezbednosnim elementom i svojom pretplatom, a tvoj sistem samo bira ključ kojim šalje porudžbinu. Ko je od vas dvoje izdavalac računa nije naša odluka nego stvar tvog ugovora sa organizatorom i mišljenja tvog knjigovođe; oba rasporeda podržavamo.
Kako se radi povraćaj novca za otkazanu ulaznicu?
POST /api/integrations/refund, po našem documentId ili po tvom broju porudžbine. Kad se novac ne vraća (pogrešno izdat račun) koristi se "vrsta":"storno" i ne traži podatke kupca. Za povraćaj novca, ceo ili po stavkama, koristi se "vrsta":"refundacija". Identifikacija kupca se traži samo kad se vraća gotovina, kako propisuje Poreska uprava: uzima se sa originala, a kad je nema stižu polja "kupacIdBroj" i "kupacIdTip" (lična karta, pasoš stranog lica, strana lična karta), inače 422 sa jasnom porukom. Povraćaj na karticu, na račun ili drugim bezgotovinskim putem (PayPal) ne traži podatke kupca.
Da li kupac mora da dobije papirni račun?
Ne mora. Kod prodaje na daljinu račun se isporučuje elektronski: mi ga šaljemo na mejl kupca ako pošalješ posaljiMejl:true, ili ga ti preuzmeš kao PDF sa javnog linka iz odgovora i prikažeš ga u nalogu kupca i u svojoj potvrdi. Link radi bez prijave i bez API ključa, pa sme direktno u mejl.

Bezbednosni element i nalozi

Koristi se moj bezbednosni element ili tražite novi?
Koristi se tvoj, koji ti je Poreska već izdala, u obliku .pfx fajla. Predaješ ga sam u Podešavanja → Državni servisi → eUprava (fajl, lozinka i PAK); čuva se šifrovan i ne napušta server. Pametna kartica nam ne treba, ona je za hardverske uređaje.
Kako se rešava više portala ili više poslovnih prostora?
Više portala pod istim poslovnim prostorom radi kroz istu firmu, svaki sa svojim API ključem, bez dodatne licence. Poseban poslovni prostor sa svojim bezbednosnim elementom je posebna firma u nalogu, sa svojom pretplatom; prebacivanje je jedan klik.
Kako izgleda test pre produkcije?
Test se radi na zvaničnom sandbox okruženju Poreske uprave, sa test bezbednosnim elementom koji ona izdaje. U Podešavanjima upišeš sandbox adresu i test sertifikat, a prelazak na produkciju je zamena adrese i sertifikata. API ključ i tvoj kod ostaju isti. Testni nalog bez ikakvog elementa radi u simulaciji: račun se pravi lokalno, PFR broj počinje sa MOCK i ništa ne ide Poreskoj.
Kako da u kodu sprečim da test izda pravi račun?
Pri pokretanju pozovi GET /api/integrations/tax-labels i pročitaj polje okruzenje: „produkcija” znači prave račune kod Poreske uprave, „sandbox” probno okruženje Poreske, „simulacija” lokalnu simulaciju bez Poreske (demo nalog), „nepovezano” nalog bez bezbednosnog elementa koji fiskalizaciju odbija. Test konfiguracija sme da nastavi samo ako vrednost nije „produkcija”. Druga provera je na svakom odgovoru: pravi račun ima verifikacioniUrl na https://suf.purs.gov.rs/v/, sandbox račun na poddomenu sandbox.suf.purs.gov.rs, a simulirani PFR broj koji počinje sa MOCK. Testni i produkcijski ključ drži u odvojenim konfiguracijama, jer se po obliku ne razlikuju.
Kako se čuvaju poreske stope ako nisam u sistemu PDV-a?
Nalog se označi kao neobveznik i Tezga svaku stavku evidentira kao oslobođenu, bez obzira na stopu koju pošalješ. Šta nalog koristi možeš pročitati i kroz GET /api/integrations/tax-labels.

Cena i rokovi

Koji paket je potreban za direktan API pristup?
Direktan API, odlazni webhook i dvosmerna veza sa WooCommerce i Shopify prodavnicom su u paketu Biznis (2.390 RSD mesečno). Na ostalim paketima, uključujući Start, API zahtev dobija odgovor 402 sa objašnjenjem. Vezu ima i firma sa uključenim Enterprise nivoom, na bilo kom paketu, a firma koja je API ili web shop vezu koristila pre 16.09.2026. zadržava je na svom paketu. Ključ za terminal kase na Android uređaju nije integracija i radi u svakom paketu.
Ima li ugovorne obaveze i otkaznog roka?
Nema ni jednog ni drugog. Pretplata se plaća unapred za tri, šest ili dvanaest meseci i ne obnavlja se sama. Ako ne produžiš, pristup prestaje po isteku, a podaci ostaju za izvoz.
Koliko traje integracija?
Do prvog test računa obično pola radnog dana uz spremnog programera: jedan poziv za izdavanje, jedan za proveru stanja, jedan za storno. Pristup okruženju je isti dan, a prelazak na produkciju je promena podešavanja, ne novi razvoj.
Šta je na vama, a šta na meni?
Na nama: aktivacija, ispravnost fiskalizacije po rešenju Poreske uprave, dokumentacija i podrška pri integraciji. Na tebi: nalog i uplata, predaja bezbednosnog elementa i PAK-a, tvoj kod i odluka o prelasku na produkciju.

Podaci na računu iz web shopa i ERP-a

Šalje se ceo sadržaj računa ili samo ukupan iznos?
Ceo sadržaj, po stavci: naziv, šifra, količina, jedinica mere, cena sa PDV-om i poreska stopa za svaku stavku posebno. Ukupan iznos se ne šalje, Tezga ga računa iz stavki, pa se ne može desiti da zbir i stavke ne odgovaraju. Jedan račun nosi do 500 stavki. Ako šifra postoji u Tezginom katalogu, stavka se veže za taj artikal, pa izveštaj po artiklu radi i za web prodaju.
Kako se na fiskalnom računu vide popusti i promo kodovi iz shopa?
Kao popust, ne kao skrivena cena. Na /order šalješ popustProcenat ili popustRsd po stavci, i popustProcenat ili popustRsd na ceo račun (po nivou samo jedno polje). Popust na ceo račun Tezga raspoređuje po stavkama srazmerno osnovici, isto kao u aplikaciji, pa PDV po poreskim stopama ostaje tačan, a ostatak pare ide na najveću stavku. Kad stavka nosi šifru iz Tezginog kataloga, pošalji cenaIzZahteva:true: tada važe cena i popust iz zahteva, a iz kataloga naziv, jedinica mere i stopa. Web shop veze (WooCommerce, Shopify, PrestaShop, OpenCart, Magento, BigCommerce) uvek fiskalizuju cenu koju je kupac platio. Popust veći od iznosa, dva polja na istom nivou i popust uz katalošku šifru bez cenaIzZahteva vraćaju 422.
Kako se evidentiraju stope od 20 i 10 odsto kad je korpa mešovita?
Svaka stavka nosi svoju stopu, pa mešovita korpa nije poseban slučaj. Tezga radi sa tri poreske oznake Poreske uprave: Ђ za 20 odsto, Е za 10 odsto i А za oslobođeno. U API-ju stopu šalješ kao 20, 10, 0 ili pdv20, pdv10, oslobodjeno; za web shop konektor upisuješ mapiranje poreske klase iz shopa na jednu od te tri. Prazna stopa se tumači kao 20 odsto, nikad kao oslobođenje, a nepoznata vrednost vraća grešku umesto pogrešnog računa. Nula iz platforme se kod obveznika PDV-a ne tretira kao oslobođenje.
Prepoznaje li sistem da li je kupac fizičko ili pravno lice?
Po PIB-u. Ako uz porudžbinu stigne PIB, kupac se upisuje kao pravno lice: na fiskalnom računu ide identifikacija kupca 10:PIB, a kupac se nađe ili napravi u šifarniku po PIB-u. Bez PIB-a račun je maloprodajni. Konektori PIB uzimaju iz polja platforme: Magento iz customer_taxvat, PrestaShop iz siret, WooCommerce iz meta polja za PIB ili VAT, Shopify iz napomene porudžbine u obliku PIB: 123456789. Iz sopstvenog sistema ga jednostavno pošalješ u polju kupac.pib.
Ide li B2B račun iz web shopa i na SEF, ili to radi ERP?
Može iz Tezge. Za porudžbinu sa PIB-om tok fiskalni_i_sef izda fiskalni račun i isti dokument pošalje na SEF kao e-fakturu, sa fiskalnim PFR brojem kao referencom na fakturi. Tok sef šalje samo e-fakturu, bez fiskalizacije. Uslov je da firma ima svoj SEF API ključ u Podešavanjima; bez njega dokument dobije status nije povezan i čeka. Kupac iz javnog sektora sa JBKJS ne može u fiskalni tok, jer mu se izdaje isključivo e-faktura.
Kako ide avansni račun kad kupac plati karticom unapred?
Kroz posebnu adresu /api/integrations/advance: pošalješ iznos avansa, datum uplate, stopu i kupca, Tezga izda avansni račun. Kad robu isporučiš, isti poziv sa zatvori:true i stvarnim stavkama izda refundaciju avansa pa konačni račun, sa referencom na avans koju propis traži. Ako refundacija avansa ne prođe kod Poreske, konačni račun se ne izdaje, da ne bi nastao dupli promet. Web porudžbina plaćena unapred može i kroz /order sa tok:"avans" (i opcionim datumUplate): nastaje avansni račun na zbir porudžbine posle popusta, a zatvara se istim /advance pozivom sa zatvori:true i istim externalId. Tako radi porudžbina sa jednom poreskom stopom; mešane stope vraćaju 422 sa uputstvom za /advance. Kod porudžbine koja se plati i odmah isporuči avans nije potreban: jedan poziv na /order.
Radi li delimičan povraćaj, na primer jedan od tri artikla?
Radi. POST /api/integrations/refund sa vrsta:refundacija i spiskom stavki sa količinom vraća samo te stavke, a iznos se računa srazmerno originalu i umanjuje za ono što je već ranije vraćeno. Storno je uvek ceo račun. Refundacija u PFR-u nosi broj i vreme originalnog računa, pa je veza vidljiva i Poreskoj. Original se pronalazi po Tezginom documentId ili po tvom broju porudžbine.
Kako se stornira porudžbina kad kupac odustane, iz ERP-a ili iz shopa?
Iz ERP-a jednim pozivom na /api/integrations/refund po broju porudžbine. Iz Tezge dugmetom na porudžbini: fiskalni storno ili refundacija se izda, porudžbina dobije status refundirano, a u WooCommerce se upiše refund zapis i beleška, u Shopify beleška. Novac se kupcu ne vraća automatski, to ostaje na tvom platnom posredniku. Storno i refundacija izdati kroz API, kad prođu kod Poreske, okidaju webhook sa brojem porudžbine; radnje iz kase ne šalju događaj, pa ih ERP čita kroz GET documents.

Račun kupcu iz web shopa

Kako kupac iz web shopa dobije fiskalni račun?
Na dva načina, po tvom izboru. Prvi: Tezga sama pošalje mejl kupcu čim račun prođe kod Poreske, ako je uz porudžbinu stigla adresa i polje posaljiMejl:true, odnosno ako je u vezi sa shopom uključeno automatsko slanje. Drugi: u odgovoru na API poziv dobiješ javni link računa i PDF koji rade bez prijave i bez ključa, pa ih ugradiš u svoju potvrdu kupovine ili u nalog kupca. Mejl se ne šalje ako fiskalizacija nije prošla, da kupac ne dobije račun koji Poreska nema.
Je li račun PDF u prilogu ili samo link za proveru?
Oboje. Mejl nosi PDF računa u prilogu, a na samom računu je QR kod i adresa suf.purs.gov.rs za proveru kod Poreske uprave. Verifikacioni URL dobijaš i u odgovoru API-ja, pa ga možeš prikazati i sam. Svaki račun ima i javni link koji radi bez prijave, koristi se za deljenje i kopiju.
Može li mejl sa računom da nosi ime i podatke moje firme?
Može. U zaglavlju mejla stoji logo firme, pošiljalac se prikazuje pod imenom firme, odgovor kupca ide na tvoju adresu, a u podnožju su naziv, adresa, telefon i sajt. Logo je ugrađen u sam mejl, ne učitava se sa interneta; u mejlu se prikazuje PNG, JPG ili GIF do 200 KB, a bez loga stoje početna slova naziva. Uvodni tekst i naslov mejla menjaš u Podešavanjima, Mejlovi, Račun kupcu. PDF računa je u prilogu.

Obim, dostupnost i vezivanje sistema

Koliki obim API podnosi i može li da se podigne?
Podrazumevano 120 zahteva u minuti za izdavanje i refundaciju i 240 za čitanje, po firmi, ne po ključu ni po IP adresi. Granica je podešavanje naloga, ne kod: podiže se do 10.000 zahteva u minuti na zahtev, a najniže je 10. Svaki odgovor nosi X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset, pa tvoj sistem zna koliko još sme. Broj fiskalnih računa mesečno nije ograničen: uključeno je 3.000, preko toga 2 dinara po računu, a prodaja se ne zaustavlja.
Kakvu dostupnost i nadzor imate, kad shop radi non-stop?
Stanje sistema je javno, bez prijave, na /status: baza, fiskalizacija sa procentom uspešnih računa u poslednja 24 sata, slanje mejlova i pozadinski poslovi, uz spisak tekućih i poslednjih deset incidenata. Nadzor svakih 10 minuta proverava V-PFR, SUF, SEF, mejl i bazu. Kad Poreska ne odgovara, svi korisnici vide traku sa uputstvom, a Tezga sama ponavlja fiskalizaciju na 10 minuta, do 12 puta u 48 sata, i posle poslednjeg neuspeha otvara hitan tiket i šalje mejl firmi. Ugovorni nivo usluge sa garantovanim odzivom postoji na Enterprise nivou, u tri stepena: Standard (odziv 4 sata radnim danom), Prošireni (2 sata, 7 dana u nedelji, dežurni telefon 08-22 h) i Kritičan promet (30 minuta, 0-24, dežurstvo 0-24, imenovan inženjer).
Sa kojim e-commerce platformama već radite?
WooCommerce i Shopify imaju punu dvosmernu vezu: Tezga sama povlači porudžbine na 30 minuta i na dugme, fiskalizuje po statusu koji izabereš (plaćeno, isporučeno ili završeno) i upisuje broj računa nazad u porudžbinu. PrestaShop, OpenCart, Magento i Adobe Commerce, BigCommerce rade preko dolaznog webhook-a. WordPress bez WooCommerce-a, Wix, Gomag, custom sajt i headless prodavnice rade preko REST API-ja; n8n, Make i Zapier istim API-jem. Za WooCommerce postoji i dodatak koji u adminu prikazuje fiskalni račun uz porudžbinu, samo za čitanje.
Kako se artikli iz ERP-a nađu u Tezgi?
Preko API-ja, automatski. POST /api/integrations/products prima do 500 artikala po pozivu (šifra, naziv, cena sa PDV-om, poreska stopa, jedinica mere, GTIN, aktivan), a POST /api/integrations/customers do 500 kupaca (naziv, PIB sa proverom kontrolne cifre, matični broj, JBKJS, adresa, mejl, telefon). Artikal se prepoznaje po šifri, kupac po PIB-u, pa mejlu, pa nazivu; ništa se ne briše, a polje koje ne pošalješ ostaje kakvo jeste. Jedna loša stavka ne ruši ostale, a ponovljen poziv je bezbedan. Stanje zaliha se ne upisuje preko API-ja, da knjiga promena ostane tačna. Iz shopa se katalog prepisuje sam (WooCommerce, Shopify), a ručno ide uvoz iz Excel-a ili CSV-a.
Koliko integracija sme da bude na jednom nalogu?
Do 20 imenovanih API ključeva po firmi, po jedan za svaku integraciju, sa pauziranjem i sa dozvoljenim IP adresama po ključu; ključ samo za čitanje ne može da izda račun. Do 5 webhook adresa po firmi, svaka sa svojom tajnom. Svaki API poziv se beleži sa ključem, rutom i ishodom, pa se vidi koja integracija šta radi.

Uloge, podaci i ažuriranja

Kako se naplaćuje: po API pozivu, po računu ili fiksno?
Fiksna mesečna pretplata po paketu, plaćena unapred za 3, 6 ili 12 meseci, bez ugovora na određeno i bez naknade za uvođenje. API pozivi se ne naplaćuju. Fiskalni računi su uključeni do 3.000 mesečno, preko toga 2 dinara po računu. Za lance, marketplace platforme i sisteme sa sopstvenim razvojnim timom postoji Enterprise nivo, sa cenom na upit.
Kako izgleda podrška van radnog vremena?
Redovna podrška radi radnim danima, mejlom, telefonom, WhatsApp-om i Viberom, i odgovaraju ljudi koji softver pišu. Prijave se vode kao tiketi sa rokom prvog odgovora: hitan 4 sata, normalan 24 sata. Kad Poreska uprava ne radi, sistem to prepozna sam, obavesti sve korisnike i ponavlja fiskalizaciju bez čekanja na podršku. Dežurstvo vikendom i praznikom ugovara se na Enterprise nivou: dežurni telefon 08-22 h ili dežurstvo 0-24, imenovan inženjer.
Gde su podaci i ko vidi bezbednosni element?
Aplikacija i baza rade u Evropskoj uniji, u Frankfurtu; obrađivači su Vercel, Neon, Cloudflare i Resend, navedeni u Politici privatnosti. Sertifikat, lozinka, PAK i PIN čuvaju se šifrovano algoritmom AES-256-GCM, ne prikazuju se nazad ni tebi ni nama i koriste se isključivo u komunikaciji sa procesorom fiskalnih računa. API ključevi se čuvaju kao SHA-256 heš i vide se samo jednom, pri pravljenju. Pristup nalogu može da se ograniči na IP adrese firme, prijava ima dvofaktorsku zaštitu, a svaka administrativna radnja ostaje u dnevniku.
Koliko korisnika i kakve uloge postoje?
Tri uloge: administrator, menadžer i kasir. Kasiri rade pod svojim prijavama, pa svaki račun nosi ime onoga ko ga je izdao, a pazar se vidi po smeni i po kasiru. Paket Tezga ima jednog korisnika, Start i Posao po dva, a u paketu Biznis broj korisnika nije ograničen. Zaposleni dobija pozivnicu mejlom i sam postavlja lozinku; link važi 72 sata i koristi se jednom. U paketu Biznis jedan nalog vodi i više firmi, sa prebacivanjem jednim klikom. Knjigovođa se upiše kao kontakt i sam prima zakazane izveštaje, bez ulaska u kasu. Svaka radnja korisnika ostaje u dnevniku aktivnosti.
Ko arhivira fiskalne račune i koliko dugo se čuvaju?
Tezga, u bazi, uz svaki račun i verifikacioni link Poreske uprave. Fiskalni zapisi se ne brišu ni podešavanjem ni brisanjem naloga: firma koja je ikad izdala fiskalni račun se anonimizuje, a računi ostaju zbog zakonskog roka od 10 godina. Sve podatke firme preuzimaš jednim klikom kao ZIP, iz svih tabela, bez tajni. Uz dodatak za digitalnu arhivu (DMS Fascikla) svaki fiskalizovan račun ide i u e-arhivu u PDF/A obliku, sa arhivskom knjigom i rokovima čuvanja.
Šta se dešava kad Poreska promeni propise, da li ažuriranje prekida sajt?
Ne prekida. Tezga radi u oblaku, ažurira se na našoj strani i kod tebe nema instalacije: nova verzija se objavljuje kao celina i prebacuje u jednom trenutku, a prethodna ostaje spremna za vraćanje za nekoliko sekundi. Promene šeme baze su samo dodavanje, pa stari i novi kod rade nad istom bazom. Tezga je odobrena kao ESIR 1597 verzija 1.1; tehnička uputstva Poreske uprave (TaxCore) pratimo i ugrađujemo mi, a tvoj API ugovor se ne menja. Ispravnost veze sa V-PFR-om proverava se svake noći.
Mogu li da testiram integraciju pre nego što platim?
Probnog perioda nema, ali test nije uslovljen plaćanjem stvarnih računa. Na zahtev otvaramo demo nalog na 48 sata, sa podacima za probu, u kome računi ne idu Poreskoj: PFR broj počinje sa MOCK, a polje okruzenje u tax-labels vraća simulacija. Sa svojim test bezbednosnim elementom radiš na zvaničnom sandbox okruženju Poreske uprave. Prelazak na produkciju je zamena adrese i sertifikata; API ključ i tvoj kod ostaju isti.

API dokumentacija (PDF)

Kompletno uputstvo sa svim pozivima i primerima. Ažurirano 06.10.2026.. Integracija je besplatna.