Dokumentacija

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.

Kompletna dokumentacija

Puna referenca svih endpointa, sa primerima zahteva i odgovora, je na api.fiscomm.rs/docs.

Otvori api.fiscomm.rs/docs

Kako da počneš

Treba ti troje:

  1. Fiscomm nalog — otvoriš ga sam (otvori nalog).
  2. API ključ — vezan je za jedan shop, nađeš ga u nalogu.
  3. Bezbednosni element — sertifikat koji tražiš od Poreske uprave preko portala ePorezi; stiže kao fajl.
Za test ti bezbednosni element ne treba: uzmi DEMO API ključ i ceo tok radi odmah; bezbednosni element treba tek kad izdaješ prave račune.

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 nalogtest sertifikat, računi idu u sandbox Poreske uprave, nisu pravi
Produkcijski nalogtvoj 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}.

Poreske oznake ne upisuj u kod. Povuci ih sa 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:

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.

Sledeći korak

Otvori nalog i uzmi DEMO ključ.

Ceo tok iznad radi bez bezbednosnog elementa.

Otvori nalog