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.

- 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
- They log in, and the portal pulls all venues of their company, sorted by the register JID.
- They see the daily reports for the current month right away, with total VAT and total paid at the bottom.
- They pick a venue and a date range and open any day in detail.
- In statistics they see revenue by month, the best month and the number of active months in the year.
- 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



Services used on this project
- Custom web applications for work that has outgrown spreadsheets
- SEF e-invoicing integration for companies operating in Serbia
- Website maintenance after launch
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.
Similar projects
Case study
efakture.exe: POS software sends to SEF without a rewrite
Case study: POS software could not send to SEF. A Go service has sent more than 10,000 invoices and 5,000 delivery notes since 2023.
Case study
TimeSync: the right clock and regional settings on point of sale PCs
Case study: a C# tool that keeps the clock and regional settings correct on fiscal cash register computers. One .exe file, set up on one screen.
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.