# RS mali preduzetnik — odluka: gradimo sami + sedam tačaka diferencijacije (MC #107368)

# RS mali preduzetnik — odluka: gradimo sami

**Odluka CEO-a, 2026-08-19:** gradimo sami. Ne kupujemo konkurenta, ne idemo u partnerstvo.
**Prateći dokument:** [Republika Srpska — režim malog preduzetnika](./MALI-PREDUZETNIK.md) — pravna podloga, provjerena protiv primarnih izvora.
**MC:** #107368

---

## 1. Šta znamo o njihovom proizvodu — i šta ne znamo

> **Izvor i njegove granice.** Nalog na `app.freelancing.ba` **nije otvaran**. Ali oni sami
> objavljuju **11 punih snimaka ekrana** aplikacije na javnoj stranici — preuzeti u punoj
> rezoluciji u `~/system/evidence/107368/konkurent-ekrani/`. To je stvarni proizvod, ne
> marketinški opis. Ograda: snimak pokazuje **da polje postoji**, ne šta se iza njega dešava.

### Njihova navigacija, očitana sa snimaka

`Pregled` · `Klijenti` · `Fakture` · **`Porezi i doprinosi` `Beta`** ·
**`Knjiga prihoda` `Beta`** · `Troškovi` · **`Praćenje vremena` `Beta`** · `Kalendar` ·
`Benefiti` · `Podešavanja` · `Nove funkcije` · `Pomoć i propisi`

**Tri modula nose oznaku `Beta` — i to su upravo compliance moduli.** Porezi i doprinosi,
knjiga prihoda i praćenje vremena. Naplaćuju 30 KM mjesečno, a poresko jezgro im je u beti.

### Šta se stvarno vidi na ekranima

| Ekran | Nalaz |
|---|---|
| **Fakture** | Statusi `ČEKA SLANJE / POSLATO / NAPLAĆENO / ODBIJENO / OTKAZANO` sa BAM zbirovima. Kolone: klijent, broj, status, **`Fiskalni račun` (✓ Da)**, datum izdavanja, datum dospijeća, iznos, **iznos u BAM** (druga kolona ⇒ podržavaju stranu valutu). |
| **Knjiga prihoda** | Kolone: red. br., datum knjiženja, opis promjene, `Proizvodi / Roba / Usluge / Ostalo / Finansijski`, ukupno naplaćeno, **`PDV`**. Zbirovi po mjesecu i godini. Dugmad `Pregled PDF` i **`+ Odaberite prilive`**. Stavke referenciraju `Izvod: 2`, `Izvod: 3`. |
| **Porezni obrasci** | Generišu **`Obrazac 1007 — Poreska prijava za malog preduzetnika`** (Ministarstvo finansija RS, Poreska uprava), sa `Preuzmi PDF`. |
| **Pragovi poreza** | „Primijenjeni opseg: **Od 30.001 do 50.000 BAM**", traka „Ukupan prihod od početka godine: 4.412,00 / **50.000,00 BAM**", „Porez: naplaćeni prihod × 2%". |

### Tri stvari koje snimci otkrivaju, a marketing ne

1. **„Automatski" nije automatski.** Prodajna stranica tvrdi „Naplaćena faktura ide pravo u
   knjigu prihoda. Bez prepisivanja." Na ekranu stoji dugme **`+ Odaberite prilive`** —
   korisnik ručno bira koji priliv ulazi u knjigu.
2. **Knjiga ima PDV kolonu.** Mali preduzetnik po definiciji **nije PDV obveznik**
   (`ZPD čl. 21 st. 1 t. 3`). Struktura tabele (Proizvodi/Roba/Usluge/Ostalo/Finansijski + PDV)
   je oblik knjige prihoda i rashoda za **općeg** preduzetnika, a prodaje se kao evidencija
   malog preduzetnika.
3. **Prate pogrešan prag.** Traka ide prema **50.000 BAM**. To je granica iz `čl. 23a`
   ispod koje je godišnji minimum poreza 600 KM umjesto 1.200 KM — **nije** prag prihvatljivosti.
   Pravi rub, gubitak statusa malog preduzetnika, je na **100.000 KM** (`čl. 21 st. 1 t. 3`)
   i **ne prikazuje se**. Korisnik koji gleda tu traku misli da mu je plafon 50.000.
   Nigdje ni traga zbrajanju **povezanih lica** (`čl. 21 st. 2–3`).

Izričito izvan opsega kod njih: d.o.o., trgovine sa zalihama, ugostiteljstvo, veliki sistemi,
kompleksna PDV poslovanja.

---

## 2. Osam mjesta gdje ih možemo pobijediti

