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
Svi odgovori su plain text (UTF-8 encoded), izuzev HELP koji je HTML (ISO-8859-2).
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.
Gasi program. Korisno za pokretanje i zatvaranje HrFiskalizatora iz korisničke aplikacije.
Poziv: http://localhost:8449/fiskal?zadatak=EXIT
Provjera radi li program i odgovara li na port.
Poziv: http://localhost:8449/fiskal?zadatak=PING
Odgovor: OK ili povrata nema.
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.
Provjera je li program usmjeren na Produkcijski ili Testni server PU.
Poziv: http://localhost:8449/fiskal?zadatak=GETSERVER
Odgovor: Produkcijski ili Testni
Vraća verziju učitanog programa.
Poziv: http://localhost:8449/fiskal?zadatak=GETHRFVERSION
Vraća trenutno sistemsko vrijeme.
Poziv: http://localhost:8449/fiskal?zadatak=VRIJEME
Odgovor: 23.09.2016T19:13:35
Vraća trenutnu konfiguraciju programa.
Poziv: http://localhost:8449/fiskal?zadatak=GETCONFIG
Vraća konfiguraciju za pojedini property.
Poziv: http://localhost:8449/fiskal?zadatak=GETSINGLECONFIG&property=PORT
Odgovor: Vrijednost property-ja ili poruka greške.
Vraća sadržaj HrFiskalizator.log datoteke.
Poziv: http://localhost:8449/fiskal?zadatak=GETERRORLOG
Vraća trenutno stanje memorije unutar JVM.
Poziv: http://localhost:8449/fiskal?zadatak=GETMEMORY
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
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).
- 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):
| Red | Sadržaj |
|---|---|
| 1 | UID poruke |
| 2 | JIR (jedinstveni identifikator računa) |
| 3 | Vrijeme iz datoteke primljene od PU |
| 4 | ZKI izračunan na osnovu podataka iz XML poruke |
U slučaju greške: prazni redovi + ZKI + poruka greške.
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:
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.
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.
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.
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.
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
Generira jedinstveni broj (UUID).
Poziv: http://localhost:8449/fiskal?zadatak=GENERIRAJUID
Odgovor: Generirani UUID.
Izračun ZKI na osnovu parametar.
Poziv: http://localhost:8449/fiskal?zadatak=GENERIRAJZKI
POST parametri (urlencoded):
| Parametar | Format | Primjer |
|---|---|---|
time | DD.MM.YYYY HH:mm:ss | 23.09.2016 19:13:35 |
oib | 11 znamenaka | 17052038498 |
brrac | Broj računa | 2571 |
iznosrac | Iznos (točka kao separator) | 200.00 |
brpos | Broj poslovnice | 1 |
brnaplatnog | Broj naplatnog uređaja | 1 |
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
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
| Parametar | Opis |
|---|---|
text | Tekst za konverziju (urlencoded ili base64) |
barcodetype | QRCODE ili PDF417 |
width | Širina u pikselima |
height | Visina u pikselima (ako > width → vertikalni) |
imagetype | png, jpg, bmp, gif |
encoded | true 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
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);
})
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);
})
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.
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
Konverzija Invoice XML u formate za direktno izvještavanje ePoreznoj.
Parametar vrstadokumenta:
| Vrijednost | Format |
|---|---|
I | EvidentirajERacunZahtjev — izlazni račun |
M | EvidentirajERacunZa |
IR | EvidentirajIsporukuZaKojuNijeIzdanERacunZahtjev |
NAPLATA | EvidentirajNaplatuZahtjev |
ODBIJANJE | EvidentirajOdbijanjeZahtjev |
U | EvidentirajERacunZahtjev — 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..
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
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.
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.
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
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
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
Mogući zadaci:
DohvatiRadnoVrijemeZahtjevObrisiRadnoVrijemeZahtjevPrijaviRadnoVrijemeZahtjevPrijaviRadnoVrijemeZaPoslovniceZahtjev
$.ajax({
url: 'http://localhost:8449/fiskal?zadatak=DOHVATIRADNOVRIJEMEZAHTJEV',
method: 'post',
data: encodeURIComponent(xmlSource)
}).done(function (response) {
console.log(response);
})
Certifikati
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 1 | Primjer 2 |
|---|---|
![]() |
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.
|
Server način rada — HTTP API referenca
