Compliance log

Verejný register zmien · Aktualizované 2026-07-02

Náš záväzok

Každá legislatívna zmena, ktorá vplýva na účtovníctvo SK SZČO a s.r.o., sa premietne do Bezúčto do 30 dní od oficiálnej publikácie. Tento log dokumentuje, kedy sme čo nasadili — pre účtovnícky audit, pre vašich klientov, pre KDP SR.

Filtrovanie podľa zákona: Klikni na tag pri každom zázname (ZDPH, ZÚčto, ZDP, ZP, GDPR) a porovnaj s vašou agendou.
Sub-processors register v1.8 — oprava označenia DPA (clickwrap, nie countersigned)
Interný audit právneho povrchu zistil, že register sub-processorov a stránka pre účtovníkov nesprávne označovali DPA piatich poskytovateľov (Stripe, Resend, Cloudflare, Sentry, Railway) ako „podpísané / countersigned dokument". Skutočný stav: všetky DPA sú uzavreté clickwrap akceptáciou obchodných podmienok poskytovateľa, ktorých je DPA neoddeliteľnou súčasťou — čo je plne platný „iný právny akt" podľa čl. 28 ods. 3 GDPR (podpis sa nevyžaduje). Opravené v /legal/sub-processors, na stránke pre účtovníkov aj v internom zázname o spracovateľských činnostiach (čl. 30). Zároveň bola do Obchodných podmienok doplnená výslovná inkorporácia Spracovateľskej zmluvy (/legal/dpa) odkazom. Žiadna zmena sub-processorov, rozsahu údajov ani právneho stavu spracúvania — ide o opravu popisu na pravdivý stav.
čl. 28 ods. 3 GDPR — zmluva alebo iný právny akt · čl. 5 ods. 2 — accountability
KEP signing (eIDAS QES) — termín 30. 6. 2026 nesplnený, záväzok trvá
Pôvodný záväzok z 9. 5. 2026 (integrácia kvalifikovaného elektronického podpisu do 30. 6. 2026) sa nepodarilo dodržať — integrácia QES API certifikačnej autority zatiaľ nie je nasadená. Transparentne to uvádzame namiesto tichého odsunutia. Podávanie nie je blokované: Bezúčto vygeneruje XML/PDF (DPPO, DPFO, DPH, KV, SV) a podpis KEP-om prebehne na portáli eDane — tento postup je plne funkčný a pokrýva všetky podania. Nový záväzný termín zverejníme v tomto logu po výbere poskytovateľa QES API (Disig / SDS / Slovenská pošta).
eIDAS čl. 25-34 · § 4 zák. 272/2016
Sub-processors register v1.2 + interný RPA dokument (čl. 30 GDPR)
Transparency package update. Verejný zoznam sub-processors aktualizovaný na verziu 1.2:
  • Pridaný Google LLC (Gmail API BETA scanner + Identity SSO) — predtým chýbajúci sub-processor.
  • Pridaná sekcia „Platnosť DPA bez podpisu" — vysvetlenie clickwrap akceptácie podľa čl. 28 ods. 3 GDPR (Anthropic, Pinecone, Google) — signature NIE je vyžadovaný, postačuje „contract or other legal act".
  • Konsolidácia tabuľky DPH samozdanenia (USA SaaS dodávatelia spoločný riadok § 16 ZDPH).
  • Sync medzi sub-processors.html, dpa.html, privacy.html — predtým len sub-processors.html mal úplný zoznam 11 procesorov, ostatné zaostávali (audit risk pri ÚOOÚ kontrole).