Poredano po tome koliko stvarno vrijede korisniku, ne po lakoći izrade.

### 2.1 Fiskalizacija — obavezna je, a njihova dubina je nepoznata

`Zakon o fiskalizaciji RS (Sl. glasnik RS 15/2022), čl. 4 st. 2` traži evidentiranje svakog
prometa preko elektronskog fiskalnog uređaja **nezavisno od načina plaćanja** — bezgotovinski
prenos na račun izričito uključen (čl. 3 st. 4). Uredba (`Sl. glasnik RS 10/2024`, čl. 2)
izuzima **šest** djelatnosti i među njima **nema** IT-a, konsaltinga, dizajna, marketinga ni
privatne edukacije — što je tačno njihova imenovana publika.

> **Dvije ispravke mojih ranijih tvrdnji — obje materijalne.**
>
> **Prva.** Rekao sam da fiskalizaciju uopšte nemaju. Netačno: snimak ekrana Fakture pokazuje
> kolonu `Fiskalni račun` sa vrijednošću `✓ Da`. Šta stoji iza toga — sa snimka se ne vidi.
>
> **Druga, važnija.** Rekao sam da „QODY već radi fiskalne uređaje pa nam to nije nova
> kompetencija". **Suprotno je tačno.** BookStack, *QODY — Model fiskalizacije* (CEO odluka
> **2026-08-03**, MC #106721): „QODY **ne gradi** fiskalnu integraciju… Obveznik fiskalizacije
> je lokal (ugostiteljski objekat), **ne platforma**." Faza „RS OFS integracija" je izričito
> **otkazana**. Fiskalizaciju rješavaju Monri (kartice) i POS kasa lokala (gotovina).

**Presedan koji već imamo, i koji treba slijediti.** Ista logika vrijedi ovdje: obveznik
fiskalizacije je **SP**, ne Bilko. Zakon to i kaže — `čl. 4 st. 1`: obveznik je „lice koje je
registrovano za obavljanje prometa robe i usluga".

Dodatno, u RS uređajni sloj nije otvoren: **operater fiskalnog sistema odobren od Poreske
uprave RS** ima isključivo pravo i obavezu da s obveznikom sklapa ugovor o isporuci,
instalaciji i održavanju elektronskog fiskalnog uređaja, te da upari sigurnosni element s
procesorom fiskalnih računa. Preduslov za inicijalnu fiskalizaciju je ugovor o Elektronskom
sandučetu Poreske uprave **i** ugovor s ovlašćenim operaterom.

**Naš potez — korigovan.** Ne gradimo fiskalni uređaj i ne izdajemo fiskalni račun.
Gradimo **savjetodavni i usaglašavajući sloj**:

- pri onboardingu utvrditi je li korisnikova djelatnost među šest izuzetih (`Sl. glasnik RS 10/2024`) i ako nije — **jasno mu reći da ima obavezu**, što mu konkurent ne kaže;
- po fakturi evidentirati je li fiskalni račun izdat, s brojem i datumom;
- **usaglasiti knjigu prometa s fiskalnim računima** i prijaviti razlike;
- upozoriti prije podnošenja Obrasca 1007 ako postoji nepokriven promet.

Time diferencijacija nije „mi imamo uređaj a oni nemaju" — nego **mi kažemo istinu o obavezi
i mjerimo je, a njihova prodajna stranica je ne pominje nijednom.** To je poštenije i
neuporedivo jeftinije.

### 2.2 Prag od 100.000 KM se računa **zbirno s povezanim licima**

`ZPD RS čl. 21 st. 2 i 3`: u prag ulazi i prihod **povezanih lica** koja obavljaju **istu**
djelatnost — supružnici (bračni i vanbračni), djeca i usvojenici, roditelji i usvojioci,
braća i sestre u zajedničkom domaćinstvu.

Klasična zamka: korisnik gleda svojih 80.000 KM i misli da je siguran, a supruga u istoj
djelatnosti ima 40.000 KM. Prag je probijen, **status pada za cijelu godinu**, i retroaktivno
nastaje obaveza vođenja pravih poslovnih knjiga.

Njihov „praćenje pragova u realnom vremenu" gotovo sigurno broji samo jedno lice.

**Naš potez:** domaćinstvo kao objekat u modelu, ne samo firma. Upozorenje na osnovu zbira,
uz jasno „ovo je procjena, potvrdi sa savjetnikom".

### 2.3 Ulazak i izlazak iz statusa je datumska zamka

`ZPD RS čl. 25`: obavještenje Poreskoj upravi **do 31. januara** za godinu na koju se status
odnosi; novoosnovani **u roku od 30 dana** od početka djelatnosti.
Propusti rok i nemaš režim te godine — bez obzira što ispunjavaš sve uslove.

