Home Server način rada — HTTP API referenca

Općenito

Upit se upućuje na adresu: http://localhost:port/fiskal?zadatak=upit

"localhost", ako Hrf nije na istom računalu, mora biti zamijenjen lokalnom ili javnom IP adresom.

Defaultni port: 8449. Ako u postavkama nije definiran Login i Password, server je dostupan bez autentikacije.

Defaultni Login/Password: login / password

Autentikacija: Neki klijenti (uključujući većinu suvremenih browsera) ne mogu poslati autentikaciju kroz URL string. HrFiskalizator prihvaća autentikaciju i kroz HTTP header.

Svi odgovori su plain text (UTF-8 encoded), izuzev HELP koji je HTML (ISO-8859-2).

Detekcija servera

Služi za provjeru prisutnosti servera bez pokretanja procedura unutar programa.

Poziv: http://localhost:8449

Odgovor: HrFiskalizator on port : 8449

Ako je definiran Login i Password, samo ovaj poziv je dostupan bez autentikacije.

EXIT

Gasi program. Korisno za pokretanje i zatvaranje HrFiskalizatora iz korisničke aplikacije.

Poziv: http://localhost:8449/fiskal?zadatak=EXIT

PING

Provjera radi li program i odgovara li na port.

Poziv: http://localhost:8449/fiskal?zadatak=PING

Odgovor: OK ili povrata nema.

ECHO

Provjera može li program komunicirati sa serverom Porezne uprave, u sustavu fiskalizacije 1.0.

Poziv: http://localhost:8449/fiskal?zadatak=ECHO

Odgovor: True ili povrata nema.

GETSERVER

Provjera je li program usmjeren na Produkcijski ili Testni server PU.

Poziv: http://localhost:8449/fiskal?zadatak=GETSERVER

Odgovor: Produkcijski ili Testni

GETHRFVERSION

Vraća verziju učitanog programa.

Poziv: http://localhost:8449/fiskal?zadatak=GETHRFVERSION

DOHVATIVRIJEME (VRIJEME)

Vraća trenutno sistemsko vrijeme.

Poziv: http://localhost:8449/fiskal?zadatak=VRIJEME

Odgovor: 23.09.2016T19:13:35

GETCONFIG

Vraća trenutnu konfiguraciju programa.

Poziv: http://localhost:8449/fiskal?zadatak=GETCONFIG

GETSINGLECONFIG

Vraća konfiguraciju za pojedini property.

Poziv: http://localhost:8449/fiskal?zadatak=GETSINGLECONFIG&property=PORT

Odgovor: Vrijednost property-ja ili poruka greške.

GETERRORLOG

Vraća sadržaj HrFiskalizator.log datoteke.

Poziv: http://localhost:8449/fiskal?zadatak=GETERRORLOG

GETMEMORY

Vraća trenutno stanje memorije unutar JVM.

Poziv: http://localhost:8449/fiskal?zadatak=GETMEMORY

FREEMEMORY

Zahtijeva oslobađanje memorije od Garbage Collectora. Korisno kod velikog broja zadataka.

Poziv: http://localhost:8449/fiskal?zadatak=FREEMEMORY

Odgovor: Trenutno stanje memorije unutar JVM.

Fiskalizacija

RACUNZAHTJEV (RZ) Fiskalizacija

Slanje računa na fiskalizaciju.

Poziv: http://localhost:8449/fiskal?zadatak=RACUNZAHTJEV&brfak=1234

POST: XML string u parametru DATA (RacunZahtjev prema Tehničkim specifikacijama PU).

Napomene:
  • Ako u postavkama nije omogućen upis UUID-a i Vremena slanja, potrebno je u XML zahtjevu upisati vrijednosti u tagove <IdPoruke> i <DatumVrijeme>.
  • <ZastKod> se uvijek izračunava i popunjava — nije ga potrebno upisivati.

Primjer XML datoteke:

Odgovor

String od 4 elementa (odvojena linijskim separatorom):

