REST API za izdavanje fiskalnih računa u Srbiji (e-fiskalizacija Poreske uprave). Ovo je cela površina API-ja — jedan poziv za račun, po jedan za avans i refundaciju.
| Bazni URL | https://api.fiskalapi.rs |
|---|---|
| Format | JSON (Content-Type: application/json) |
| Autentikacija | Authorization: Bearer <API_KLJUC> |
Dobijaš dva ključa. fapi_test_… radi u sandbox režimu — pravi tok, probni računi, ne naplaćuje se i ne troši limit. fapi_live_… izdaje prave fiskalne račune. Isti pozivi, samo zameniš ključ.
POST /api/racuni — promet prodaja (fiskalni račun)
curl https://api.fiskalapi.rs/api/racuni \
-H "Authorization: Bearer fapi_live_…" \
-H "Content-Type: application/json" \
-d '{
"nacinPlacanja": "Card",
"items": [
{ "name": "Pretplata Pro", "quantity": 1, "unitPrice": 2400, "labels": ["А"] }
]
}'
{
"mode": "live",
"brojRacuna": "NRXJ2JLE-XXXXXXXX-1",
"qrKod": "data:image/png;base64,…",
"verifikacija": "https://suf.purs.gov.rs/v/?vl=…",
"zurnal": "…tekstualni fiskalni isečak…",
"brojaci": { "invoiceCounter": 1, "totalCounter": 1 }
}
| Polje | Opis |
|---|---|
items[] | Stavke: name, quantity, unitPrice (RSD), labels (poreske oznake), opciono gtin. Umesto stavki može i amountRsd + description. |
payments[] / paymentType | Način plaćanja: Cash, Card, WireTransfer, Voucher, MobileMoney, Check, Other. |
labels | Poreske oznake iz GET /api/status. Npr. А = Nije u PDV (0%), Ђ = opšta (20%), Е = posebna (10%). |
buyerId | Opciono — identifikacija kupca (npr. "10:PIB") za račun na firmu. |
transactionId | Opciono — tvoj ID; služi kao idempotency ključ (isti ID se ne fiskalizuje dvaput). |
POST /api/racuni/avans — za pretplate i uplate unapred. Ista struktura tela kao promet prodaja.
POST /api/racuni/refundacija — zahteva referentDocumentNumber (PFR broj originalnog računa) i referentDocumentDT.
GET /api/status — podaci obveznika, ESIR i aktuelne poreske stope (oznake i procenti). Uvek povlači stope od Poreske uprave — nikad ih ne kucaj ručno.
GET /api/usage — broj računa, mesečni trošak i iskorišćenost limita za tekući mesec (opciono ?month=YYYY-MM).
| Kod | Značenje |
|---|---|
401 | Nevalidan API ključ. |
403 | Nalog nije aktivan ili je suspendovan (neizmirena obaveza). |
402 | Dostignut mesečni limit računa. |
400 | Neispravno telo zahteva (npr. zbir plaćanja ≠ iznos, nepoznata oznaka). |
502 | Greška prema V-PFR-u Poreske uprave — ponovi zahtev. |