EKV d.o.o.
Tatranska 58
26210 Kovačica, Srbija

Техничка спецификација

LinuxLPFR - Локални Процесор Фискалних Рачуна

Верзија: 1.0 | Датум: 28. новембар 2025. | TS-LPFR-2025-001
  1. Општи опис система
  2. Архитектура система
  3. Безбедносни елемент (БЕ)
  4. Аутентификација и токени
  5. Процесирање фискалних рачуна
  6. Пореске стопе
  7. Ишчитавање (Audit)
  8. Локално ишчитавање
  9. Забрањене функције
  10. Сат реалног времена
  11. Извештаји и логови
  12. Дигитални сертификати
  13. Кодови грешака
  14. Капацитет меморије
  15. Лиценцирање

1. Општи опис система

1.1 Намена

LinuxLPFR је софтверско решење за локалну фискализацију рачуна у складу са прописима Пореске управе Републике Србије и Техничким водичем за развој Л-ПФР производа.

1.2 Тип производа

Софтверски локални процесор фискалних рачуна (Л-ПФР) који се инсталира на Linux оперативним системима.

1.3 Основне функције

Систем омогућава: - Пријем захтева за фискализацију од ЕСИР система - Дигитално потписивање рачуна помоћу Безбедносног Елемента - Генерисање QR кода за верификацију рачуна - Слање података за ишчитавање СУФ систему - Локално и интернет ишчитавање

2. Архитектура система

2.1 Компоненте

Систем се састоји од следећих компоненти: - HTTP сервер за комуникацију са ЕСИР системом - Модул за комуникацију са паметном картицом (PC/SC) - SQLite база података за локално складиштење - Модул за аудит и ишчитавање - Кориснички интерфејс (Slint UI)

2.2 Комуникациони протоколи

3. Безбедносни елемент (БЕ)

3.1 Зависност од БЕ

Л-ПФР се ослања на Безбедносни Елемент за: - Потписивање фискалних рачуна - Чување интерних података - Издавање дигиталних сертификата

3.2 Читање података са БЕ

Л-ПФР добија следеће информације са Безбедносног Елемента: - ПИБ (Порески идентификациони број) - ЈИД (Јединствени идентификатор картице) - Назив обвезника - Назив продајног места - Адреса - Општина - Датум важења сертификата

3.3 Приказ статуса

Систем приказује тренутни оперативни статус преко корисничког интерфејса: - Статус картице (присутна/није присутна) - Статус сертификата (важећи/истекао) - Статус PIN верификације - Статус интернет конекције - Статус повезаности са СУФ

4. Аутентификација и токени

4.1 Идентитет

Л-ПФР потврђује свој идентитет валидним дигиталним сертификатом који је складиштен у PKI аплету Безбедносног Елемента када захтева токен за приступ API сервису СУФ-а.

4.2 Коришћење токена

Л-ПФР користи добијени токен приликом комуникације са СУФ-овим веб сервисима. Токен се аутоматски освежава пре истека.

4.3 Обрада команди

Л-ПФР обрађује све команде пристигле од стране СУФ-а узастопним редоследом.

5. Процесирање фискалних рачуна

5.1 Пријем захтева

Л-ПФР прима захтеве за фискализацију од ЕСИР система путем HTTP API-ја на конфигурисаном порту.

5.2 Верификација структуре

Пре процесирања, Л-ПФР верификује структуру захтева послатог од стране ЕСИР-а. У случају неисправне структуре, враћа се одговарајући код грешке.

5.3 Прорачун пореза

Л-ПФР рачуна порез на основу износа и тренутно активних пореских стопа по артиклу послатих са ЕСИР-а. Све суме се заокружују на 4 децимале користећи методу заокруживања на већи број (half-round up).

5.4 Слање ка БЕ

Л-ПФР шаље податке за фискализацију рачуна ка Безбедносном Елементу заједно са тренутним датумом и временом, као и PIN кодом (ISO/IEC 7816-4).

5.5 Пријем потписа

Л-ПФР прима рачун потписан од стране Безбедносног Елемента.

5.6 Креирање журнала и URL-а

Л-ПФР креира журнал фајл и генерише јединствен URL за проверу исправности (верификацију) рачуна.

5.7 Одговор ЕСИР-у

Л-ПФР шаље фискализоване податке ЕСИР-у у склопу одговора на захтев за фискализацију рачуна.