Nový interný dokument: docs/rpa-cl-30-2026.md — Record of Processing Activities (čl. 30 GDPR) pokrývajúci 8 spracovateľských činností (účet, účtovníctvo, AI asistent, ePN, banka, push notifikácie, marketing, audit log). Predkladá sa ÚOOÚ na vyžiadanie (čl. 30 ods. 4 GDPR). Automatizovaná prevencia drift: tests/smoke/sub-processors-drift.test.js (46 testov) overuje konzistenciu medzi 4 dokumentmi pri každom deploy.
čl. 28 GDPR — sub-processors · čl. 28 ods. 3 — clickwrap valid · čl. 30 GDPR — RPA · čl. 5 ods. 2 — accountability
KEP signing (eIDAS QES) — záväzok do 30. júna 2026
Verejný roadmap commit: Bezúčto bude do 30. júna 2026 integrovať kvalifikovaný elektronický podpis (KEP) v zmysle Nariadenia eIDAS (EÚ) 910/2014 + zákon 272/2016 Z.z. o dôveryhodných službách. Implementácia cez QES API akreditovanej certifikačnej autority (Disig / SDS / Slovenská pošta) — užívateľ podpíše DPPO/DPFO/DPH XML priamo z Bezúčto bez prechodu na eDane portál. Do 30.6.2026 workaround: vygeneruj XML/PDF v Bezúčto, podpíš v eDane portále manuálne.
eIDAS čl. 25-34 · § 4 zák. 272/2016 · § 39 ods. 9 ZSpr
Saldokonto modul — § 25a ZDPH oprava DPH + § 20 ZDP opravná položka
Nový modul Saldokonto (POHODA/KROS parita) s aging report otvorených pohľadávok aj záväzkov. Bucket split 121-150 / 151-180 — pohľadávky > 150 dní eligible na opravu výstupnej DPH (§ 25a ZDPH). Per-faktúra dphRecovery = dph_amt × (otvorena/total) — ratio-based pre čiastočne uhradené. Per-partner opravnaPolozka 20/50/100 % po 360/720/1080 dní (§ 20 ods. 14 ZDP). Pre záväzky tiež § 17 ods. 27 ZDP base-tax adjustment. One-click opravný daňový doklad (§ 71 ZDPH) priamo zo saldokonto eligibility listu — POHODA-superparita.
§ 25a zák. 222/2004 ZDPH · § 20 ods. 14 zák. 595/2003 ZDP · § 17 ods. 27 ZDP · § 71 ZDPH
§ 7a ZDPH proaktívna registračná awareness pre neplatiteľa
§ 7a ZDPH bez prahu — neplatiteľ DPH, ktorý prijme službu od zahr. dodávateľa (Stripe, Google, AWS, Anthropic, Microsoft 365…), je POVINNÝ registrovať sa pred prvou službou (prvé euro). Bez registrácie = pokuta od FS SR + dodaňovacia povinnosť. Bezúčto pridáva proaktívnu detekciu — dashboard tip RED PAR7A_REGISTRACIA_POVINNA ak !dphPlatitel && !par7aRegistered && foreignCount > 0. Detekcia cez prijate.ic_dph_dod NOT LIKE 'SK%' alebo dodavatel_krajina NOT IN ('','SK'). Endpoint GET /api/par7a/awareness returns YTD foreign count + sum.
§ 7a ods. 1 zák. 222/2004 ZDPH · § 69 ods. 3 ZDPH · § 78 ZDPH
KÚV doklad totožnosti — encryption-at-rest (AML § 13)
Stĺpec kuv_records.doklad_cislo (číslo OP/pasu) ukladal plaintext. AML zák. 297/2008 § 13 + GDPR čl. 32 vyžadujú šifrovanie údajov totožnosti. Fix: nový helper encryptIdDoc() v lib/pii.js (AES-256-GCM cez BANK_ENCRYPTION_KEY) + ALTER stĺpca na VARCHAR(255) + idempotentný backfill plaintext rows. Audit log + Sentry už doklad_cislo redactujú (P1 fix 2026-05-07).
GDPR čl. 32 ods. 1 písm. a) · § 13 zák. 297/2008 · § 39 zák. 18/2018
Google SSO bezpečnostné posilnenie — id_token signature verify + auto-link block
Pred-fix: _decodeIdToken iba base64-decodol payload bez verifikácie signature voči Google JWKs → forge id_token attack. Plus auto-link Google sub na existujúci email password account = klasický OAuth account takeover. Fix: google-auth-library OAuth2Client.verifyIdToken({ audience }) (overí signature + iss + aud + exp). Auto-link na password account zablokované — redirect na error password_account_exists (user musí prihlásiť heslom + manuálne pripojiť Google v UI).
GDPR čl. 32 ods. 1 písm. b) · OWASP A07 Identification and Authentication Failures
POST /api/prijate transakcia — atomicity faktúra + zápisy
Predtým: INSERT prijate + insertZapis mimo transakcie. Pri 500 medzi krokmi ostávala prijatá faktúra v DB bez účtovných zápisov 5xx/343/321 → split-brain stav (záväzok zaúčtovaný v prijate, žiadny účtovný zápis). Fix: BEGIN/COMMIT wrap celého handlera + insertZapis(txClient, ...) deleguje TX. Pri chybe ROLLBACK + 500 → user vidí "Chyba" a neexistuje žiadna sirota.
§ 8 zák. 431/2002 (zákon o účtovníctve) — bilančná kontinuita
Saldokont aging report — otvorené pohľadávky per odberateľ × bucket
Nová sekcia "Saldokont" v sidebari pre s.r.o. (sro-only). Endpoint GET /api/saldokont agreguje nezaplatené faktúry per odberateľ s bucket-mi 0-30 / 31-60 / 61-90 / 91-120 / 121-180 / 180+ dní. Faktúry > 150 dní zvýraznené ako kandidáti na opravu výstupnej DPH (§ 25a ZDPH). +16 unit testov (tests/lib/saldokont.test.js).
§ 25a zák. 222/2004 (oprava základu DPH)
IBAN encryption-at-rest — schema width fix + backfill 14 plaintext rows
Critical bug discovered + fixed. Stĺpec companies.iban + zamestnanci.iban mali pôvodný typ VARCHAR(50), ale po pridaní encryptIban() (commit 10277f0, 2026-04-29) AES-256-GCM ciphertext (iv:tag:enc) má ~114 chars → INSERT/UPDATE silently zlyhával s 500 ("value too long"). Žiadny IBAN sa neukladal od 2026-04-29 do 2026-05-07. Fix: schema migration VARCHAR(50) → VARCHAR(255) + idempotentný backfill 14 plaintext IBAN rows na encrypted ciphertext. Audit: neexistuje záznam o exfiltrácii DB v plaintext window; ÚOOÚ čl. 33 nereportable (nie incident podľa GDPR čl. 33 ods. 1, ale non-compliance s čl. 32). Po backfillte 14/14 rows encrypted (overené DB query iban LIKE '%:%:%').
GDPR čl. 32 ods. 1 písm. a) · § 39 ods. 1 písm. a) zák. 18/2018
KV DPH § 78a — C1 dobropisy + storno mix-rate per-sadzba breakdown
Pri faktúre s viac sadzbami DPH (5 % + 19 % + 23 %) sa pri storne alebo dobropise generujú KV DPH XML A1/C1 row per sadzba (§ 78a ZDPH). Predtým sa rozkladalo iba pre A1 (vydané faktúry); C1 dobropisy a storno reverz mali len jeden top-level row → § 78a violation pri krížovej kontrole DPH. Doplnené aj storno_datum schema migration: storno cez DELETE /:id v rovnakom mesiaci ako pôvodná → vylúčené z A1; v inom mesiaci → pôvodná v KV DPH ostáva, dobropis ide do C1 v storno mesiaci (štandardná SK účto prax).
§ 74 ods. 1 písm. j) zák. 222/2004 · § 78a zák. 222/2004
Admin audit anomálie — real-time monitoring drift_high + view_as_proxy_open
Admin dashboard nový tab "Audit anomálie" zobrazuje real-time count halierového driftu > 1 € (suspect FE bug) a počet view-as proxy access (účtovník otvoril klientove dáta — KDP § 27 ods. 2). Endpoint /api/admin-audit/anomalies?days=N agreguje per-day breakdown, /admin-audit/recent vracia posledných 50 záznamov s user_email join. Komplementárne k health beacon dennému emailu (8:30 BA) — admin teraz nemusí čakať na cron.
§ 35 zák. 431/2002 · KDP § 27 ods. 2
Halierový preflight DPH + audit trail (§ 35 ZÚčto 10y retention)
Halierový preflight pri faktúrach s mix DPH: BE recompute autoritatívny (1 cent tolerance integer-cents math), per-rate breakdown drift detection. Pri drift > 1 € sa zapisuje do audit_log action=drift_high entity=faktura (10-ročná retencia podľa § 35 zák. 431/2002). Sentry breadcrumb pri drift > 0.10 €. View-as proxy access (účtovník otvoril klientove dáta) tiež v audit_log pre KDP § 27 ods. 2 dôverné info compliance. Health beacon 8:30 BA daily reportuje 24h count drift_high + view_as_proxy_open anomálií.
§ 35 zák. 431/2002 · KDP § 27 ods. 2
§ 50aa darovanie 2 % rodičom 2026 — single source of truth + blog overený
§ 50aa zák. 595/2003 NOVÉ od 1.1.2026: 2 % zaplatenej dane rodičovi-dôchodcovi (k 31.12. poberateľ starobného/invalidného/výsluhového dôchodku). Spolu s NCRP max 6 % (alebo 7 % pri ≥ 40 h dobrovoľníctva). Min 3 € per rodič. Konfiguračná konštanta darovanie2pct v config/legislativa/2026.js + 2027.js (single source truth pre kalkulačku, blog, AI Tax Planner). Blog post overený voči FS SR FAQ + 9 SK zdrojom. Termíny: 31.3. cez DP, 30.4. cez Vyhlásenie V2Pv25 v1.5 + V2Pv25_P.
§ 50aa zák. 595/2003 · § 50 zák. 595/2003
Personalizovaný daňový kalendár — § 78 ZDPH, § 32/41 ZDP, § 143 ZSP, § 17 ZZP
Spočíta upcoming termíny pre platiteľa aj neplatiteľa DPH (mesačný/štvrťročný), DP FO/PO + 30.6. odklad, SP/ZP odvody SZČO, mzdové odvody zamestnávateľa, asignácia 2 % DPFO, daň z nehnuteľnosti. Pre § 7a ZDPH neplatiteľa s zahraničnou službou pridáva urgent registračnú výzvu + mesačné DPH priznanie. VS templates podľa FS metodického pokynu (1100MMRRRRDIČ DPH / 1700RRRRDIČ DP), KS 1144/3558 podľa typu platby.
§ 78 zák. 222/2004 · § 7a zák. 222/2004 · § 32 zák. 595/2003 · § 143 zák. 461/2003
ePN auto-pull (Sociálna poisťovňa B2B API) — T1–T3 ready, deadline 1.6.2026
Od 1.6.2026 lekár nevydáva papierové PN potvrdenie. Bezúčto integruje SP B2B API pre automatický pull ePN záznamov + výpočet náhrady príjmu podľa § 7-8 z. 462/2003 (1.-3. deň 25 %, 4.-14. deň 55 % DVZ; pri PN vzniknutej do 31.12.2025 po starom do 10. dňa). Bezpečnostné prvky: AES-256-GCM šifrovanie tokenu, IČZ cross-tenant verify (cudzí IČZ → audit log + reject), § 7a per-zamestnanec opt-out (čl. 21 GDPR), retention purge resolved záznamov >4 roky (čl. 5/1e GDPR). Legal basis: čl. 9(2)(b) GDPR + § 78 zák. 18/2018.
§ 7-8 zák. 462/2003 · vyhl. 575/2001 · GDPR čl. 9(2)(b)
Faktúra storno-only UX (§ 71 ZDPH, § 8 ZÚčto, § 25 ZDPH dobropis)
Faktúry sa nedajú fyzicky vymazať — DELETE endpoint vytvorí storno doklad podľa § 25 ZDPH (opravný doklad) so zápismi v opačnom smere. Educational dialog vysvetľuje § 71 ZDPH (vystavená faktúra zostáva platná) + § 8 ZÚčto (účtovný záznam nemožno odstrániť) a navrhuje vystavenie dobropisu pri parciálnej oprave. ABRA Flexi/KROS/MRP/Pohoda majú rovnaký pattern — industry standard.
§ 71 zák. 222/2004 · § 25 zák. 222/2004 · § 8 zák. 431/2002
2 % asignácia DPFO + § 50aa NOVÉ pre rodičov 2026
Modul pre poukázanie 2 % zaplatenej dane podľa § 50 ZDP. Pridaná NOVELA § 50aa platná od 2026: rodičia môžu poukázať max 6 % z dane (matka 6 %, otec 7 %) v prospech vlastných detí na podporu vzdelávania. Verejná kalkulačka /2-percenta-2026 + onboarding wizard pre OZ/nadácie + tlačivo Vyhlásenie o poukázaní (XML pre FS).
§ 50 zák. 595/2003 · § 50aa zák. 595/2003 (od 1.1.2026)
FS XSD strict v25 — DPH + KV DPH + DMV + Prehľad 2026 (5/5 forms)
Všetkých 5 daňových formulárov generuje strict XML podľa FS SR XSD verzia 2025 (eDane DRKlient v25). Lib-y lib/dph-v25-xml.js, lib/kvdph-v25-xml.js, lib/dmv-v25-xml.js, lib/prehlad-2026-v25-xml.js. Pre-flight XSD validátor pred submitom — chyby vidieť pred FS odmietnutím.
FS SR metodické pokyny 2026
eKasa VRP2 import + Peppol XML (UBL 2.1) compliance
Import VRP2 (online registračnej pokladnice) zo SK podnikateľov, automatické rozdelenie 602/343 pri platiteľovi DPH, 602 pri neplatiteľovi. Peppol UBL 2.1 XML pre B2G fakturáciu (zákon 384/2025 Z. z. — eKasa). Defensive XML escape, multi-rate TaxSubtotal, EndpointID 0208 (SK IČO).
zák. 384/2025 · UBL 2.1 specification
Period lock § 8 ZÚčto — atomické zamknutie obdobia
Po podaní DPH výkazu sa odporúča zamknúť dané obdobie. Zamknutie blokuje pridávanie, úpravu a mazanie faktúr, prijatých dokladov, bankových pohybov a účtovných zápisov v uzamknutom období. Odomknúť môže iba účtovník (alebo účtovník v mene klienta). 27/27 endpointov rešpektuje period_lock.
§ 8 zák. 431/2002
IBAN at-rest šifrovanie AES-256-GCM + JWT token revocation
Všetky uložené IBAN-y šifrované per-row IV cez AES-256-GCM (kľúč BANK_ENCRYPTION_KEY, samostatný od šifrovania ePN tokenu). JWT obsahuje token_version (tv) — pri reset hesla, 2FA enable/disable, account delete, /logout-all sa version inkrementuje, čo zneplatní VŠETKY existujúce session-y na všetkých zariadeniach.
GDPR čl. 32 — security of processing · § 39 zák. 18/2018
GDPR § 17 hard-purge cron — pseudonymizácia po 30 dňoch
Daily cron 4:30 vykonáva pseudonymizáciu user dát po 30 dňoch od žiadosti o vymazanie (§ 17 GDPR). Účtovné dáta zostávajú zachované podľa § 35 ZÚčto retention (10 rokov), ale osobné identifikátory (meno, email, RC) sa nahradia hash-om.
GDPR čl. 17 — right to erasure · § 35 zák. 431/2002
Mzdy edge cases — 22 nových testov pokrývajúcich SK zákonník práce 2026
Testovacie pokrytie pre príplatky § 121-124 (nočná, sviatok, sobota/nedeľa), odstupné § 76, benefity § 5/3, dohody DPP/DPC, DoBP § 227a ZSP, 4-pásmová daň 19/25/30/35 %, PN náhrada § 7-8 z. 462/2003 (zamestnávateľ 1.-14. deň od 1.1.2026 novelou 261/2025; PN vzniknutá do 31.12.2025 → 1.-10. deň). 1412/1412 testov.
zák. 311/2001 · § 121-124 · § 76