Fiscomm API — dokumentacija
Fiscomm ima REST API za fiskalizaciju. Šalješ podatke o porudžbini, dobijaš fiskalni račun — broj, QR kod, PDF i link za proveru. Bez uređaja i bez kucanja.
Puna referenca svih endpointa, sa primerima zahteva i odgovora, je na api.fiscomm.rs/docs.
Otvori api.fiscomm.rs/docsKako da počneš
Treba ti troje:
- Fiscomm nalog — otvoriš ga sam (otvori nalog).
- API ključ — vezan je za jedan shop, nađeš ga u nalogu.
- Bezbednosni element — sertifikat koji tražiš od Poreske uprave preko portala ePorezi; stiže kao fajl.
Autentikacija
API ključ šalješ kao Bearer token u standardnom Authorization zaglavlju.
Authorization: Bearer <tvoj-api-kljuc>Bazni URL je https://api.fiscomm.rs — isti za test i za produkciju. Ne postoji poseban test host.
| Nalog | Šta se dobija |
|---|---|
| DEMO nalog | test sertifikat, računi idu u sandbox Poreske uprave, nisu pravi |
| Produkcijski nalog | tvoj pravi sertifikat, računi su pravi fiskalni dokumenti |
Provera da ključ radi:
curl -X POST https://api.fiscomm.rs/auth/verify-api-token \
-H 'Authorization: Bearer $FISCOMM_API_KEY'Provera na koju firmu i shop je ključ vezan:
curl https://api.fiscomm.rs/auth/api-key/me \
-H 'Authorization: Bearer $FISCOMM_API_KEY'Prvi račun u test modu
invoiceType = training — račun prolazi ceo tok, ali nije pravi fiskalni račun.
POST https://api.fiscomm.rs/receipt/training/sale
Authorization: Bearer $FISCOMM_API_KEY
Content-Type: application/json
{
"orderNumber": "TEST-1001",
"items": [
{
"name": "Konsultacije, 1h",
"quantity": 1,
"unitPrice": 6000,
"totalAmount": 6000,
"labels": ["F"]
}
],
"payments": [
{ "type": "cash", "amount": 6000 }
],
"metaFields": { "order_id": "1001" }
}Odgovor sadrži invoiceNumber (PFR broj), invoicePdfUrl i verificationUrl (link za proveru kod Poreske uprave). Sliku QR koda povuci sa GET /archive/receipts/{invoiceNumber}.
GET /receipt/tax-rates za nalog kojim se autentikuješ. Oznake DEMO naloga (A, E, F) ne postoje na produkciji, gde su Ђ, Е, Г i А. Oznaka koja ne postoji na nalogu vraća ERR_01010.
Prelazak na živo
Promeniš training u normal i koristiš ključ produkcijskog naloga — istog hosta, istog oblika zahteva. Ono što uz to mora da se promeni su poreske oznake: iz odgovora GET /receipt/tax-rates tog naloga, a ne one iz primera iznad.
Ako integraciju piše AI
Postoji uputstvo pisano za jezičke modele — ne za čoveka. Ako integraciju radiš uz Claude, ChatGPT, Cursor ili sličan alat, daj mu ovaj link i dobićeš tačniji kod nego ako model pogađa iz primera:
- api.fiscomm.rs/llms-full.txt — ceo vodič: autentikacija, poreske oznake, idempotencija, avansni lanac, greške i zamke
- api.fiscomm.rs/llms.txt — kraća verzija, za kontekst manjeg obima
- api.fiscomm.rs/openapi.json — mašinski čitljiva OpenAPI specifikacija, sa svim poljima i tipovima
Za TypeScript postoji i SDK: github.com/Fiscomm/fiscomm-sdk-ts.
Poreske stope, storno, async/bulk/nacrti/avansi, pregled i greške — sve je na api.fiscomm.rs/docs.