Uslovi iz čl. 21 moraju vrijediti **cijelu poresku godinu** kumulativno: ≤3 radnika,
≤100.000 KM odnosno nije PDV obveznik, bez zajedničke djelatnosti, bez ulaganja drugih lica.

**Naš potez:** kalendar statusa kao prvoklasna funkcija — odbrojavanje do 31. januara,
čuvar pri zapošljavanju četvrtog radnika, alarm pri približavanju PDV pragu.

### 2.4 Znamo tačan izlazni dokument — Obrazac 1007

**Službeni obrazac preuzet je s `poreskaupravars.org`** i arhiviran kao
`~/system/evidence/107368/obrazac-1007-sluzbeni.pdf`. Struktura, doslovno:

| Odjeljak | Polja |
|---|---|
| Zaglavlje | Република Српска · Министарство финансија · Пореска управа · **Образац 1007** · БАР КОД · Прилог број 10 |
| 1 — Подаци о малом предузетнику | 1) **ЈИБ** · 2) **Назив** малог предузетника · 3) адреса · 4) врста пријаве (основна / измјењена) · 5) шифра општине · 6) порески период од–до · 7) телефон · 8) e-mail |
| 2 — Приходи | 1) износ наплаћен **у готовини** (из **колоне 5 Књиге промета**) · 2) износ наплаћен **путем рачуна банке** (из **колоне 6 Књиге промета**) · 3) укупно (ред 1 + ред 2) |
| 2 — Обрачун пореза | 4) обрачунати порез (ред 3 × 2%) **или 600 КМ ако је мањи** · 5) износ уплаћеног пореза · 6\*) разлика (ред 4 − ред 5) |
| Овјера | изјава под моралном, материјалном и кривичном одговорношћу · потпис · датум · овјера Пореске управе |

\* Red 6 se popunjava **samo kod konačne godišnje prijave**.
Napomena na obrascu: ko redovno do 10. plaća i podnosi mjesečnu prijavu, **nije dužan
podnijeti konačnu godišnju**. To se poklapa sa `ZPD čl. 24 st. 2`.

### Njihova verzija obrasca nije službena

Poređenje sa snimkom konkurenta pokazuje tri razlike:

| | Službeni obrazac | Kod njih |
|---|---|---|
| Izvor podataka | **Књига промета**, kolone **5 i 6** | „колона 10 **књиге прихода**" |
| Prihodi | razdvojeno **gotovina** / **банка** | jedan zbirni red |
| Red 3 | износ уплаћеног пореза | „порез утврђен у поступку контроле" |
| Polje 1 | **ЈИБ** | „ЈМБ / ЈИБ" |
| Polje 2 | **Назив** малог предузетника | „име и презиме" |

Ovo potvrđuje raniji nalaz iz odjeljka 1: **grade nad pogrešnom knjigom.** Službeni obrazac
crpi iz **Knjige prometa** i traži razdvajanje gotovine od bankovnog priliva — čega u njihovoj
„Knjizi prihoda" nema.

> **Dvije stvari koje obrazac otvara, a nisu razriješene.**
>
> 1. **Minimum poreza.** Obrazac kaže „или **600 КМ** ако је обрачунати порез мањи". Ali
>    `ZPD čl. 23 st. 2` propisuje minimum **1.200 KM**, a `čl. 23a` spušta na 600 KM **samo
>    ako godišnji prihod ne prelazi 50.000 KM**. Obrazac je očito stariji od tih izmjena
>    (polja za period nose oblik `/200_`). **Slijediti zakon, ne obrazac**, i pitanje postaviti
>    savjetniku.
> 2. **Kanal podnošenja.** Na samom obrascu piše: „Како још увијек није могуће **електронско
>    подношење пријава**, дугме 'Submit Form' тренутно нема функцију!" Sekundarni izvori tvrde
>    suprotno — da se 1007 podnosi isključivo elektronski. **Ne tvrditi ni jedno ni drugo dok
>    se ne provjeri kod Poreske uprave RS.** Od odgovora zavisi da li je naš izlaz PDF ili
>    e-podnošenje — a to je razlika između pomoćnog alata i pravog rješenja.

### 2.5 Mjesečna prijava — niko je ne rješava

`ZPD RS čl. 24a`: **mjesečna poreska prijava do 10.** u mjesecu, i `čl. 24`: plaćanje do 10.
za prethodni mjesec. Plaćeni porez je **konačna obaveza** i ne ulazi u godišnju prijavu.

