LinuxLPFR - Локални Процесор Фискалних Рачуна
LinuxLPFR је софтверско решење за локалну фискализацију рачуна у складу са прописима Пореске управе Републике Србије и Техничким водичем за развој Л-ПФР производа.
Софтверски локални процесор фискалних рачуна (Л-ПФР) који се инсталира на Linux оперативним системима.
Систем омогућава: - Пријем захтева за фискализацију од ЕСИР система - Дигитално потписивање рачуна помоћу Безбедносног Елемента - Генерисање QR кода за верификацију рачуна - Слање података за ишчитавање СУФ систему - Локално и интернет ишчитавање
Систем се састоји од следећих компоненти: - HTTP сервер за комуникацију са ЕСИР системом - Модул за комуникацију са паметном картицом (PC/SC) - SQLite база података за локално складиштење - Модул за аудит и ишчитавање - Кориснички интерфејс (Slint UI)
Л-ПФР се ослања на Безбедносни Елемент за: - Потписивање фискалних рачуна - Чување интерних података - Издавање дигиталних сертификата
Л-ПФР добија следеће информације са Безбедносног Елемента: - ПИБ (Порески идентификациони број) - ЈИД (Јединствени идентификатор картице) - Назив обвезника - Назив продајног места - Адреса - Општина - Датум важења сертификата
Систем приказује тренутни оперативни статус преко корисничког интерфејса: - Статус картице (присутна/није присутна) - Статус сертификата (важећи/истекао) - Статус PIN верификације - Статус интернет конекције - Статус повезаности са СУФ
Л-ПФР потврђује свој идентитет валидним дигиталним сертификатом који је складиштен у PKI аплету Безбедносног Елемента када захтева токен за приступ API сервису СУФ-а.
Л-ПФР користи добијени токен приликом комуникације са СУФ-овим веб сервисима. Токен се аутоматски освежава пре истека.
Л-ПФР обрађује све команде пристигле од стране СУФ-а узастопним редоследом.
Л-ПФР прима захтеве за фискализацију од ЕСИР система путем HTTP API-ја на конфигурисаном порту.
Пре процесирања, Л-ПФР верификује структуру захтева послатог од стране ЕСИР-а. У случају неисправне структуре, враћа се одговарајући код грешке.
Л-ПФР рачуна порез на основу износа и тренутно активних пореских стопа по артиклу послатих са ЕСИР-а. Све суме се заокружују на 4 децимале користећи методу заокруживања на већи број (half-round up).
Л-ПФР шаље податке за фискализацију рачуна ка Безбедносном Елементу заједно са тренутним датумом и временом, као и PIN кодом (ISO/IEC 7816-4).
Л-ПФР прима рачун потписан од стране Безбедносног Елемента.
Л-ПФР креира журнал фајл и генерише јединствен URL за проверу исправности (верификацију) рачуна.
Л-ПФР шаље фискализоване податке ЕСИР-у у склопу одговора на захтев за фискализацију рачуна.
Л-ПФР је направљен тако да може да региструје фискалне рачуне док истовремено шаље податке за ишчитавање ка СУФ-у.
Функционисање Л-ПФР-а не успорава издавање рачуна на страни ЕСИР-а.
На издавање рачуна не утиче постојање интернет везе. LPFR може радити до 30 дана без интернета, по успостављању везе аутоматски шаље податке ка СУФ-у. Или се одради локлни аудит.
Л-ПФР добија информације о пореским групама преко команде “Tax Rates Command” током процеса иницијализације или када су пореске стопе промењене.
Команда за пореске стопе садржи датум и време од када ће нове пореске стопе бити примењене.
Л-ПФР не прихвата и не процесуира захтев за фискализацију рачуна ако садржи непостојећу пореску стопу или стопу која није активна.
Л-ПФР мора да достави податке СУФ-у на два начина: - Локално ишчитавање (путем USB/SD картице) - Интернет ишчитавање (директна комуникација са СУФ)
Сви подаци за ишчитавање су енкриптовани користећи AES-256 са енкрипционим кључем како је наведено у Техничком водичу.
Л-ПФР користи исти формат података за локално и интернет ишчитавање.
Уколико је неопходно ишчитавање, Л-ПФР ту информацију приказује у пољу auditRequired, као што је описано у одељку Техничког водича “Get Status Command”.
Л-ПФР не брише пакете за ишчитавање из меморије, нити да их мења новим пакетима, осим ако то није одобрено добијеним Доказом о ишчитавању (ДИ).
Л-ПФР доставља Безбедносном Елементу Доказ о ишчитавање, генерисан од стране СУФ-а, одмах када прими тај податак.
Меморија Л-ПФР-а се не ослобађа пре пристиглог доказа о ишчитавању. Тек онда се подаци у датотеци бришу.
Променом паметне картице Л-ПФР не обуставља интернет или локално ишчитавање података из интерне меморије. Нова картица може да се користи само ако су сви пакети за исчитавање са прехтодне картице успешно послати.
Л-ПФР складишти податке за ишчитавање локално пре него што ЕСИР-у врати одговор са фискализованим подацима.
Л-ПФР комуницира са СУФ-ом на начин који је описан у Техничком водичу, користећи HTTPS протокол са обостраном TLS аутентификацијом (mTLS), JWT токене за аутентификацију, и AES-256 енкрипцију података.
Л-ПФР аутоматски управља слањем пакета за ишчитавање према СУФ-у:
Напомена: Детаљна техничка документација о имплементацији комуникације са СУФ-ом доступна је у интерним развојним документима.
Л-ПФР на захтев шаље податке ка јединици спољне меморије (USB флеш, SD картица) у формату који је дефинисан у Техничком водичу.
Сви подаци се складиште на јединици спољне меморије у фолдеру названом по вредности ЈИД-а Безбедносног Елемента. У случају да ти фолдери не постоје, Л-ПФР их аутоматски креира.
Фолдер назван по вредности ЈИД-а садржи: - {ЈИД}.arp -
фајл са резултатима позива Begin Audit APDU команде -
{ЈИД}-{ЈИД}-{Редни број}.json - један или више пакета за
ишчитавање
Л-ПФР приказује обавештења када се локално ишчитавање започне и када се заврши.
Л-ПФР прочита и примени команду за завршетак ишчитавања уколико се иста налази на јединици спољне меморије.
Л-ПФР не одговара на захтев за рачун из ЕСИР-а ако није у директној вези са Безбедносним Елементом. У случају да БЕ није доступан, враћа се код грешке 1300 (Smart Card Not Present).
Л-ПФР нигде не складишти PIN код, осим у радној меморији. Када се Л-ПФР рестартује, оператер/касир мора поново да унесе PIN код.
Л-ПФР не дозвољава да се промене параметри у комуникационом протоколу, у складу са Техничким водичем. Сви протоколни параметри су дефинисани као константне вредности.
У случају грешке, Л-ПФР не шаље било који други податак осим шифре грешке дефинисане у шифрарнику грешака у склопу Техничког водича.
Л-ПФР не прихвата и не процесуира захтев за фискализацију рачуна ако садржи непостојећу пореску стопу или стопу која није активна или која није била активна у тренутку издавања референцираног документа.
Систем се ослања на системски сат оперативног система који мора бити синхронизован са NTP сервером.
Л-ПФР има могућност ажурирања URL-а временског сервера који се користи за синхронизацију сата.
Фискални рачун не може имати датум/време старије од претходно издатог рачуна. Систем одбија рачуне са датумом у будућности (толеранција: 5 минута).
Л-ПФР чува извештаје о свим грешкама као што је описано у Техничком водичу.
Л-ПФР бележи и чува сваку грешку хронолошки у локалном времену (датум, сат, минут, секунда).
Начин експортовања извештаја је олакшан за корисника (USB, SD картица, фолдер на диску) и он се снима у читљивом формату.
Л-ПФР чува извештај о грешкама који покрива минимално последњих тридесет дана. Период чувања је конфигурабилан (30-365 дана).
Л-ПФР извештај о грешкама не утиче на део меморије који је експлицитно одвојен за складиштење потписаних фискалних рачуна. Логови и рачуни се чувају у одвојеним табелама базе података.
Л-ПФР шаље податке за ишчитавање СУФ-у за сваки рачун врсте: - П (Промет) - А (Аванс) - К (Копија) - О (Обука) - Р (Предрачун)
Л-ПФР креира јединствен URL за генерисање QR кода сваког рачуна.
Дигитални потпис рачуна омогућава верификовање интегритета података рачуна и веродостојност у складу са Техничким водичем.
| Код | Опис |
|---|---|
| 0000 | Undefined Info |
| 0100 | PIN OK |
| 0110 | PIN OK - need change |
| 0200 | Audit Required |
| 0210 | Audit Required Critical |
| Код | Опис |
|---|---|
| 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 |
| Код | Опис |
|---|---|
| 2100 | Pin Not OK |
| 2200 | Secure Element Communication Error |
| 2300 | Fiscalization Error |
| 2310 | Invalid Tax Labels |
| 2400 | Database Error |
| 2500 | Network Error |
Л-ПФР може да складишти минимум 50.000 фискалних рачуна у локалној SQLite бази података док ради без интернета.
Л-ПФР меморија (SQLite база података на диску) не захтева енергетско напајање да би сачувала податке.
Максимална величина базе података је конфигурабилна (1-10 GB).
LinuxLPFR је комерцијални софтверски производ који се дистрибуира под комерцијалном лиценцом.
Напомена: Лиценцни услови и цене биће финализовани пре комерцијалног лансирања.
| Верзија | Датум | Опис измена |
|---|---|---|
| 1.0 | 28.11.2025 | Иницијална верзија |
© 2025 EKV d.o.o. Сва права задржана.