5.8 Паралелне операције

Л-ПФР је направљен тако да може да региструје фискалне рачуне док истовремено шаље податке за ишчитавање ка СУФ-у.

5.9 Перформансе

Функционисање Л-ПФР-а не успорава издавање рачуна на страни ЕСИР-а.

5.10 Рад без интернета

На издавање рачуна не утиче постојање интернет везе. LPFR може радити до 30 дана без интернета, по успостављању везе аутоматски шаље податке ка СУФ-у. Или се одради локлни аудит.

6. Пореске стопе

6.1 Преузимање стопа

Л-ПФР добија информације о пореским групама преко команде “Tax Rates Command” током процеса иницијализације или када су пореске стопе промењене.

6.2 Датум примене

Команда за пореске стопе садржи датум и време од када ће нове пореске стопе бити примењене.

6.3 Валидација

Л-ПФР не прихвата и не процесуира захтев за фискализацију рачуна ако садржи непостојећу пореску стопу или стопу која није активна.

7. Ишчитавање (Audit)

7.1 Методе ишчитавања

Л-ПФР мора да достави податке СУФ-у на два начина: - Локално ишчитавање (путем USB/SD картице) - Интернет ишчитавање (директна комуникација са СУФ)

7.2 Енкрипција података

Сви подаци за ишчитавање су енкриптовани користећи AES-256 са енкрипционим кључем како је наведено у Техничком водичу.

7.3 Формат података

Л-ПФР користи исти формат података за локално и интернет ишчитавање.

7.4 Приказ статуса

Уколико је неопходно ишчитавање, Л-ПФР ту информацију приказује у пољу auditRequired, као што је описано у одељку Техничког водича “Get Status Command”.

7.5 Заштита пакета

Л-ПФР не брише пакете за ишчитавање из меморије, нити да их мења новим пакетима, осим ако то није одобрено добијеним Доказом о ишчитавању (ДИ).

7.6 Достављање ДИ

Л-ПФР доставља Безбедносном Елементу Доказ о ишчитавање, генерисан од стране СУФ-а, одмах када прими тај податак.

7.7 Ослобађање меморије

Меморија Л-ПФР-а се не ослобађа пре пристиглог доказа о ишчитавању. Тек онда се подаци у датотеци бришу.

7.8 Промена картице

Променом паметне картице Л-ПФР не обуставља интернет или локално ишчитавање података из интерне меморије. Нова картица може да се користи само ако су сви пакети за исчитавање са прехтодне картице успешно послати.

7.9 Локално чување

Л-ПФР складишти податке за ишчитавање локално пре него што ЕСИР-у врати одговор са фискализованим подацима.

7.10 Комуникација са СУФ системом

Л-ПФР комуницира са СУФ-ом на начин који је описан у Техничком водичу, користећи HTTPS протокол са обостраном TLS аутентификацијом (mTLS), JWT токене за аутентификацију, и AES-256 енкрипцију података.

7.11 Аутоматско слање пакета за ишчитавање

Л-ПФР аутоматски управља слањем пакета за ишчитавање према СУФ-у:

Напомена: Детаљна техничка документација о имплементацији комуникације са СУФ-ом доступна је у интерним развојним документима.

8. Локално ишчитавање

8.1 Извоз на спољну меморију

Л-ПФР на захтев шаље податке ка јединици спољне меморије (USB флеш, SD картица) у формату који је дефинисан у Техничком водичу.

8.2 Структура фолдера

Сви подаци се складиште на јединици спољне меморије у фолдеру названом по вредности ЈИД-а Безбедносног Елемента. У случају да ти фолдери не постоје, Л-ПФР их аутоматски креира.

8.3 Формат датотека

Фолдер назван по вредности ЈИД-а садржи: - {ЈИД}.arp - фајл са резултатима позива Begin Audit APDU команде - {ЈИД}-{ЈИД}-{Редни број}.json - један или више пакета за ишчитавање

8.4 Обавештења

Л-ПФР приказује обавештења када се локално ишчитавање започне и када се заврши.

8.5 Увоз команди

Л-ПФР прочита и примени команду за завршетак ишчитавања уколико се иста налази на јединици спољне меморије.

9. Забрањене функције

9.1 Одговор без БЕ

