Ovaj članak opisuje posebne značajke koje se moraju uzeti u obzir u kontekstu litavske fiskalizacije ili koje proizlaze iz zakona i tehničkih zahtjeva. Pregled pojmova korištenih u ovom članku i njihovih značenja možete pronaći u članku Pojmovi litavske fiskalizacije.
Pregled sadržaja:
- Preduvjeti – što je potrebno za ispravan rad blagajne?
- Sigurnosni modul – što je to i koje su mu posebne funkcije?
- iEKA komunikacija – što treba uzeti u obzir?
- Posebni procesi – koje su posebnosti:
- Povrat/zamjena
- Tehnički dnevnik
- Zbrojevi u izvješćima
- Uplate i isplate
- Otkazivanje transakcije
- Prodaja posebne robe
- Izvještaji – koji se izvještaji moraju generirati i koje podatke moraju sadržavati?
- EKJ – što je to i koji su zahtjevi?
Preduvjeti
Da bi se blagajna puštala u rad u Litvi, potrebno je sljedeće:
Servisna tvrtka
Samo predstavnici ovlaštene servisne tvrtke smiju puštati u rad blagajne i povezivati ih sa servisom iEKA i sigurnosnim modulom.
Servisnu tvrtku možete definirati putem konfiguracije Litve. Za odabir servisne tvrtke (dostupne u padajućem izborniku u konfiguraciji) potreban je ugovor između distributera i servisne tvrtke. Nakon što je ugovor pohranjen/aktiviran u portalu RetailForce, unos za servisnu tvrtku dostupan je u konfiguraciji.
Sigurnosni modul
Svaki blagajni aparat mora biti opremljen certificiranim sigurnosnim modulom. Sigurnosni modul je samo labavo povezan s tvrtkom za servisiranje. Međutim, prilikom kupnje sigurnosnog modula provjerite podržava li ga i sustav RetailForce.
Zadaci sigurnosnog modula uključuju potpisivanje podataka o transakcijama, upravljanje brojačem ukupnog prometa te sigurno pohranjivanje privatnih i javnih ključeva te digitalnih certifikata.
Napomena: Kvarovi na blagajnama (zamjena blagajne, zamjena hardvera itd.) uvijek zahtijevaju kupnju novog sigurnosnog modula. Tehnički nije moguće nastaviti koristiti sigurnosni modul na drugoj blagajni/hardveru.
Parametar servisne tvrtke
Nakon što je servisna tvrtka odabrana u konfiguraciji i dodijeljena entitetu (organizaciji, tvrtki, trgovini, terminalu), zaposlenik servisne tvrtke može unijeti parametre servisne tvrtke (vidi Uvjete litavske fiskalizacije) za svaki terminal.
Ako blagajna ima sigurnosni modul i uneseni su parametri servisne tvrtke, blagajna (klijent) može se puštati u rad.
Napomena: Rado ćemo vam pomoći pri kontaktiranju litavske servisne tvrtke i nabavi kompatibilnog sigurnosnog modula.
Sigurnosni modul
Podaci iz fiskalnih transakcija automatski se potpisuju putem usluge fiskalizacije RetailForce preko sigurnosnog modula.
Sigurnosni modul se automatski aktivira tijekom inicijalizacije. Tijekom tog procesa u sigurnosni modul se također učitavaju potrebni digitalni certifikati.
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 točka, usluga fiskalizacije (middleware) provjerava trebaju li se certifikati zamijeniti. Ako certifikat približava kraju razdoblja valjanosti, zamjenjuje se novijim.
Potrebna ažuriranja
Zamjena certifikata moguća je samo nakon dnevnog zatvaranja/izvještaja (Z) (dokument EndOfDay). Za svaki dokument EndOfDay vraća se svojstvo "certificatesUpdateRequired" u fiscalResponse.
Ako je vrijednost "certificatesUpdateRequired" = true, nadređeni sustav mora pokrenuti zamjenu certifikata koristeći krajnju točku POST /api/v1/management/lithuania/{clientId}/certificate-update.
Vrijednosti sigurnosnog modula
Vrijednosti pohranjene u sigurnosnom modulu (brojač prodaje, ID blagajne, broj potpisanih dokumenata i ostalo) mogu se očitati pomoću krajnje toč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 moguće je vratiti na tvorničke postavke. To je posebno važno tijekom faze implementacije ako su se pojavile pogreške (npr. u komunikaciji s iEKA – vidi dolje).
Resetiranje se provodi putem krajnje točke
- DELETE /api/v1/management/lithuania/{clientId}/reset-stick
Pažnja: Ako se sigurnosni modul resetira, u RetailForce Cloudu mora se stvoriti novi terminal, odnosno inicijalizirati novi klijent (ne zaboravite unijeti parametre servisne tvrtke!).
Komunikacija s iEKA
Osim potpisivanja podataka o transakcijama putem sigurnosnog modula, prijenos podataka u online sustav poreznih vlasti (iEKA) jedan je od ključnih zahtjeva litavske fiskalizacije.
Sustav RetailForce upravlja automatskom komunikacijom s iEKA. iEKA ograničava broj zapisa podataka koji se mogu prenijeti u određenom vremenskom razdoblju, kao i učestalost prijenosa/zahtjeva unutar tog razdoblja. Iz tog razloga usluga fiskalizacije ne prenosi podatke u iEKA u stvarnom vremenu, već asinhrono.
Otklanjanje pogrešaka
Podaci koji se koriste kao osnova za prijenos pohranjuju se u usluzi fiskalizacije u mapi (npr. na sustavima Windows) C:\ProgramData\RetailForce\Fiscal Webservice\{clientId}\lithuaniaFiscalFiles.
Proces
Opisani direktorij obično sadrži tri poddirektorija:
- send - Podaci koji se prenose u iEKA (podaci koji još nisu preneseni).
- accepted - Podaci koji su poslani iEKA-i i koje je sustav prihvatio.
- 20xy - Odgovor iz iEKA nakon validacije podataka za svaki pojedinačni zapis (predstavlja godinu u kojoj je transakcija zabilježena)
Prijenos podataka u iEKA prolazi kroz sljedeći postupak:
- RetailForce klijent prima podatke od nadređenog sustava ("blagajne") i
- pretvara ga u iEKA format (ali kao JSON datoteku).
- Ova JSON datoteka pohranjuje se u mapu \\lithuaniaFiscalFiles\send.
- Datoteke u mapi \\send periodično (asinkrono) prenose se na uslugu iEKA. Prije prijenosa JSON datoteke pretvaraju se u iEKA XML format.
- Nakon što su podaci stigli u sustav iEKA, iEKA potvrđuje primitak.
- U tom trenutku podaci o transakciji premještaju se iz mape \\send u mapu \\accepted, zajedno s potvrdom primljenom od iEKA.
- Ako se podaci ne mogu prenijeti na iEKA, ostaju u mapi \\send, a usluga fiskalizacije pokušava ih prenijeti u kasnijem trenutku.
- Sustav iEKA sada provjerava valjanost prenesenih podataka. Stanje provjere valjanosti mora se aktivno upitovati modulom za prijenos podataka (uslugom fiskalizacije).
- Ovaj upit se također izvršava periodično zbog ograničenja komunikacije s iEKA (vidi gore).
- Rezultat upita o statusu validacije pohranjuje se u mapu 20xy (podaci se premještaju iz \\accepted u \\20xy).
Status transakcije
Gornji sustavi ("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 s strane iEKA-e, može proći do 10 minuta prije nego što blagajna može upitati status određenog dokumenta.
Posebni postupci
Povrat / zamjena robe
Povrat robe (npr. zamjena robe) u Litvi se smatra nefiskalnim dokumentom, tj. nefiskalnom transakcijom. Prijavljuju se sustavu 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.
Kako bi sustav RetailForce ispravno prepoznao povrat kao takav, moraju biti postavljena sljedeća svojstva:
- "documentType": 0 / "[0] = Potvrda"
- "cancellationDocument": true
- "documentReference" - referenca na drugi dokument (izvorni dokument o prodaji) mora biti postavljena
- Negativne vrijednosti transakcija ("GrossValue", "NetValue", "TaxValue", "Amount")
Napomena: Ovo označavanje NIJE specifično za Litvu, već se primjenjuje u svim zemljama. Međutim, prodaja i povrat u Litvi moraju se prijaviti kao odvojeni dokumenti usluzi 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 moraju se evidentirati u Litvi. 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 zabilježiti sljedeći događaji:
- Otvaranje ladice za novac (DrawerOpen) – mora biti preneseno iz nadređenog sustava.
- Otkazivanje dokumenta (DocumentCancelDocument) – bilježi se automatski.
Za više detalja pogledajte članak Tehnička događanja Litva.
Ukupan zbir u izvješćima
U izvješćima (izvješće (Z) – dnevno fiskalno izvješće, izvješće (X) – dnevno privremeno izvješće) određeni ukupni zbrojevi moraju biti prikazani odvojeno. Kako bi se to osiguralo, pri prijenosu podataka između izvornog sustava ("blagajni") i usluge fiskalizacije moraju se poštivati određena pravila.
Za detalje pogledajte članak Zbrajanje u izvješćima Litva.
Uplata i isplata
Litavska fiskalizacija zahtijeva da se stanje gotovine u blagajni (fioku) prenese u iEKA. Kako bi se to osiguralo, transakcije uplate i isplate (npr. depoziti za kusur) također se moraju prenijeti iz nadređenog sustava u uslugu fiskalizacije RetailForce (middleware) u obliku PayIn i PayOut dokumenata ("documentType": 11 / "[11] = PayIn" i "documentType": 10 / "[10] = PayOut" s "businessTransactionType": "[90] = MoneyTransfer").
Za uplate i isplate potrebno je napomenuti sljedeće:
Napomena: Sljedeći opis procesa za rukovanje gotovinskim stanjem privremeno je rješenje!
| vrsta dokumenta | Proces | Vrijednosti |
| 11 / "[11] = PayIn" |
Trenutni novčani iznos u blagajni mora se prenijeti kao prva transakcija dana. Stanje blagajne od prethodnog dana se NE prenosi nakon zatvaranja krajem dana (EndOfDay), već se postavlja na "0". Tijekom dana mogu se izvršiti bilo koji broj uplata. Stanje blagajne uvijek se automatski usklađuje. Napomena: Umjesto prvog dokumenta PayIn za dan, naravno možete predati i dokument tipa "[90] = OpeningBalance" s "businessTransactionType": "[90] = MoneyTransfer". |
Sve vrijednosti ("GrossValue", "Amount") moraju biti POZITIVNE. |
| 10 / "[10] = PayOut" |
PRIJE dokumenta Završetka dana (zatvaranje kraja dana), cjelokupni gotovinski saldo mora se postaviti na 0 pomoću isplate (PayOut). To je potrebno jer se saldo ne prenosi na sljedeći dan. Obratite pažnju: Ako se u ovom trenutku ne zabilježi isplata (PayOut), to će rezultirati prijavljivanjem netočnih stanja gotovine iEKA-i! Tijekom dana mogu se izvršiti bilo koliko isplata. Stanje gotovine uvijek se automatski prilagođava. |
Sve vrijednosti ("GrossValue", "Amount") moraju biti NEGATIVNE. |
Primjeri JSON tereta
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 njezina dovršetka mora biti zabilježeno u Litvi. Krajnja točka
koristi se za tu svrhu.
Prijenosni JSON teret 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 se poslati iEKA-i i također prikazati u izvješćima (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 generira unos u tehnički dnevnik događaja / tehnički zapisnik ("audit log") sljedećeg tipa:
- DocumentCancelDocument
Zapis sadrži ukupan iznos (GrossValue) pojedinačnih stavki u prenesenom teretu, budući da ta informacija
- mora se prenijeti u iEKA i
- također prijavljeno u izvješću (Z) i
- izvješća (X).
Podaci se šalju iEKA-i putem dokumenta EndOfDay. Kada se zabilježi dnevno zatvaranje, u FiscalResponse Lithuania vraćaju se sljedeće vrijednosti:
- "DayCanceledReceiptsDocumentsQuantity" - broj otkazanih računa, potvrda i dokumenata po danu
- "DayCanceledReceiptsDocumentsAmount" - (bruto) ukupan iznos svih prekida / napuštanja transakcija
Prodaja posebnih dobara
U Litvi prodaja određene robe mora biti posebno označena. Te se prodaje prijavljuju sustavu iEKA kao zasebni ukupni iznosi i također su uključene u izvješća (Izvješće (X), Izvješće (Z)).
Ove takozvane "prodaje posebnih dobara" obuhvaćaju sljedeće skupine proizvoda:
- alkohol i
- Gorivo
U RetailForce DOM-u relevantne se stavke mogu označiti pomoću svojstva "itemTypeClassification". Grupe proizvoda klasificirane kao "Posebna roba" u Litvi mogu se dohvatiti putem "FiscalCountryProperties" (svojstvo: "supportedItemTypeClassification").
Izvještaji
Sustavi blagajni moraju moći generirati sljedeća izvješća:
- Izvješće (X) – dnevno privremeno izvješće (poznato i kao Izvješće (X))
- Izvješće (Z) – dnevno fiskalno izvješće (poznato i kao Izvješće (Z))
- Detaljno fiskalno izvješće
- Sažeti fiskalni izvještaj
| Izvješće | vrsta dokumenta | Napomene |
| Izvješće (X) | 98 / "[98] = CashCheck" |
može se generirati putem krajnje točke GET /api/v1/closing/{clientId}/endofdayDocument, ali sljedeći podaci moraju se promijeniti prije nego što se payload (/storeDocument) pošalje:
|
| Izvješće (Z) | 99 / "[99] = Kraj dana" |
može se generirati putem GET zahtjeva na endpoint /api/v1/closing/{clientId}/endofdayDocument. Kao i obično, sljedeći podaci trebaju biti prilagođeni:
|
| Detaljno fiskalno izvješće | - |
U RetailForceu ne postoji eksplicitan tip dokumenta ("documentType") za detaljno fiskalno izvješće. Ovo izvješće može se generirati putem sljedećih krajnjih točaka (po izboru):
Podaci sadržani u odgovoru služe kao osnova za izradu izvješća u tiskanom obliku. Napomena: Kada se pozove jedna od dvije krajnje točke, izvješće se generira i vraća POS sustavu kao odgovor. Kada se izvješće pozove, ono je već poslano 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. Ovo izvješće može se generirati putem sljedećih krajnjih točaka (po izboru):
Podaci sadržani u odgovoru služe kao osnova za izradu izvješća u tiskanom obliku. Napomena: Kada se pozove jedan od dva endpointa, izvješće se generira i vraća POS sustavu kao odgovor. Prilikom poziva, izvješće je već preneseno u iEKA. Nisu potrebni daljnji koraci. |
Za više informacija o podacima koji se moraju uključiti u odgovarajuća izvješća, pogledajte članak "Zahtjevi za dokumente – Litva".
EKJ
Ovaj je članak automatski preveden.
Komentari
0 komentara
Molimo Prijavite se kako bi ostavili komentar.