Oni obrazac generišu pa korisnik **ručno prepisuje u eUsluge**. Mi trenutno ne radimo ni to —
naš paušalni engine je `reviewOnly: true`, po komentaru u kodu *„never files or posts"*.

**Naš potez:** ovo je najveći neosvojeni prostor na tržištu. Prvi korak je prepopunjen i
validiran obrazac vezan za rok; predaja je zasebna odluka koja traži pravnu provjeru.

### 2.6 Terminologija — oni je imaju pogrešnu

Zakon (`ZPD čl. 27 st. 3`) propisuje malom preduzetniku **knjigu prometa**.
Oni prodaju „**Knjigu prihoda** — jedinu evidenciju koju po zakonu morate voditi".
„Knjiga prihoda i rashoda" je druga kategorija (`čl. 27 st. 2 t. 2`), za preduzetnike koji
**nisu** mali preduzetnici.

**Naš potez:** tačan naziv, tačan sadržaj, i vidljiva referenca na član zakona uz svaki
izvještaj. U compliance proizvodu je preciznost dio ponude, ne pedanterija.

### 2.7 Njihov proizvod ima ugrađen plafon — naš nema

Oni sami pišu da nisu za d.o.o., zalihe, ugostiteljstvo ni PDV. Kad korisnik pređe
100.000 KM ili uđe u PDV, **njihov proizvod se završava** i korisnik seli.

Bilko na tom mjestu tek počinje: `country/ba/rs` već ima `VAT_CALCULATION` kao `AVAILABLE`,
a `bilko.company` je platforma za profesionalne računovođe (FBiH + RS, multi-firma, UIO).

**Naš potez:** ovo je najjača komercijalna razlika. Prodajemo **put rasta**, ne alat s rokom
trajanja. Uspješan korisnik ostaje u kući i prelazi u skuplji paket, ili ga preuzima
računovođa koji je već naš kupac — čime se rješava i sudar s postojećim kanalom.

### 2.8 Ono što već imamo a oni nemaju

`OCR_RECEIPTS` je kod nas `BETA` (PDFBox bez kredencijala; slike preko Azure Document
Intelligence). Oni OCR ne nude. Za korisnika koji fotografiše račune troškova to je
svakodnevna ušteda, i radi već sad.

---

## 3. Zašto sami, a ne kupovina

Njihov kod nije imovina koja nam fali — **motor već imamo**, samo konfigurisan za Hrvatsku:

```
apps/api/src/main/kotlin/no/alai/bilko/compliance/
  LumpSumComplianceProfile.kt          profil paušalca, parametrizovan po jurisdikciji
  LumpSumComplianceProfileService.kt
  HrTurnoverBookPaymentRuleService.kt  knjiga prometa iz verifikovanih naplata
apps/api/src/main/resources/compliance/lump-sum-non-vat-hr-profiles.json
apps/api/src/main/resources/db/migration/V159__pausal_postgres_persistence.sql
apps/api/src/main/resources/db/migration/V164__hr_kpo_verified_payment_events.sql
apps/api/src/main/kotlin/no/alai/bilko/services/PausalRepository.kt
apps/web/app/(dashboard)/reports/kpo
packages/domain-ba-rs/src/{tax,fiscal,chart,cpf,locale}/index.ts
```

Profil nosi `jurisdiction`, `currency`, `annualTurnoverThreshold`, `deadline.kind`,
`deadline.dayRule`, `fiscalizationRequired`, `eInvoiceRequiredWhenApplicable`, uz obavezne
reference na primarni izvor i `sourceSnapshot`; učitava se iz JSON registra i **fail-closed**
je na `REVIEW`.

Regulatornu konfiguraciju za RS izveo sam iz primarnog zakona u jednom popodnevu. Ono što se
ne može izvesti iz zakona je **publika** — a nju kupovinom softvera ionako ne dobijamo.

---

## 4. Redoslijed izrade

### 4.1 Nacrt RS profila je napisan

`lump-sum-non-vat-ba-rs-profiles.draft.json` (ovaj direktorij) — profil
`MALI_PREDUZETNIK_NON_VAT_BA_RS`, `jurisdiction: "BA-RS"`, `currency: "BAM"`,
`annualTurnoverThreshold: "100000.00"`, `fiscalizationRequired: true`,
`eInvoiceRequiredWhenApplicable: false`, sedam referenci na primarni izvor.

Provjereno protiv zahtjeva `LumpSumComplianceProfiles.parseAndValidate`:
sva obavezna polja prisutna, `deadline.sourceRef` (`BA-RS-ZPD-CL-24-24A`) postoji među
`sources[].ref`, prag pozitivan, boolean polja ispravnog tipa.
`resolve()` bira po `jurisdiction` + `currency`, pa nema sudara s HR/EUR profilom.

