Ovaj članak opisuje posebne značajke koje se moraju uzeti u obzir u kontekstu litvanske fiskalizacije, ili koje proizlaze iz zakona i tehničkih zahtjeva. Pregled pojmova korištenih u ovom članku i njihovih značenja može se pronaći u članku Pojmovi litvanske fiskalizacije.
Pregled sadržaja:
- Preduvjeti – šta je potrebno za ispravan rad kase?
- Sigurnosni modul – šta je to i koje se posebne funkcije povezuju s njim?
- iEKA komunikacija – šta treba uzeti u obzir?
- Posebni procesi – koje su posebnosti:
- Povrat/zamjena
- Tehnički časopis
- Ukupan zbir u izvještajima
- Depoziti i isplate
- Otkazivanje transakcije
- Prodaja posebne robe
- Izvještaji – koji se izvještaji moraju generirati i koje podatke moraju sadržavati?
- EKJ – šta je to i koji su zahtjevi?
Preduvjeti
Da bi se kasa pustila u rad u Litvaniji, potrebno je sljedeće:
Servisna kompanija
Samo predstavnici ovlaštene servisne kompanije mogu puštati u rad blagajne i povezivati ih sa servisom iEKA i sigurnosnim modulom.
Servisnu kompaniju možete definirati putem konfiguracije Litvanije. Ugovor između distributera i servisne kompanije je potreban da bi se servisna kompanija mogla odabrati (dostupna kao padajući element u konfiguraciji). Nakon što je ugovor pohranjen/aktiviran na RetailForce portalu, unos za servisnu kompaniju je dostupan u konfiguraciji.
Sigurnosni modul
Svaki fiskalni uređaj mora biti opremljen certificiranim sigurnosnim modulom. Sigurnosni modul je samo labavo povezan s servisnom kompanijom. Međutim, prilikom kupovine sigurnosnog modula, molimo vas da provjerite podržava li ga i sistem RetailForce.
Zadaci sigurnosnog modula uključuju potpisivanje podataka o transakcijama, upravljanje brojačem ukupnog prometa i sigurno pohranjivanje privatnih i javnih ključeva te digitalnih certifikata.
Napomena: Defekti na blagajnama (zamjena blagajne, zamjena hardvera itd.) uvijek zahtijevaju kupovinu novog sigurnosnog modula. Daljnja upotreba sigurnosnog modula na drugoj blagajni/hardveru tehnički nije moguća.
Parametar servisne kompanije
Nakon što je servisna kompanija odabrana u konfiguraciji i dodijeljena entitetu (organizaciji, kompaniji, prodavnici, terminalu), zaposlenik servisne kompanije može unijeti parametre servisne kompanije (pogledajte Uvjete litvanske fiskalizacije) za svaki terminal.
Ako fiskalna kasa ima sigurnosni modul i uneseni su parametri servisne kompanije, fiskalna kasa (klijent) može se puštati u rad.
Napomena: Rado ćemo vam pomoći pri kontaktiranju litvanske servisne kompanije i nabavci kompatibilnog sigurnosnog modula.
Sigurnosni modul
Podaci iz fiskalnih transakcija automatski se potpisuju putem fiskalizacijske usluge RetailForce preko sigurnosnog modula.
Sigurnosni modul se automatski aktivira tokom inicijalizacije. Potrebni digitalni certifikati se također učitavaju u sigurnosni modul tokom ovog procesa.
Digitalni certifikati
Certifikati koji se koriste za potpisivanje podataka i u druge svrhe moraju se obnoviti prije isteka roka važenja.
Za razmjenu certifikata, usluga fiskalizacije pruža funkciju:
- POST /api/v1/management/lithuania/{clientId}/certificate-update
Kada se poziva krajnja tačka, usluga fiskalizacije (middleware) provjerava da li je potrebno zamijeniti certifikate. Ako se certifikat približava kraju perioda važenja, on se zamjenjuje novijim.
Potrebno ažuriranje
Zamjena certifikata je moguća samo nakon dnevnog zatvaranja/izvještaja (Z) (dokument EndOfDay). Za svaki dokument EndOfDay, svojstvo "certificatesUpdateRequired" se vraća u fiscalResponse.
Ako je vrijednost "certificatesUpdateRequired" = true, nadređeni sistem mora pokrenuti zamjenu certifikata koristeći krajnju tačku POST /api/v1/management/lithuania/{clientId}/certificate-update.
Vrijednosti sigurnosnog modula
Vrijednosti pohranjene u sigurnosnom modulu (brojač prodaja, ID kase, broj potpisanih dokumenata i druge) mogu se očitati pomoću krajnje tačke
- GET /api/v1/management/lithuania/{clientId}/param-stick
Resetirajte testni sigurnosni modul
Za razliku od sigurnosnih modula za rad u stvarnom okruženju, testne sigurnosne module je moguće resetirati na tvorničke postavke. Ovo je posebno važno tokom faze implementacije ako su se pojavile greške (npr. u komunikaciji sa iEKA – vidi dolje).
Resetiranje se vrši putem krajnje tačke
- DELETE /api/v1/management/lithuania/{clientId}/reset-stick
Pažnja: Ako se sigurnosni modul resetuje, mora se kreirati i novi terminal u RetailForce Cloudu, odnosno inicijalizovati novi klijent (ne zaboravite unijeti parametre servisne kompanije!).
Komunikacija s iEKA
Pored potpisivanja podataka o transakcijama putem sigurnosnog modula, prijenos podataka u online sistem poreznih vlasti (iEKA) jedan je od ključnih zahtjeva litvanske fiskalizacije.
RetailForce sistem upravlja automatskom komunikacijom sa iEKA. iEKA ograničava broj zapisa podataka koji se mogu prenijeti u određenom vremenskom periodu, kao i učestalost prijenosa/zahtjeva u određenom vremenskom periodu. Iz tog razloga, usluga fiskalizacije ne prenosi podatke u iEKA u stvarnom vremenu, već asinhrono.
Otklanjanje grešaka
Podaci koji se koriste kao osnova za prijenos podataka pohranjuju se od strane usluge fiskalizacije u mapu (npr. na Windows sistemima) C:\ProgramData\RetailForce\Fiscal Webservice\{clientId}\lithuaniaFiscalFiles.
Proces
Opisani folder obično sadrži tri poddirektorija:
- send - Podaci koji se prenose na iEKA (podaci koji još nisu preneseni).
- accepted - Podaci koji su poslani iEKA-i i koje je sistem prihvatio.
- 20xy - Odgovor od iEKA nakon validacije podataka za svaki pojedinačni zapis (predstavlja godinu u kojoj je transakcija zabilježena)
Prijenos podataka na iEKA prolazi kroz sljedeći proces:
- RetailForce klijent prima podatke od nadređenog sistema ("blagajne") i
- pretvara ga u iEKA format (ali kao JSON datoteku).
- Ova JSON datoteka se pohranjuje u mapu \\lithuaniaFiscalFiles\send.
- Datoteke u mapi \\send periodično (asinkrono) se prenose na servis iEKA. Prije prijenosa, JSON datoteke se konvertuju u iEKA XML format.
- Kada podaci stignu u iEKA sistem, iEKA potvrđuje prijem.
- U tom trenutku, podaci o transakciji se premještaju iz mape \\send u mapu \\accepted, zajedno s potvrdom primljenom od iEKA.
- Ako se podaci ne mogu prenijeti na iEKA, ostaju u \\send folderu i servis za fiskalizaciju pokušava da ih prenese u kasnijem trenutku.
- Sistem iEKA sada provjerava valjanost prenesenih podataka. Status provjere mora aktivno upititi modul za prijenos podataka (usluga fiskalizacije).
- Ovaj upit se također periodično izvršava zbog komunikacijskih ograničenja s strane iEKA (vidi gore).
- Rezultat upita o statusu validacije pohranjuje se u mapu 20xy (podaci se premještaju iz \\accepted u \\20xy).
Status transakcije
Gornji sistemi ("blagajne") mogu provjeriti status pojedinačnih transakcija koristeći sljedeće funkcije:
- GET /api/v1/management/lithuania/{clientId}/check-document-status-by-ieka-document-number/{iekaDocumentNumber} i
- GET /api/v1/management/lithuania/{clientId}/check-document-status-by-document-number/{documentNumber}
Napomena: Imajte na umu da, zbog komunikacijskih ograničenja od strane iEKA, može proći do 10 minuta prije nego što kasa može upitati status određenog dokumenta.
Posebni procesi
Povrat / zamjena robe
Povrat robe (npr. zamjena robe) u Litvaniji se smatra nefiskalnim dokumentom, tj. nefiskalnom transakcijom. Oni se prenose u sistem iEKA, ali se ne potpisuju putem sigurnosnog modula. To također znači da povratni dokumenti ne utječu na brojače prodaje (ukupno) sigurnosnog modula.
Da bi sistem RetailForce ispravno prepoznao povrat kao takav, moraju biti postavljena sljedeća svojstva:
- "documentType": 0 / "[0] = Potvrda o kupovini"
- "cancellationDocument": true
- "documentReference" - referenca na drugi dokument (originalni dokument o prodaji) mora biti postavljena
- Negativne vrijednosti transakcije ("GrossValue", "NetValue", "TaxValue", "Amount")
Napomena: Ovo označavanje NIJE specifično za Litvaniju, već se primjenjuje u svim zemljama. Međutim, prodaja i povrat robe u Litvaniji moraju se prijavljivati kao odvojeni dokumenti službi za fiskalizaciju (pogledajte fiscalCountryProperty: "returnAndSaleBehavior": "multiReceipt").
Pažnja: Za povratne račune, molimo pogledajte i članak Summation in reports Lithuania!
Tehnički dnevnik
Tehnički procesi se moraju evidentirati u Litvaniji. Kao i u drugim zemljama, to se radi pomoću dnevnika tehničkih događaja / tehničkog dnevnika ili dnevnika revizije (AuditLog).
Posebno se moraju evidentirati sljedeći događaji:
- Otvaranje ladice za novac (DrawerOpen) – mora biti preneseno od strane nadređenog sistema.
- Otkazivanje dokumenta (DocumentCancelDocument) – bilježi se automatski.
Za više detalja pogledajte članak Tehnički događaji Litvanija.
Ukupni zbrojevi u izvještajima
U izvještajima (izvještaj (Z) – dnevni fiskalni izvještaj, izvještaj (X) – dnevni privremeni izvještaj) određeni (ukupni) zbrojevi moraju biti prikazani odvojeno. Da bi se to osiguralo, pri prijenosu podataka između izvornog sistema ("blagajni") i servisa za fiskalizaciju moraju se poštovati određena pravila.
Za detalje pogledajte članak Sumiranje u izvještajima Litvanija.
Uplata i isplata
Litvanska fiskalizacija zahtijeva da se stanje gotovine u kasi (fioka) prenese u iEKA. Da bi se to osiguralo, transakcije uplate i isplate (npr. depoziti za promjenu) također se moraju prenijeti iz izvorne aplikacije u RetailForce uslugu fiskalizacije (middleware) u obliku PayIn i PayOut dokumenata ("documentType": 11 / "[11] = PayIn" i "documentType": 10 / "[10] = PayOut" sa "businessTransactionType": "[90] = MoneyTransfer").
Za uplate i isplate potrebno je napomenuti sljedeće:
Napomena: Sljedeći opis procesa za rukovanje gotovinskim stanjem je privremeno rješenje!
| documentType | Proces | Vrijednosti |
| 11 / "[11] = PayIn" |
Trenutni novčani saldo u kasi mora biti prenesen kao prva transakcija dana. Stanje gotovine od prethodnog dana se NE prenosi nakon zatvaranja kraja dana (EndOfDay), već se postavlja na "0". Tokom dana se može izvršiti bilo koji broj uplata. Stanje gotovine se uvijek automatski usklađuje. Napomena: Umjesto prvog PayIn dokumenta dana, naravno možete podnijeti i dokument tipa "[90] = OpeningBalance" sa "businessTransactionType": "[90] = MoneyTransfer". |
Sve vrijednosti ("GrossValue", "Amount") moraju biti POZITIVNE. |
| 10 / "[10] = PayOut" |
PRIJE dokumenta kraja dana (zatvaranja dana), cjelokupni gotovinski saldo mora biti postavljen na 0 pomoću isplate (PayOut). To je neophodno jer se saldo ne prenosi na sljedeći dan. Napomena: Ako se u ovom trenutku ne zabilježi isplata (PayOut), to će rezultirati prijavljivanjem netačnih gotovinskih stanja u iEKA! Tokom dana se može izvršiti bilo koji broj isplata. Stanje gotovine se uvijek automatski prilagođava. |
Sve vrijednosti ("GrossValue", "Amount") moraju biti NEGATIVNE. |
Primjeri JSON payloadova
Uplata:
(Verzija: 1.11.4; DOM-verzija 1.6.2)
{
"ModelVersion": "1.6.2",
"UniqueClientId": "bef09871-a19b-4eba-9f88-f14e0b482ab3",
"UniqueCashRegisterId": "0001-0007",
"FiscalModuleVersion": "1.11.4.593",
"FiscalCountryModuleVersion": "0.9.7",
"SoftwareName": "RetailForce NeverPOS",
"DocumentGuid": "da8e52c6-fb33-4b07-8f9b-7962bc0a0002",
"DocumentId": "PI001",
"DocumentNumber": "PI202500001",
"CreateDate": "2025-12-16T14:43:08.6110527+02:00",
"BookDate": "2025-12-16T14:43:08.6110527+02:00",
"DocumentType": 11,
"User": {
"Id": "7b1e3d67-25d0-4ad1-a230-5264b3aa1fca"
},
"PositionCount": 1,
"DocumentIssueType": 0,
"FiscalDocumentNumber": "0",
"FiscalDocumentStartTime": 0,
"Positions": [
{
"Type": "[3] = Booking",
"Caption": "Pridėti grynuosius pinigus",
"BusinessTransactionType": "[11] = PayIn",
"VatIdentification": 10,
"VatPercent": 0.0,
"NetValue": 20.0,
"GrossValue": 20.0,
"TaxValue": 0.0,
"PositionNumber": 0,
"DeletedPosition": false,
"AdditionalFields": {},
"ExternalIdentifier": []
}
],
"Payments": [
{
"Amount": 20.0,
"CurrencyIsoCode": "EUR",
"UniqueReadablePaymentIdentifier": "CashMovement",
"AdditionalFields": {},
"PaymentType": 0,
"ExternalIdentifier": []
}
],
"AdditionalHeader": [],
"AdditionalFooter": [],
"FiscalAdditionalFields": {}
}
Isplata:
(Izdanje: 1.11.4; DOM-verzija 1.6.2)
{
"ModelVersion": "1.6.2",
"UniqueClientId": "277a1220-5af4-4fc4-900f-694dcc0a6227",
"UniqueCashRegisterId": "0001-0007",
"FiscalModuleVersion": "1.11.4.593",
"FiscalCountryModuleVersion": "0.9.7",
"SoftwareName": "RetailForce NeverPOS",
"DocumentGuid": "da8e52c6-fb33-4b07-8f9b-7962bc0a0002",
"DocumentId": "PO0002",
"DocumentNumber": "PO202500001",
"CreateDate": "2025-12-16T12:08:08.6110527+02:00",
"BookDate": "2025-12-16T12:08:08.6110527+02:00",
"DocumentType": 10,
"User": {
"Id": "7b1e3d67-25d0-4ad1-a230-5264b3aa1fca"
},
"PositionCount": 1,
"DocumentIssueType": 0,
"FiscalDocumentNumber": "0",
"FiscalDocumentStartTime": 0,
"Positions": [
{
"Type": "[3] = Booking",
"Caption": "Grynųjų pinigų išėmimas",
"BusinessTransactionType": "[10] = PayOut",
"PayOutType": null,
"VatIdentification": 10,
"VatPercent": 0.0,
"NetValue": -12.0,
"GrossValue": -12.0,
"TaxValue": 0.0,
"PositionNumber": 0,
"DeletedPosition": false,
"AdditionalFields": {},
"ExternalIdentifier": []
}
],
"Payments": [
{
"Amount": -12.0,
"CurrencyIsoCode": "EUR",
"UniqueReadablePaymentIdentifier": "CashMovement",
"AdditionalFields": {},
"PaymentType": 0,
"ExternalIdentifier": []
}
],
"AdditionalHeader": [],
"AdditionalFooter": [],
"FiscalAdditionalFields": {}
}
Poništenje / Napuštanje transakcija
Svako napuštanje transakcije prije njenog završetka mora biti zabilježeno u Litvaniji. Krajnja tačka
se koristi u tu svrhu.
Prijeneseni JSON payload treba sadržavati
- sve pozicije zabilježene do trenutka napuštanja, ali
- prazan objekt "Payments".
Primjer:
(Izdanje: 1.11.4; DOM-verzija 1.6.2)
{
"ModelVersion": "1.6.2",
"UniqueClientId": "bef09871-a19b-4eba-9f88-f14e0b482ab3",
"UniqueCashRegisterId": "T001-1502",
"FiscalModuleVersion": "1.11.4.593",
"FiscalCountryModuleVersion": "0.9.7",
"SoftwareName": "x x 1.0",
"AutomaticVatCalculation": 0,
"DocumentGuid": "da8e52c6-fb33-4b07-8f9b-7962bc0c0002",
"DocumentId": "0002",
"DocumentNumber": "202500001",
"CreateDate": "2025-12-16T15:19:08.6110527+02:00",
"BookDate": "2025-12-16T15:19:08.6110527+02:00",
"DocumentType": 0,
"User": {
"Id": "7b1e3d67-25d0-4ad1-a230-5264b3aa1fca"
},
"PositionCount": 2,
"DocumentIssueType": 0,
"FiscalDocumentNumber": "0",
"FiscalDocumentStartTime": 0,
"Positions": [
{
"ItemCaption": "Testavimo prekė 222",
"Discounts": [],
"Type": "[0] = Item",
"Quantity": 1.0,
"QuantityUnit": {
"Id": null
},
"ItemId": "8639d547-3db3-4a44-e0c3-08de3c72db58",
"ItemType": 0,
"BaseNetValue": 1.77686,
"BaseGrossValue": 2.15,
"BaseTaxValue": 0.37314,
"BaseTaxValue2": null,
"BusinessTransactionType": "[0] = Revenue",
"VatIdentification": 1,
"VatPercent": 21.0,
"NetValue": 1.78,
"GrossValue": 2.15,
"TaxValue": 0.37,
"ItemTaxType": 0,
"PositionNumber": 0,
"DeletedPosition": false,
"AdditionalFields": {},
"ExternalIdentifier": []
},
{
"Type": "[10] = Total",
"Rounding": 0.0,
"BaseValue": 2.15,
"Value": 2.15,
"Discounts": [],
"PositionNumber": 1,
"DeletedPosition": false,
"AdditionalFields": {},
"ExternalIdentifier": []
}
],
"Payments": [],
"AdditionalHeader": [],
"AdditionalFooter": [],
"FiscalAdditionalFields": {}
}
Podaci o napuštanju transakcija moraju biti poslani iEKA i također prikazani u izvještajima (vidi sljedeće poglavlje).
Zapis u dnevniku revizije o prekidu / napuštanju transakcija
Ako se payload pošalje na POST /api/v1/transactions/cancelDocument, RetailForce usluga fiskalizacije automatski generiše unos u tehnički dnevnik događaja / tehnički žurnal ("audit log") tipa:
- DokumentCancelDocument
Zapis sadrži ukupan iznos (GrossValue) pojedinačnih stavki u prenesenom payloadu, budući da ova informacija
- mora biti prenesena u iEKA i
- također prijavljeno u izvještaju (Z) i
- izvještaja (X).
Podaci se šalju iEKA putem dokumenta EndOfDay. Kada se zabilježi dnevno zatvaranje, u FiscalResponse Lithuania se vraćaju sljedeće vrijednosti:
- "DayCanceledReceiptsDocumentsQuantity" - broj otkazanih potvrda i dokumenata po danu
- "DayCanceledReceiptsDocumentsAmount" - (bruto) ukupan iznos svih otkazanih transakcija / napuštenih dokumenata
Prodaja posebnih dobara
U Litvaniji, prodaja određene robe mora biti posebno označena. Ove prodaje se prijavljuju sistemu iEKA kao zasebni ukupni iznosi i također su uključene u izvještaje (Izvještaj (X), Izvještaj (Z)).
Ove takozvane "Prodaje posebnih dobara" obuhvataju sljedeće grupe proizvoda:
- Alkohol i
- Gorivo
U RetailForce DOM-u, relevantne stavke se mogu označiti u skladu s tim pomoću svojstva "itemTypeClassification". Grupe proizvoda klasificirane kao "Posebna roba" u Litvaniji mogu se dohvatiti putem "FiscalCountryProperties" (svojstvo: "supportedItemTypeClassification").
Izvještaji
Sistemi blagajni moraju biti u mogućnosti generirati sljedeće izvještaje:
- Izvještaj (X) – dnevno međuzavršno izvještaj (poznat i kao Izvještaj (X))
- Izvještaj (Z) – dnevni fiskalni izvještaj (poznat i kao Izvještaj (Z))
- Detaljni fiskalni izvještaj
- Sažeti fiskalni izvještaj
| Izvještaj | vrsta dokumenta | Napomene |
| Izvještaj (X) | 98 / "[98] = CashCheck" |
može se generisati putem GET endpointa /api/v1/closing/{clientId}/endofdayDocument, ali sljedeći podaci moraju biti izmijenjeni prije nego što se payload (/storeDocument) pošalje:
|
| Izvještaj (Z) | 99 / "[99] = Kraj dana" |
može se generisati putem endpointa GET /api/v1/closing/{clientId}/endofdayDocument. Kao i obično, sljedeći podaci trebaju biti prilagođeni:
|
| Detaljni fiskalni izvještaj | - |
U RetailForceu ne postoji eksplicitan tip dokumenta ("documentType") za detaljni fiskalni izvještaj. Ovaj izvještaj se može generisati putem sljedećih krajnjih tačaka (po izboru):
Podaci sadržani u odgovoru služe kao osnova za izradu izvještaja u štampanom obliku. Napomena: Kada se pozove jedan od ova dva endpointa, izvještaj se generiše i vraća POS sistemu kao odgovor. Kada se izvještaj pozove, on je već poslan u iEKA. Nisu potrebni daljnji koraci. |
| Sažeti fiskalni izvještaj | - |
Ne postoji eksplicitan tip dokumenta ("documentType") u RetailForce za sažeti fiskalni izvještaj. Ovaj izvještaj se može generisati putem sljedećih endpointova (po izboru):
Podaci sadržani u odgovoru služe kao osnova za izradu izvještaja u štampanom obliku. Napomena: Kada se pozove jedan od dva endpointa, izvještaj se generiše i vraća POS sistemu kao odgovor. Kada se izvještaj pozove, on je već prenesen u iEKA. Nisu potrebni daljnji koraci. |
Za više informacija o podacima koji moraju biti uključeni u odgovarajuće izvještaje, pogledajte članak "Zahtjevi za dokumente Litvanija".
EKJ
Ovaj članak je automatski preveden.
Comments
0 comments
Please sign in to leave a comment.