RedSadržaj
1UID poruke
2JIR (jedinstveni identifikator računa)
3Vrijeme iz datoteke primljene od PU
4ZKI izračunan na osnovu podataka iz XML poruke

U slučaju greške: prazni redovi + ZKI + poruka greške.

RACUNPROVJERAZAHTJEV (RZP) Provjera

Provjera ispravnosti računa (ne fiskalizira nego provjerava ispravnost).

Ne provjerava dali je račun fiskaliziran u CISu.

Odgovor: UUID + rezultat provjere (npr. "Poruka je ispravna." ili opis greške).

Poziv: http://localhost:8449/fiskal?zadatak=RACUNPROVJERAZAHTJEV&brfak=1234

Svi parametri istovjetni kao kod RACUNZAHTJEV. Primjer datoteke:

PRATECIDOKUMENTIZAHTJEV (PDZ) UKINUTO 01.01.2026

Slanje pratećeg dokumenta.

Poziv: http://localhost:8449/fiskal?zadatak=PRATECIDOKUMENTIZAHTJEV&brfak=1234

Svi parametri istovjetni kao kod RACUNZAHTJEV. Primjer:

Odgovor: Istovjetan kao kod RACUNZAHTJEV.

RACUNPDZAHTJEV (RPDZ) UKINUTO 01.01.2026

Slanje računa za prateći dokument.

Poziv: http://localhost:8449/fiskal?zadatak=RACUNPDZAHTJEV&brfak=1234

Svi parametri istovjetni kao kod RACUNZAHTJEV. Primjer:

Odgovor: Istovjetan kao kod RACUNZAHTJEV.

PROMIJENINACPLACZAHTJEV Izmjena načina plaćanja

Izmjena načina plaćanja na već fiskaliziranom računu.

Poziv: http://localhost:8449/fiskal?zadatak=PROMIJENINACPLACZAHTJEV&brfak=1234

Svi parametri istovjetni kao kod RACUNZAHTJEV. Primjer:

Detalje pogledajte u "Fiskalizacija - Tehnička specifikacija za korisnike v2.2" str. 30.

Odgovor (uspijeh)

P001                                    <-- Kod uspjele operacije
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX    <-- String od 36 znakova (isti kao JIR)

d81d9cc814538e5c3f4c9a1f82a0fbad        <-- ZKI

U slučaju greške u 4. redu pokušava vratiti razloge greške.

NAPOJNICAZAHTJEV od v60

Slanje XML napojnice nakon uspješne fiskalizacije računa.

Poziv: http://localhost:8449/fiskal?zadatak=NAPOJNICAZAHTJEV&brfak=1234

Svi parametri istovjetni kao kod RACUNZAHTJEV. Primjer:

Detalje pogledajte u "Fiskalizacija - Tehnička specifikacija za korisnike v2.5" str. 46.

Dokumentacija (PDF)

Odgovor (uspijeh)

P036956ee-5b08-4187-92c6-22833652176e    <-- UID povratne poruke
Uspješna dostava podataka o napojnici.   <-- Poruka
26.10.2023T17:07:02                      <-- Vrijeme primitka
p002                                     <-- Oznaka uspijeha

Odgovor (greška)

P036956ee-5b08-4187-92c6-22833652176e
OIB iz poruke zahtjeva nije jednak OIB-u iz certifikata.
26.10.2023T17:07:02
s005                                     <-- Šifra greške
GENERIRAJUID (GUID)

Generira jedinstveni broj (UUID).

Poziv: http://localhost:8449/fiskal?zadatak=GENERIRAJUID

Odgovor: Generirani UUID.

GENERIRAJZKI (GZKI)

Izračun ZKI na osnovu parametar.

Poziv: http://localhost:8449/fiskal?zadatak=GENERIRAJZKI

POST parametri (urlencoded):

ParametarFormatPrimjer
timeDD.MM.YYYY HH:mm:ss23.09.2016 19:13:35
oib11 znamenaka17052038498
brracBroj računa2571
iznosracIznos (točka kao separator)200.00
brposBroj poslovnice1
brnaplatnogBroj naplatnog uređaja1

