Fiskalizacija za veb i aplikacije: API, konektori i naplata
Kako se fiskalni račun spaja sa prodavnicom ili aplikacijom: gotovi konektori za Woo i Shopify, jedan POST za custom, deset ruta, veb-huk i naplata.
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.
Ažurirano: 12.10.2026. | Verzija 2.0
Pravite prodavnicu, SaaS ili mobilnu aplikaciju i treba vam fiskalni račun. Ovo je kako se to spaja: gotov konektor gde postoji, jedan POST gde ne postoji, i gde u toj priči stoji naplata.
Naplata i račun su dve odvojene stvari
Ovo tim najčešće pomeša, pa stoji na vrhu. Novac i dokument idu različitim putem i rešavaju ih različiti sistemi.
Po platformi: gotov konektor ili jedan POST
| Platforma | Kako se spaja | Šta dobijate |
|---|---|---|
| WooCommerce | Dvosmerna veza, REST ključ iz Woo-a | Porudžbina se povlači, račun se izdaje i šalje kupcu, broj računa se upisuje nazad |
| Shopify | Dvosmerna veza, custom app i Admin API token | Isto kao Woo, uz pažnju na odobrenje za zaštićene podatke kupca |
| PrestaShop, Wix, OpenCart, Magento, BigCommerce | Ulazni webhook | Šaljete porudžbinu, dobijate račun, bez pisanja plugina |
| Next.js, React, Nuxt, Laravel, Django | POST /api/integrations/order?provider=custom | Pun API, deset ruta, webhook sa potpisom |
| Mobilna aplikacija | Isti API, poziv sa vašeg servera | Nikad iz same aplikacije, jer ključ ne sme na telefon |
| WordPress bez WooCommerce | Webhook iz forme ili plugina za plaćanje | Isto kao custom |
| Bez programera | Zapier, Make, n8n ili MCP konektor | Za jednostavne tokove |
Za dvosmerne veze postoji i poluautomatski režim: isključite automatsko pravljenje računa, porudžbine čekaju sa statusom „Čeka fiskalizaciju", pa ih fiskalizujete dugmetom. Korisno dok se tok ne slegne.
Prvi poziv
Jedan POST, jedan ključ u zaglavlju.
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 }
]
}'
Tri polja nose ceo tok:
externalIdje vaš broj porudžbine. Po njemu se garantuje da ista porudžbina ne može da se fiskalizuje dvaput, čak i ako pošaljete dva puta.tokbira dokument:fiskalni(račun),sef(e-faktura),fiskalni_i_sef(oba).cenaSaPdvje ono što je kupac stvarno platio. Akcije i kuponi su već unutra.
Odgovor nosi fiskalni sa PFR brojem, brojačem, ESIR brojem i vremenom, plus javniPdfUrl, PDF računa koji kupac otvara bez prijave. Taj link možete odmah pokazati na strani sa potvrdom porudžbine.
Šta API pokriva
| Ruta | Čemu služi |
|---|---|
order | Porudžbina postaje račun, e-faktura ili oboje |
advance | Avansni račun i njegovo zatvaranje pri isporuci |
refund | Storno i refundacija, ceo račun ili po stavkama |
copy | Kopija već izdatog računa |
documents | Stanje dokumenta i preuzimanje |
customers, products | Kupci i artikli |
transactions | Pregled prometa |
kalkulacija, nivelacija | Ulaz robe i promena cena |
Webhook umesto ispitivanja. Kasa vas zove kad se nešto desi, a telo nosi HMAC potpis koji proverite pre obrade: racun.fiskalizovan, racun.greska, refundacija.izvrsena, storno.izvrsen.
Storno i refundacija bez prijave u kasu. Isti ključ, ruta refund. storno je za pogrešno otkucan račun i ide na pun iznos sa pozivom na original. refundacija je povraćaj novca, ceo račun ili samo neke stavke. Kad procesor Poreske uprave padne, stiže 202, a ponovljeni zahtev šalje istu refundaciju, ne pravi novu.
Jedna važna granica: integracija ne pomera novac. Povraćaj kupcu radite kroz banku ili platni sistem, kasa samo izdaje dokument.
Naplata: šta ide uz šta
Srbija nema Stripe, pa izbor izgleda ovako.
| Način | Za koga | Napomena |
|---|---|---|
| Domaća kartica preko banke | Domaći kupci | Procesori AllSecure, Monri (WebPay, WSPay), Chip Card. Nijedna banka ni procesor ne objavljuje proviziju, sve ide na upit |
| IPS Skeniraj | Domaći kupci, jeftinije od kartice | QR Narodne banke, besplatno za kupca, traži ugovor sa bankom prihvatiocem |
| Posrednik (Paddle, Dodo, Polar) | Prodaja u inostranstvo | 5 do 6 odsto, preuzimaju porez u zemlji kupca |
| PayPal | Brz početak | Radi za firme iz Srbije, ali 7 do 8 odsto ukupno uz konverziju i isplatu |
| Pouzeće | Prodavnice sa isporukom | Kasa ga vodi kao prenos, ne kao gotovinu |
Način plaćanja se usklađuje sam. Pouzeće postaje Prenos, bankovni transfer Prenos, ček Ček, kartica Kartica, a PayPal i Stripe idu kao drugo bezgotovinsko. To nije kozmetika nego ono što Poreska uprava očekuje u zapisu.
B2B u istom toku. Ako kupac unese PIB (u Woo-u meta polje _billing_eu_vat_number, u Shopify-ju napomena „PIB:123456789"), izlazi dokument pogodan za knjiženje troška. Bez PIB-a ide maloprodaja.
Predračun i uplata prenosom, bez ručnog rada
Ovo rešava najdosadniji posao u B2B prodaji: neko naruči, vi pošaljete predračun, para stigne za tri dana, i neko mora da uhvati tu uplatu i izda dokument.
Kroz API se to zatvara samo. Pošaljete porudžbinu sa tipDokumenta: "predracun" i obaveznim pozivNaBroj, a polje tok kaže šta nastaje kad para stigne.
{
"externalId": "NALOG-118",
"tipDokumenta": "predracun",
"tok": "sef",
"model": "97",
"pozivNaBroj": "97-118-2026",
"kupac": { "naziv": "Firma DOO", "pib": "115468360" },
"nacinPlacanja": "Prenos",
"posaljiMejl": true,
"stavke": [
{ "naziv": "Notarska taksa", "kolicina": 1, "cenaSaPdv": 30240, "poreskaStopa": "20" }
]
}
Tok je: predračun izdat, kupcu ode mejl sa IPS QR kodom, izvod stigne na mejl kase, uplata se upari po pozivu na broj, konačan dokument se izda i veže za predračun.
Zašto je poziv na broj obavezan. Bez njega uparivanje pada na „tačno jedna nesparena uplata sa istim iznosom". Kod ponovljivih iznosa, kao što su takse, pretplate i članarine, to ili ćuti ili upari tuđu uplatu, pa bi nastao pogrešan račun. Zato API radije odbije predračun bez poziva na broj.
Predračun nije fiskalni račun i ne ide preko fiskalnog uređaja. On je poziv na plaćanje, a poreska obaveza nastaje konačnim računom.
Cena za one koji idu preko API-ja
Firma koja kuca isključivo kroz API ne mora na mesečnu pretplatu. Paket Po računu je 4 RSD po fiskalnom računu poslatom Poreskoj upravi, i isto toliko po refundaciji. Plaća se dopunom unapred, 2.000, 5.000, 10.000 ili 20.000 dinara, a kredit važi 12 meseci.
Kad se kredit potroši, kasa odradi još 100 računa pa API vraća 402 dok se ne dopuni. Taj grejs period je dovoljan da neko primeti pre nego što prodaja stane.
Pet zamki koje koštaju
- Dupli račun. Ako pošaljete istu porudžbinu dvaput, ili ako stignu i webhook i automatsko povlačenje, račun se izdaje jednom. To garantuje baza preko
externalId, a ne provera u vašem kodu. Ali kod sopstvene integracije i vi morate da pamtite identifikator događaja. - Ključ u pregledaču ili u mobilnoj aplikaciji. API ključ ide isključivo na server. Iz aplikacije zovete svoj bekend, ne kasu.
- Prva proba na produkciji. Fiskalni račun se ne briše, postoji samo storno koji je i sam događaj. Test okruženje postoji, koristite ga.
- Shopify i zaštićeni podaci kupca. Novije prodavnice na osnovnoj pretplati ne prosleđuju mejl i ime dok aplikacija ne dobije odobrenje. Bez toga automatsko slanje računa ne radi. Pokrenite odobrenje rano.
- Cena iz kataloga umesto plaćene. Račun mora da nosi ono što je kupac platio, sa akcijom i kuponom unutra. Kad šifra artikla postoji u katalogu, iz kataloga se uzimaju naziv, jedinica mere i poreska stopa, a cena ostaje iz prodavnice.
Česta pitanja
Treba li mi uređaj? Ne. Reč je o cloud rešenju sa procesorom Poreske uprave, pa integracija ide preko API-ja ili konektora.
Mogu li da zovem API direktno iz mobilne aplikacije? Ne. Ključ ide na server, a aplikacija zove vaš bekend.
Šta se dešava ako pošaljem istu porudžbinu dvaput? Nastaje jedan račun. Jedinstvenost garantuje baza preko polja externalId.
Da li mogu da izdam e-fakturu umesto fiskalnog računa? Da, poljem tok. Vrednosti su fiskalni, sef i fiskalni_i_sef.
Koliko košta ako radim samo preko API-ja? Paket Po računu je 4 RSD po fiskalnom računu, uz dopunu unapred i kredit koji važi 12 meseci.
Sledeći korak
Napravite ključ, otvorite test okruženje i pošaljite prvi poziv iz primera. Ako integraciju piše AI alat, dajte mu opis API-ja u standardnom obliku, da ne izmišlja polja.
GoSimple · Tezga fiskalna kasa
Izvori (provereno 12.10.2026)
- Zakon o fiskalizaciji: https://www.paragraf.rs/propisi/zakon-o-fiskalizaciji-republike-srbije.html
- Poreska uprava, tehnički vodič i testno okruženje: https://www.purs.gov.rs/eFiskalizacija/tehnicki-vodic.html
- Registar odobrenih elemenata: https://www.purs.gov.rs/eFiskalizacija/registar-odobrenih-elemenata-efu.html
- Narodna banka Srbije, IPS na internet prodajnim mestima: https://ips.nbs.rs/ips-mesta-i-nacini-placanja/ips-na-internet-prodajnim-mestima
- Stripe, spisak dostupnih zemalja: https://stripe.com/global