No description
  • C# 94.5%
  • PowerShell 5.5%
Find a file
Josip Stjepanović 3daa6a14eb README update.
2026-04-28 11:57:47 +02:00
ILLink Add project files. 2026-04-28 11:53:38 +02:00
Merged Add project files. 2026-04-28 11:53:38 +02:00
Properties Add project files. 2026-04-28 11:53:38 +02:00
.gitattributes Add .gitattributes, .gitignore, and README.md. 2026-04-28 11:53:35 +02:00
.gitignore Add .gitattributes, .gitignore, and README.md. 2026-04-28 11:53:35 +02:00
App.config Add project files. 2026-04-28 11:53:38 +02:00
fisknap.csproj Add project files. 2026-04-28 11:53:38 +02:00
fisknap.sln Add project files. 2026-04-28 11:53:38 +02:00
merge.ps1 Add project files. 2026-04-28 11:53:38 +02:00
packages.config Add project files. 2026-04-28 11:53:38 +02:00
Program.cs Add project files. 2026-04-28 11:53:38 +02:00
README.md README update. 2026-04-28 11:57:47 +02:00

fisknap Fiskalizacija Napojnica

Konzolna aplikacija za fiskalizaciju napojnica prema hrvatskom sustavu fiskalizacije (CIS Porezna uprava RH).

Aplikacija dohvaća podatke o napojnici iz MySQL baze podataka, gradi i potpisuje XML poruku prema shemi f73, te je šalje na CIS servis. Rezultat (odgovor servisa) sprema se u bazu u tablicu fiskal_log, a uspješno fiskalizirana napojnica označava se u tablici napojnica.


Zahtjevi

  • .NET Framework 4.7.2
  • MySQL baza podataka
  • Digitalni certifikat (.pfx / .p12) za potpisivanje XML poruke (izdan od strane FINA-e)

Parametri pokretanja

Aplikacija se pokreće iz komandne linije i prima sljedeće obavezne parametre u obliku ključ=vrijednost:

Parametar Opis Primjer
id ID napojnice u bazi podataka (integer) id=42
server Adresa MySQL poslužitelja server=localhost
user Korisničko ime za bazu podataka user=root
pass Lozinka za bazu podataka pass=tajna
db Naziv baze podataka db=moja_baza
cert Putanja do certifikata (.pfx / .p12) cert=C:\certs\firma.pfx
certpass Lozinka certifikata certpass=lozinkacerta

Opcionalni parametar:

Parametar Opis Zadana vrijednost
port Port MySQL poslužitelja 3306

Primjer pokretanja

fisknap.exe id=42 server=localhost user=root pass=tajna db=moja_baza cert=C:\certs\firma.pfx certpass=lozinkacerta

Struktura baze podataka

Aplikacija koristi sljedeće tablice:

Tablica Opis
napojnica Podaci o napojnici (iznos, sredstvo plaćanja, status)
zag_skla Zaglavlje skladišnog računa
kartice Stavke računa s poreznim podacima
blagajna Podaci o načinu plaćanja
sifarnik Šifarnik artikala
tarifna_porezi Porezne stope po tarifama
odjel Odjeli (sadrži oznaku uređaja)
poslovna Poslovne jedinice (sadrži oznaku prostora)
podgod Poslovne godine
partner Podaci o poduzećima (OIB, PDV status)
zaposlenik Zaposlenici (OIB operatera)
sredstvo_placanja Šifarnik sredstava plaćanja
fiskal_log Log fiskalizacijskih zahtjeva i odgovora

Tablica fiskal_log treba sadržavati stupce: id, datum, vrijeme, uuid, poslano, odgovor.

Tablica napojnica treba sadržavati stupac fiskalizirana koji se postavlja na 'da' nakon uspješne fiskalizacije.


Tijek rada

  1. Aplikacija čita parametre iz komandne linije.
  2. Dohvaća podatke o napojnici i vezanom računu iz baze.
  3. Gradi XML poruku prema shemi NapojnicaZahtjev (namespace: http://www.apis-it.hr/fin/2012/types/f73).
  4. Potpisuje XML poruku RSA algoritmom koristeći priloženi certifikat.
  5. Omata poruku u SOAP envelope i šalje je na CIS servis.
  6. Sprema zahtjev i odgovor u tablicu fiskal_log.
  7. Ako je odgovor HTTP 200, označava napojnicu kao fiskaliziranu (fiskalizirana = 'da').

CIS servis

Okolina URL
Test https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest
Produkcija https://cis.porezna-uprava.hr:8449/FiskalizacijaService

Napomena: U kodu je trenutno aktivan testni URL. Za produkciju zamijenite URL u Program.cs.


Logiranje

Aplikacija zapisuje log u datoteku fisknap.log u istom direktoriju kao i izvršna datoteka. Bilježe se:

  • Parametri pokretanja
  • Greške pri dohvatu podataka iz baze
  • Greške pri potpisivanju XML-a
  • Greške pri upisu u fiskal_log

Ovisnosti (NuGet paketi)

  • MySql.Data konektor za MySQL bazu podataka

Napomene

  • Certifikat mora biti izdan od strane FINA-e i registriran u sustavu fiskalizacije Porezne uprave.
  • Aplikacija koristi OznakaSlijednosti = "N" (nije slijedni broj) za sve napojnice.
  • XML potpis koristi RSA-SHA1 i Exclusive C14N kanonizaciju sukladno zahtjevima CIS servisa.