Primjer POST body-a:

time=23.09.2016 19:13:35&oib=17052038498&brrac=2571&iznosrac=200.00&brpos=1&brnaplatnog=1

Odgovor: Izračunati ZKI broj.


QR kod i barkod

QRCODE / CREATEBARCODE

Generiranje QR koda ili PDF417 barkoda.

Poziv (od verzije 46)

http://localhost:8449/fiskal?zadatak=CREATEBARCODE&text=base64encodedText&barcodetype=QRCODE&width=200&height=200&returnasblob=true&imagetype=png&encoded=true

Parametri

ParametarOpis
textTekst za konverziju (urlencoded ili base64)
barcodetypeQRCODE ili PDF417
widthŠirina u pikselima
heightVisina u pikselima (ako > width → vertikalni)
imagetypepng, jpg, bmp, gif
encodedtrue ako je text base64 encoded

Sekvenca \r\n u textu tretira se kao novi red.

Odgovor: BASE64 formatirani string koji sadrži image (data:image/png;base64,...).

Validacija i konverzija

PEPPOLVALIDATOR od v70

Provjera UBL strukturiranih XML dokumenata putem PEPPOL API-ja.

$.ajax({
    url: 'http://localhost:8449/app/PEPPOLVALIDATOR?vesid=org.oasis-open:invoice:2.1',
    method: 'post',
    data: encodeURIComponent(xmlDocument)
}).done(function (response) {
    console.log(response);
})
XSD provjera eRačuna od v78

Provjera eRačuna (XML ili JSON) putem lokalnih XSD datoteka.

XML

$.ajax({
    url: 'app/eizvjestavanje/xml?action=TESTIRAJLOGIKU&soapaction=Invoice',
    method: 'post',
    data: encodeURIComponent(xmlDocument)
}).done(function (response) {
    console.log(response);
})

JSON

$.ajax({
    url: 'app/eizvjestavanje/json?action=TESTIRAJLOGIKU&soapaction=Invoice',
    method: 'post',
    data: encodeURIComponent(jsonString)
}).done(function (response) {
    console.log(response);
})
XMLVALIDATORLOCALXSD od v76

Provjera XML dokumenata Fiskalizacije 2.0. Vraća opsežan opis grešaka.

$.ajax({
    url: 'app/XMLVALIDATORLOCALXSD',
    method: 'post',
    data: encodeURIComponent(xmlDocument)
}).done(function (response) {
    console.log(response);
})

Za jednostavan JSON odgovor koristite app/XMLSIMPLEVALIDATOR — vraća {"xsd":[],"xsl":[]} ako nema grešaka.

JSONTOXML Fiskalizacija 2.0

Konverzija JSON dokumenata Fiskalizacije 2.0 u XML format.

$.ajax({
    url: 'http://localhost:8449/app/JSONTOXML?clean',
    method: 'post',
    data: encodeURIComponent(jsonString)
}).done(function (response) {
    console.log(response);
})

Parametar clean uklanja prazne redove i komentare iz konvertiranog XML-a.

Detalje o sustavu proučite u programerskom web meniju lokalne instalacije..

eIzvještavanje direktno poreznoj upravi

ERACUN2EIZVJESTAVANJE

Konverzija Invoice XML u formate za direktno izvještavanje ePoreznoj.

Parametar vrstadokumenta:

VrijednostFormat
IEvidentirajERacunZahtjev — izlazni račun
MEvidentirajERacunZa
IREvidentirajIsporukuZaKojuNijeIzdanERacunZahtjev
NAPLATAEvidentirajNaplatuZahtjev
ODBIJANJEEvidentirajOdbijanjeZahtjev
UEvidentirajERacunZahtjev — ulazni račun
$.ajax({
    url: 'http://localhost:8449/app/eizvjestavanje/xml?action=ERACUN2EIZVJESTAVANJE&soapaction=Invoice&vrstadokumenta=I',
    method: 'post',
    data: encodeURIComponent(xmlDocument)
}).done(function (response) {
    console.log(response);
})