### 4.2 Jedan konkretan blokator u kodu, već lociran

`LumpSumComplianceProfiles.nextDeadline()` je **tvrdo vezan za hrvatsko tromjesečje**:

```kotlin
fun nextDeadline(profile: VersionedLumpSumComplianceProfile, asOf: LocalDate): LocalDate {
    require(profile.deadlineDayRule == "LAST_DAY_OF_QUARTER") { "Unsupported deadline rule" }
    ...
}
```

RS traži `DAY_10_OF_FOLLOWING_MONTH` (`ZPD čl. 24` i `24a`). Sa ovim profilom funkcija
**baca izuzetak**. Dakle prvi zadatak nije samo dodati JSON nego i **generalizovati
kalkulator rokova** na pravilo po profilu. Mali, jasno ograničen posao — ali obavezan.

### 4.3 Redoslijed

| # | Stavka | Napomena |
|---|---|---|
| 1 | Generalizovati `nextDeadline()` + ubaciti RS profil | nacrt gotov; jedini poznati blokator opisan u 4.2 |
| 2 | Knjiga **prometa** za RS, s kolonama gotovina / račun banke | mora hraniti redove 1 i 2 Obrasca 1007; postojeći HR mehanizam „naplata → upis" je osnova |
| 3 | Prag 100.000 KM **sa povezanim licima** | diferencijator 2.2; traži domaćinstvo u modelu |
| 4 | Kalendar statusa (31.1. · 30 dana · 4. radnik · PDV prag) | diferencijator 2.3 |
| 5 | Obrazac 1007 — popunjavanje i validacija | struktura poznata; **kanal podnošenja nije** (vidi 2.4) |
| 6 | Fiskalni sloj: utvrđivanje obaveze, evidencija, usaglašavanje | po QODY presedanu — **ne gradimo uređaj** |

**Šta se promijenilo u odnosu na prvu verziju ovog dokumenta.** Fiskalizacija je spala s
prvog mjesta po težini: pošto ne gradimo uređaj nego savjetodavni sloj, posao je znatno
manji nego što sam prvo procijenio. Ono što je poraslo je stavka 5 — dok se ne zna
podnosi li se 1007 elektronski ili na papiru, ne zna se ni koliko ona vrijedi.

---

## 5. Šta ostaje nedokazano

| # | Pitanje | Zašto blokira | Kome |
|---|---|---|---|
| 1 | **Kanal podnošenja Obrasca 1007** — elektronski ili papir? Na službenom obrascu piše da e-podnošenje „још увијек није могуће"; sekundarni izvori tvrde da je isključivo elektronsko. | Određuje da li je stavka 5 pomoćni alat ili pravo rješenje | Poreska uprava RS |
| 2 | **Minimum poreza: 600 ili 1.200 KM** — obrazac kaže 600, `ZPD čl. 23 st. 2` kaže 1.200 uz izuzetak 600 do 50.000 KM. Obrazac je stariji od izmjena. | Pogrešan minimum = pogrešna prijava korisnika | poreski savjetnik |
| 3 | **Fiskalizacija za SP koji fakturiše isključivo pravnim licima, posebno u inostranstvu** | Određuje kome uopšte prikazujemo obavezu | poreski savjetnik, pisano |
| 4 | **Članovi 5 i 6 konačnog ZRR** (Sl. glasnik RS 115/25) — čitani iz Nacrta | Nosi tvrdnju „ne treba računovođa" | MC #107369 |
| 5 | **Aktuelnost ZPD** — integralni tekst do 110/2024 | Sve brojke u ovom dokumentu | provjera glasnika |
| 6 | **Brojke konkurenta** (korisnici, prihod, churn) | Veličina tržišta | nisu javne |

**Riješeno u međuvremenu:** njihov tok **jeste** viđen — 11 javnih snimaka ekrana, odjeljak 1.
Ponovna upotreba QODY fiskalnog sloja **jeste** provjerena — ne postoji, izričito otkazana
CEO odlukom 2026-08-03 (MC #106721).

Pitanja 1–3 idu istom savjetniku koji već stoji u **MC #106745** (BiH poreski savjetnik za
QODY fiskalizaciju, budžet odobren). Isti profil, ista jurisdikcija — dodati ih tom briefu
umjesto da se traži drugi savjetnik.

---

*Sastavio: John (AI Director, ALAI Holding AS) · 2026-08-19 · odluka CEO-a istog dana*
*Nije poresko savjetovanje. Stavke iz odjeljka 5 provjeriti prije komercijalne upotrebe.*