Bilko HR Roadmap — Fiscal Compliance + Feature-Enable Architecture (2026-05-29)
Bilko HR Roadmap — Fiscal Compliance + Feature-Enable Architecture
Created: 2026-05-29
CEO directive: B2B prvo, B2C odgođen, citav app feature-enable based (micro-frontend) za per-user per-plan delivery
Status: Active roadmap, supersedes prior B2B-only scoping
1. Executive summary
- HR ima dva odvojena fiskalna sistema: F1 (B2C, SOAP) i F2 (B2B, Peppol) — oba mandatorna od 01.01.2026 per Zakon o fiskalizaciji NN 89/25 (porezna-uprava.gov.hr verified 2026-05-29)
- CEO odluka 2026-05-29: B2B prvo (Phase 0), B2C odgođeno
- CEO arhitektonska direktiva 2026-05-29: Feature-enable based / micro-frontend / per-user per-plan delivery — NE hackovati per feature
- B2B path: Storecove (~70% Bilko code već postoji, u pregovorima oko cijene) ili Sveračun (negotiated <€0.10/invoice, čekamo creds)
- Multi-tenant accountant view (1 računovođa → 30+ klijent orgs) zavisi od prvog B2B ACK
- Direktni rizik produkta ako feature-enable ne dođe prvo: plan tier leakage, ad-hoc feature flag hacking, market cross-contamination
2. Croatian fiscal legal framework
Zakon o fiskalizaciji
- Aktuelni tekst: NN 89/25 (Narodne novine)
- Source: https://porezna-uprava.gov.hr/hr/fiskalizacija/3982
F1 — B2C fiskalizacija (POS / kasa)
- Aktivno od 2013 (Fiskalizacija 1.0), proširen 2026 (Fiskalizacija 2.0)
- Path: real-time SOAP ka
cis.porezna-uprava.hr
- JIR (Jedinstveni identifikator računa) — generira Porezna uprava u SOAP response-u
- ZKI (Zaštitni kod izdavatelja) — MD5 hash
(OIB + DateTime + InvoiceNumber + PPCode + DeviceCode + TotalAmount), RSA-signed sa FINA cert
- Cert obaveza: PER-ORG FINA application certificate, bez moguće intermedijarne organizacije
- Receipt arhiva: 11 godina
- Hardware fiskalni printer: NIJE legalno mandatoran (web POS dovoljan)
- Source: https://porezna-uprava.gov.hr/hr/fiskalizacija-racuna-u-krajnjoj-potrosnji-b2c-poslovanje/8033
F2 — B2B eRačun
- Mandatorno od 01.01.2026 (svi B2B sa drugim PDV obveznicima)
- Format: HR-FISK CIUS (Peppol BIS Billing 3.0 sa hrvatskim ekstenzijama)
- Path: preko Peppol intermediara (Storecove, Sveračun, drugi)
- Cert NIJE per-org — intermediar pokriva (key razlika od B2C)
- UBL 2.1 XML (težak dio) — već implementiran u Bilko
- Source: https://porezna-uprava.gov.hr/hr/izdavanje-i-primanje-eracuna-i-fiskalizacija-eracuna/8047
Terminologija
- "F1" = B2C sistem (ne form-type / cert-type)
- "F2" = B2B sistem (ne form-type / cert-type)
- Common confusion: ovo NISU schema verzije ili cert tipovi
PDV stope
- Standard: 25%
- Reduced: 13% (turizam, hospitalitet)
- Reduced: 5% (osnovne potrebe, mediji)
- Zero: 0% (izvoz, intra-EU isporuke)
3. Phased roadmap sa MC mapingom
Phase 0 — B2B prvo (current focus)
| Phase |
MC |
Naslov |
Status |
Vlasnik |
| 0a |
#102447 |
Storecove HR-FISK 2.0 activation (FAST PATH, 4-5 dana) |
open — counter-offer poslan 2026-05-28 |
john |
| 0b |
#102398 |
Sveračun API sandbox onboarding (negotiated <€0.10/invoice) |
open — čeka CEO email za creds + računovođa intro |
john |
| 0c |
#102481 |
Feature-enable based micro-frontend architecture (CEO 2026-05-29) |
open — kritičan prerequisite, dolazi PRIJE Phase 1 |
john |
| 0d |
#102401 |
Bilko Phase 0 multi-org switcher + Securion RLS gate |
open — zavisi od bilo koji B2B ACK |
john |
| 0e |
#102399 |
5 accountant pilot recruitment (90-day) |
open — CEO outreach |
alem |
| 0f |
#102400 |
HR pravna osoba tracking (background) |
open — Sveračun potvrdio NIJE potrebno za B2B; B2C TBD |
alem |
Phase 1+ — B2C (DEFERRED per CEO 2026-05-29)
| Phase |
MC |
Naslov |
Status |
1 |
#102478 |
B2C fiskalizacija MVP (ZKI + JIR + SOAP + FINA cert) |
DEFERRED — 21 dana effort |
2 |
#102479 |
B2C POS web kasa modul |
DEFERRED — 19 dana effort |
| 3 |
TBD |
Hardware integration (fiskalni printer, cash drawer, barcode) |
not opened |
| 4 |
TBD |
Industry specializations (hospitality, retail, services) |
not opened |
4. Feature-enable architecture directive
CEO directive (verbatim, 2026-05-29)
"citav app treba da je feature enable based (micro frontend) nadam se da mozemo lako features per user per pay deliver a ne da sve hakiramo"
Problem statement
- B2B + B2C + accountant view + direct SMB + multi-market (HR/RS/BiH) — sve raste kao monolit
- Risk: per-feature ad-hoc hacking
- Risk: revenue leakage (Basic plan vidi Pro feature)
- Risk: dev na HR markeu lomi RS market
Cilj — komponente architekture
- Central feature catalog — kanonski popis svih feature-a sa metadata (market, plan tier, dependency graf)
- Per-user feature resolution — funkcija od (tenant org country + plan tier + accountant role + custom overrides)
- Micro-frontend split — nezavisni feature modules koji se učitavaju/ne učitavaju po feature flag-u
- Pricing model alignment — Basic/Pro/Accountant tier = feature subset (definirano u catalog-u)
- Safe fallback — feature flag service down → conservative defaults (Basic, ne Pro)
- Audit trail — koji user kad accessovao koji feature
Implementation phases (MC #102481)
- Phase 0: feature catalog kanonski + DB schema + resolution endpoint (~M effort)
- Phase 1: per-tenant feature flag application u backend (~S)
- Phase 2: micro-frontend split frontend (~L)
- Phase 3: pricing model wiring (~M)
- Phase 4: admin UI za enable/disable per tenant (~S)
Build vs buy
Datavera istražuje:
- LaunchDarkly (mature, $$)
- GrowthBook (open-source self-hosted)
- Unleash (open-source self-hosted)
- ConfigCat (mid-tier)
- Build-our-own (potpuna kontrola, više rada)
5. Open decisions for CEO
- B2B path: prihvatamo Storecove counter-offer (ako stigne s revidiranim quote) ili idemo Sveračun?
- HR pravna osoba: potvrđeno NIJE potrebna za B2B; otvoreno za buduće B2C (kad ga otvorimo)
- Feature catalog vendor: build vs buy — odluka nakon Datavera istrage
- Multi-market timing: kad RS (SEF) + BiH ulaze u feature catalog scope?
6. MC indeks
| MC |
Priority |
Status |
Vlasnik |
Naslov |
Rute |
| #100332 |
H |
ready_for_review |
alem |
Sveračun CEO outreach (parent) |
bizdev |
| #102447 |
H |
open |
john |
MC-A2 Storecove FAST PATH |
backend |
| #102398 |
H |
open |
john |
MC-A Sveračun sandbox onboarding |
backend |
| #102481 |
H |
open |
john |
Feature-enable architecture (CEO 2026-05-29) |
backend |
| #102401 |
H |
open |
john |
MC-D Phase 0 multi-org switcher |
backend |
| #102399 |
H |
open |
alem |
MC-B 5 accountant pilot recruit |
bizdev |
| #102400 |
M |
open |
alem |
MC-C HR doo tracking |
bizdev |
| #102478 |
H |
open (DEFERRED) |
john |
MC-E B2C fiskalizacija MVP |
backend |
| #102479 |
M |
open (DEFERRED) |
john |
MC-F B2C POS web kasa |
frontend |
| #102448 |
H |
open |
john |
Vendor email routing + auto-forward |
devops |
| #102449 |
H |
open |
john |
Policy: no strategic reply bez CEO OK |
bizdev |
7. Source artifacts
/tmp/alai/bilko-hr-fiscal-full-scope-20260529.md — Datavera HR law research (640 linija)
/tmp/alai/bilko-hrfisk-audit-20260528.md — CodeCraft FISK code path audit
/tmp/alai/sveracun-meeting-outcome-20260528.md — Sveračun meeting outcome
/tmp/alai/bilko-accountant-gtm-spec-20260528.md — Skybound accountant-led GTM spec
/tmp/alai/bilko-multitenant-accountant-gap-20260528.md — CodeCraft multi-tenant tech gap
/tmp/alai/storecove-counter-reply-20260528.md — Storecove counter-offer state
8. Decision log
| Datum |
Odluka |
Kontekst |
| 2026-05-28 |
Bilko HR ide dual-track GTM (accountant + direct SMB) |
Sveračun meeting strategic input |
| 2026-05-28 |
Storecove counter-offer poslan (no name drop Sveračun) |
CEO directive — leverage |
| 2026-05-29 |
B2B prvo, B2C odgođen |
CEO scope decision |
| 2026-05-29 |
Feature-enable / micro-frontend arch je obavezan prerequisite za sve daljnje builds |
CEO architecture directive |
9. Next steps
- Storecove reply chase — ako nema odgovora do 2026-06-04, poslati follow-up sa ref na contract expiry 27-06-2026
- Sveračun follow-up email — CEO šalje za sandbox creds + 3-5 računovođa intro (target: 2026-05-30)
- Datavera dispatch za feature catalog vendor comparison (LaunchDarkly vs GrowthBook vs Unleash vs build-our-own)
- Mehanik gate za MC #102481 (feature-enable arch) prije CodeCraft Phase 0 dispatch
- Update MEMORY.md sa pointer-om na ovu BookStack stranicu (skip-list ako se promijeni status)
No comments to display
No comments to display