Detalje o sustavu proučite u programerskom web meniju lokalne instalacije..

Slanje dokumenata eIzvještavanja

Dokumenti se potpisuju FISKAL certifikatom.

Parametar soapaction mora poštovati velika i mala slova!

$.ajax({
    url: 'http://localhost:8449/app/eizvjestavanje/xml?action=SEND&soapaction=EvidentirajERacunZahtjev',
    method: 'post',
    data: encodeURIComponent(xmlDocument)
}).done(function (response) {
    console.log(response);
})

Pretrage

KPDSEARCH od v78

Pretraga KPD specifikacija po: NAME, CODE, SECTOR.

$.ajax({
    url: 'http://localhost:8449/app/KPDSEARCH?trazipo=NAME&pojam=kosilic&limit=10',
    method: 'GET'
}).done(function (response) {
    console.log(response);
})

Parametar limit: broj rezultata (default 30). Pretraga nije case-sensitive.

JMSEARCH od v78

Pretraga oznaka jedinice mjera.

$.ajax({
    url: 'http://localhost:8449/app/JMSEARCH?pojam=komad&limit=5',
    method: 'GET'
}).done(function (response) {
    console.log(response);
})

Pretražuje pojmove unutar specifikacija, a ako ne nađe — pokušava naći kod. Default limit: 10.

GETMPSFOROIB od v89

Dohvat podataka o informacijskom posredniku AMS sustavu za pojedini OIB.

$.ajax({
    url: 'http://localhost:8449/app/GETMPSFOROIB?oib=xxxxxxxxxxx',
    method: 'GET'
}).done(function (response) {
    console.log(response);
})

Proxy

PROXY FUNKCIJA

Učitavanje bilo koje stranice sa interneta bez CORS ograničenja. Podržava HTTP i HTTPS.

$.ajax({
    url: 'http/api.ipify.org/?format=txt',
    method: 'GET'
}).done(function (response) {
    console.log(response);
})

Za stranice koje zahtijevaju login, autentikacija se proslijeđuje kroz header Target-authorization u formatu login:password.

Vizualizacija eRačuna

INVOICE KREATOR

Generiranje HTML-a ili PDF-a sa vizualizacijom eRačuna.

PDF se generira ako je html=false ili izostavljen. Za HTML: html=true.

$.ajax({
    url: 'http://localhost:8449/web/izvjestaji/invoice_creator.php?html=true',
    method: 'post',
    data: xmlSource
}).done(function (response) {
    console.log(response);
})

Radno vrijeme

OPERACIJE SA RADNIM VREMENOM POSLOVNIH OBJEKATA od v80

Mogući zadaci:

  • DohvatiRadnoVrijemeZahtjev
  • ObrisiRadnoVrijemeZahtjev
  • PrijaviRadnoVrijemeZahtjev
  • PrijaviRadnoVrijemeZaPoslovniceZahtjev
$.ajax({
    url: 'http://localhost:8449/fiskal?zadatak=DOHVATIRADNOVRIJEMEZAHTJEV',
    method: 'post',
    data: encodeURIComponent(xmlSource)
}).done(function (response) {
    console.log(response);
})

Certifikati

CETRTIFICATEFACTS

Provjera detalja o certifikatu. Šalje se URL encoded XML kao POST ili certifikat iz F20 dokumenta (Base64 encoded).

$.ajax({
    url: 'http://localhost:8449/app/CETRTIFICATEFACTS',
    method: 'post',
    data: encodeURIComponent(xmlSource)
}).done(function (response) {
    console.log(response);
})

Primjeri višekorisničke uporabe

Primjer 1Primjer 2
Jedan prema više
Pažnja: Kod ovog primjera komunikacija preko interneta nema enkripciju — primjenjuje se samo osnovna zaštita Loginom i Passwordom.

Potrebno je na ruteru port koji koristi HrFiskalizator preusmjeriti na računalo na kojem radi.

Višekorisnička uporaba preko interneta