Л-ПФР не одговара на захтев за рачун из ЕСИР-а ако није у директној вези са Безбедносним Елементом. У случају да БЕ није доступан, враћа се код грешке 1300 (Smart Card Not Present).

9.2 Чување PIN кода

Л-ПФР нигде не складишти PIN код, осим у радној меморији. Када се Л-ПФР рестартује, оператер/касир мора поново да унесе PIN код.

9.3 Промена протокола

Л-ПФР не дозвољава да се промене параметри у комуникационом протоколу, у складу са Техничким водичем. Сви протоколни параметри су дефинисани као константне вредности.

9.4 Кодови грешака

У случају грешке, Л-ПФР не шаље било који други податак осим шифре грешке дефинисане у шифрарнику грешака у склопу Техничког водича.

9.5 Неактивне пореске стопе

Л-ПФР не прихвата и не процесуира захтев за фискализацију рачуна ако садржи непостојећу пореску стопу или стопу која није активна или која није била активна у тренутку издавања референцираног документа.

10. Сат реалног времена

10.1 Прецизност

Систем се ослања на системски сат оперативног система који мора бити синхронизован са NTP сервером.

10.2 Конфигурација NTP

Л-ПФР има могућност ажурирања URL-а временског сервера који се користи за синхронизацију сата.

10.3 Валидација времена рачуна

Фискални рачун не може имати датум/време старије од претходно издатог рачуна. Систем одбија рачуне са датумом у будућности (толеранција: 5 минута).

11. Извештаји и логови

11.1 Чување грешака

Л-ПФР чува извештаје о свим грешкама као што је описано у Техничком водичу.

11.2 Хронолошко бележење

Л-ПФР бележи и чува сваку грешку хронолошки у локалном времену (датум, сат, минут, секунда).

11.3 Експорт извештаја

Начин експортовања извештаја је олакшан за корисника (USB, SD картица, фолдер на диску) и он се снима у читљивом формату.

11.4 Период чувања

Л-ПФР чува извештај о грешкама који покрива минимално последњих тридесет дана. Период чувања је конфигурабилан (30-365 дана).

11.5 Одвојена меморија

Л-ПФР извештај о грешкама не утиче на део меморије који је експлицитно одвојен за складиштење потписаних фискалних рачуна. Логови и рачуни се чувају у одвојеним табелама базе података.

12. Дигитални сертификати

12.1 Врсте рачуна за аудит

Л-ПФР шаље податке за ишчитавање СУФ-у за сваки рачун врсте: - П (Промет) - А (Аванс) - К (Копија) - О (Обука) - Р (Предрачун)

12.2 Јединствен URL

Л-ПФР креира јединствен URL за генерисање QR кода сваког рачуна.

12.3 Верификација потписа

Дигитални потпис рачуна омогућава верификовање интегритета података рачуна и веродостојност у складу са Техничким водичем.

13. Кодови грешака

13.1 Информативни кодови (0000-0999)

Код Опис
0000 Undefined Info
0100 PIN OK
0110 PIN OK - need change
0200 Audit Required
0210 Audit Required Critical

13.2 Упозорења (1000-1999)

Код Опис
1100 Secure Element Not Active
1200 Pin Code Blocked
1300 Smart Card Not Present
1400 Date/Time Not Set
1500 Pin Code Required
1600 Audit Required Response
1700 Fiscal Limit Reached

13.3 Грешке (2000-2999)

Код Опис
2100 Pin Not OK
2200 Secure Element Communication Error
2300 Fiscalization Error
2310 Invalid Tax Labels
2400 Database Error
2500 Network Error

14. Капацитет меморије

14.1 Процена капацитета

Л-ПФР може да складишти минимум 50.000 фискалних рачуна у локалној SQLite бази података док ради без интернета.

14.2 Невелатилна меморија

Л-ПФР меморија (SQLite база података на диску) не захтева енергетско напајање да би сачувала податке.

14.3 Максимална величина

Максимална величина базе података је конфигурабилна (1-10 GB).

15. Лиценцирање

15.1 Тип лиценце

LinuxLPFR је комерцијални софтверски производ који се дистрибуира под комерцијалном лиценцом.

15.2 Модел активације

15.3 Произвођач

Напомена: Лиценцни услови и цене биће финализовани пре комерцијалног лансирања.

Историја верзија

Верзија Датум Опис измена
1.0 28.11.2025 Иницијална верзија

© 2025 EKV d.o.o. Сва права задржана.