Skip to content

Portal and licensing / 2022

BKC Soft: licenses and daily register reports in one portal

Case study: BKC Soft issued licenses by hand and owners added up revenue by phone. The portal now handles 500+ licenses and reports from 20+ users.

BKC Soft website home page: a complete fiscalization solution for retail, restaurants, cafés and hotels
Client
BKC Soft
Year
2022
Build time
about 3 weeks
Role
Full development and maintenance: website, partner area, admin area and the link to the POS software
Technologies
PHP, MySQL, JavaScript

500+

licenses the software fetches itself

20+

users sending daily reports

since 2022

running and maintained

This is a case study of the portal I built for BKC Soft. If you are looking for their point of sale software itself, their official site is bkcsoft.rs.

Client and context

BKC Soft makes point of sale software used by retail shops, restaurants, cafés and hotels in Serbia. It is accredited with the Serbian Tax Administration as an ESIR (the Serbian term for a certified system that issues fiscal receipts) under registration number 88. We started in 2022 with a public website, and in 2024 a partner portal for venue owners was added. The system has been running and maintained by me ever since.

One address serves three audiences: a public site for people choosing software, a portal for venue owners, and an admin area for the company itself, where customers are managed and licenses issued.

Problem

Two jobs were done by hand. Licenses were issued and renewed outside any system, so every change meant someone had to reach the installation. And an owner with several venues had nowhere to see how the day went: revenue sat in each register, on site, and was added up over the phone.

The accountant also needed a monthly overview per venue, with daily revenue and e-invoices from SEF, the Serbian e-invoicing system, in one place.

Constraints

The POS software runs at a large number of customers, and no change on the portal may stop it. Every change has to work with the old version of the software until customers update theirs.

Internet in the venues is not always reliable. On a weak connection the software's call does not go through and nothing is sent, so the portal needs a manual route too. The third constraint is security: revenue data is each customer's business secret, so nobody may pull someone else's data, by mistake or on purpose.

Solution

Licenses the software fetches itself

When a customer is added in the admin area, they get a unique registration number derived from the one in the software. The software uses that number to fetch its license from the portal, which acts as an API (an address programs use to exchange data). Manual checks are needed only occasionally. More than 500 licenses have been issued.

Daily reports by venue and JID

The hardest part was sorting. Every report arrives with the JID of the register's secure element, and when an owner logs in, the portal pulls all venues of their company and splits the reports between them. The default view is the current month, and the owner can choose any venue and date range. More than 20 users send reports, with large daily takings and many e-invoices.

One API call for a day or a period

The software uses the same call to request the XML of one day's report or a whole period, and the portal recognizes which one was asked for from the same link. The software did not have to rewrite its call, and when it does change it, the old call keeps working, so not every customer has to update at once.

Statistics and the monthly report

Owners see revenue by month, the best month, the average and the number of active months, a measure of seasonality rather than just a total. The monthly report combines daily revenue with e-invoices from SEF and exports to PDF or XML for the accountant.

Manual entry and protection

A day without internet is entered by hand afterwards, so the records have no gap in exactly what the accountant needs. Every call is protected against misuse, and limits are in place so nobody can pull the list of all customers.

How a venue owner uses the portal

  1. They log in, and the portal pulls all venues of their company, sorted by the register JID.
  2. They see the daily reports for the current month right away, with total VAT and total paid at the bottom.
  3. They pick a venue and a date range and open any day in detail.
  4. In statistics they see revenue by month, the best month and the number of active months in the year.
  5. At the end of the month they export a report to PDF or XML. Only days that actually have entries are exported, and e-invoices from SEF sit next to daily revenue.

The owner needs nothing but a browser for all of this; the POS software does its part on its own.

Technologies and why

The portal is built in PHP and MySQL, with JavaScript for filters and charts. For sending to SEF and the e-delivery note system, the software uses a separate service, efakture.exe, and the POS computers run TimeSync, a tool that keeps the clock and regional settings correct. Both have their own case studies.

How the system grew

Year What was added
2022 the public website and the admin area for customers and licenses
2023 the efakture.exe service for sending to SEF, in the first year of mandatory e-invoicing between companies
2024 the partner area for venue owners, with daily reports and statistics
after that the TimeSync tool for POS computers and sending e-delivery notes through the same service
2026 changes for the e-invoicing and e-delivery note laws, including those that apply from January 1, 2027

Each new part was added without interrupting the existing ones, because customers do not all update their software on the same day.

Result

Licenses are issued and renewed from the portal and the software picks them up by itself, with no site visit for a single change: more than 500 so far. An owner with several venues sees every day and every venue in one place, and a day without internet is entered by hand. More than 20 users send daily reports, and the system has been running and maintained continuously since 2022 (as of October 2026).

Inside the application

Partner area: a list of daily reports with filters by venue and date, venue names blurred
Partner area: a list of daily reports with filters by venue and date, venue names blurred
Revenue by month with a chart, the best month and the number of active months
Revenue by month with a chart, the best month and the number of active months
Monthly report export to PDF or XML, with daily revenue and e-invoices per day
Monthly report export to PDF or XML, with daily revenue and e-invoices per day

Services used on this project

Questions about the project

What is BKC Soft?

BKC Soft is a Serbian company that makes point of sale software accredited with the Tax Administration under registration number 88. This is a case study of the portal I built for them; their official site is bkcsoft.rs.

How does the software get its license without an on site visit?

When a customer is added in the portal's admin area, they get a unique registration number derived from the one in the software. The software uses that number to pull its license from the portal through an API.

Who maintains the portal?

I do, since 2022. Every change is built so the portal keeps working with the old version of the software until customers update.

What happens when the register has no internet?

The call from the software does not go through and nothing is sent. That is why the portal also accepts a daily report entered by hand, so the records have no gaps.

Got a similar job?

Describe what you need in a few sentences. Messages sent before 5 pm CET get a same day reply with an estimate of price and timeline.