MyÚčto MyÚčto.cz Manuál
Stáhnout PDF Zpět na hlavní stránku

9. Klientský portál

Klientský portál je samostatná domovská obrazovka pro roli client — účet, který účetní firma zřídí svému klientovi (podnikateli, majiteli firmy), aby mohl bez zprostředkování účetní pracovat s vlastními doklady a zároveň měl po ruce rychlý přehled hospodaření. Portál není oddělená aplikace ani zjednodušené UI — klient se přihlašuje do stejného MyÚčto.cz, jen s výrazně užší nabídkou menu a s doklady, které se po zaúčtování uzamknou proti dalším úpravám.

Poznámka

Role client je jiná kategorie než readonly (viz § 96.2.2 Role). Readonly je interní pracovník firmy, který smí jen číst a exportovat cokoliv. Client je naopak externí osoba (majitel firmy, na kterou účetní vede agendu), která smí vystavovat a upravovat vlastní doklady, ale nevidí nic z účetnictví, banky, reportů ani nastavení systému a nemůže sáhnout na doklad, který už účetní zaúčtovala. Vybrané provozní nastavení vlastní firmy dostane pouze tehdy, když má jeho klientská role oprávnění Nastavení firmy na úrovni Zápis.

9.1 Kdo roli client dostane a jak

Uživatele s klientskou rolí zakládá výhradně superadmin v Systém → Uživatelé (stejný formulář jako u ostatních rolí, viz § 96.2 Uživatelé):

  1. V poli Role se zvolí aktivní role typu client.
  2. V sekci přiřazení firem se našeptávačem přidají firmy, ke kterým má klient mít přístup — typicky jedna, u víceoborových klientů i více. U každé firmy lze ponechat výchozí klientskou roli nebo vybrat jinou aktivní roli typu client; interní roli typu staff backend odmítne.
  3. Bez uloženého přiřazení k žádné firmě se klient po přihlášení dostane na portál, ale uvidí jen prázdný stav s výzvou kontaktovat účetní (viz § 9.3.6) — přístup je fail-closed: žádná firma v systému mu není vidět, dokud ji superadmin explicitně nepřiřadí.
  4. U klienta s víc firmami funguje běžný přepínač dodavatele ve spodní liště — portál i všechny stránky se přepnou na aktuálně zvolenou firmu.
Tip

Heslo, 2FA a Můj profil fungují pro klienta stejně jako pro ostatní role (viz § 96.3) — klient si po prvním přihlášení může nastavit vlastní 2FA, pokud to instalace vyžaduje.

9.2 Menu klienta — jen zlomek aplikace

Po přihlášení nabídne menu běžnému klientovi pět sekcí: Přehled (portál, domovská stránka), Prodej (vydané faktury + pravidelná fakturace), Nákup (přijaté faktury), Kontakty (klienti/dodavatelé) a Dokumenty s položkami Předat doklady účetní a Chybějící doklady (viz § 9.8). Na desktopu jsou sekce v horní liště s popup položkami, na mobilu v nabídce . Nápovědu otevírá kontextová ikona ? v horní liště. Cokoliv jiného v aplikaci existuje — účetnictví, banka, sklad, e-shop, reporty, Grafy, kniha jízd, DMS dokumenty, systémové nastavení, administrace uživatelů — klient v menu vůbec nevidí a při pokusu dostat se tam přímo přes adresu URL ho systém přesměruje zpátky na portál. Toto omezení je vynucené na dvou místech zároveň (frontend i API), takže ho nejde obejít ani ruční úpravou adresy v prohlížeči.

Uvnitř povolených sekcí ale klient není v režimu jen pro čtení — smí zakládat i upravovat vlastní doklady stejně jako účetní, pokud doklad ještě nebyl zaúčtovaný (viz § 9.5):

Naopak klientovi zůstávají nedostupné i uvnitř těchto sekcí citlivější podsekce — například platební příkazy (bankovní ABO/KPC soubory a ověřování účtů), sken e-mailové schránky účetní, zakázky ani DMS dokumenty k přijatým fakturám. Sklad a e-shop, daňová evidence, účetní deník a bankovní výpisy jsou pro klienta zavřené úplně.

9.2.1 Delegované nastavení firmy

Samostatná role Client Admin není potřeba. Superadmin může vytvořit nebo duplikovat běžnou roli typu client a u položky Nastavení firmy zvolit Zápis. Klient pak v nové sekci Firma → Nastavení firmy spravuje pouze výslovně povolené provozní oblasti aktuální firmy:

Úroveň Pouze čtení tuto sekci nezobrazí. Zápis zároveň neotevře původní administrátorskou stránku nastavení ani obecný endpoint dodavatele. Klient proto nemůže měnit obchodní jméno, IČ, DIČ, bankovní účty, číslování dokladů, DPH, účetní režim, integrace, přístupové údaje AI, uživatele ani role. Systémový sendmail a profily s kryptografickým S/MIME podpisem zůstávají ve správě administrátora.

SMTP a IMAP hesla se po uložení už nikdy nevracejí do prohlížeče; rozhraní ukáže jen informaci, zda je heslo nastavené. Změny i testovací odeslání se zapisují do historie akcí bez tajných hodnot a požadavky podléhají stejnému rate limitu jako ostatní mutace. Všechny operace používají firmu z ověřeného kontextu — ID firmy zaslané v těle požadavku rozsah nerozšíří.

Roli lze přiřadit jako přepis jen u jedné firmy. Tentýž uživatel tak může mít ve firmě A klientskou roli s Nastavení firmy = Zápis, zatímco ve firmě B zůstane u běžné klientské role. Po přepnutí firmy se menu i oprávnění ihned přepočítají; stejně se chová klientská vlastní doména.

9.3 Co portál (Přehled) zobrazuje

Domovská stránka klienta (/portal) je agregovaný přehled hospodaření aktuálně zvolené firmy — čistě souhrnná čísla, žádná jména konkrétních zákazníků/dodavatelů ani čísla dokladů se v přehledu neobjevují (to je záměrné bezpečnostní omezení, platí i pro náhled účetní/admina). V záhlaví je název firmy, rozsah období (od 1. 1. do dneška) a poznámka „Orientační přehled hospodaření — není účetní závěrka."

9.3.1 KPI dlaždice

Čtveřice/pětice karet ukazuje fakturováno / náklady / rozdíl za pět období — tento měsíc, minulý měsíc, letos (YTD), loni do dneška a posledních 12 měsíců. Pokud firma pracuje ve víc měnách, každá karta zobrazí řádek za každou měnu zvlášť (částky se nesčítají napříč měnami).

9.3.2 Měsíční graf

Sloupcový graf fakturace vs. nákladů za posledních 12 měsíců. Pokud firma používá víc měn, nad grafem je přepínač měny (výchozí CZK, jinak první dostupná).

9.3.3 Cashflow — pohledávky, závazky, výhled

Tři karty vedle sebe:

9.3.4 DPH a daňové termíny

U plátců DPH karta DPH ukáže aktuální období, daň na výstupu, daň na vstupu, výslednou daňovou povinnost (nebo nadměrný odpočet) a termín podání. U neplátců se místo toho zobrazí informace „Firma není plátce DPH." Vedle karta Daňové termíny vypisuje blížící se termíny v okně 35 dní dopředu (barevně podle závažnosti) — souvisí s § 36 Výkazy DPH.

9.3.5 Pruh „Účetní čeká na doklady"

Pokud má klient otevřené (nevyřízené) vyžádání dokladů, zobrazí se hned pod záhlavím výrazný pruh s počtem a odkazem na stránku Chybějící doklady — po termínu je pruh červený, jinak žlutý. Pruh zmizí, jakmile klient všechny otevřené požadavky vyřídí (nahraje doklad nebo je účetní uzavře jinak).

9.3.6 Prázdný stav bez firmy

Klient bez přiřazené firmy (viz § 9.1) uvidí místo přehledu jednoduchou zprávu, že jeho účet zatím není propojen se žádnou firmou, a výzvu kontaktovat účetní. Nová firma bez jakýchkoliv dokladů zobrazí analogický „zatím tu nejsou žádná data" stav.

9.4 Rychlé akce

Pod záhlavím je výrazná akce Předat doklad účetní. Otevře bezpečnou podatelnu, kde stačí vybrat soubor; klient nemusí opisovat dodavatele, částky ani DPH. Běžné rychlé odkazy Vystavit fakturu, Nahrát přijatou fakturu a Přidat kontakt zůstávají k dispozici podle oprávnění a vedou na plné editory Faktur, Přijatých faktur a Klientů. Když klient v editoru přijaté faktury nahraje běžné PDF nebo fotografii, ze kterých se údaje automaticky nenačtou, může je stále vyplnit ručně. Druhou možností je jediné tlačítko Uložit a předat účetní: formulář se nezaloží jako neúplná faktura a původní soubor se přesune do stejné bezpečné podatelny jako při rychlé akci.

9.5 Zámek zaúčtovaných dokladů

Jádrem bezpečnosti role client je jednotný zámek zaúčtovaných dokladů — jakmile účetní doklad zaúčtuje (nebo pro něj vznikne aktivní zápis v účetním deníku, nebo spadá do uzavřeného účetního období), stává se pro klienta needitovatelným. Doklad zamyká kterákoli z těchto podmínek:

Zamčený doklad zobrazuje badge „Zaúčtováno" s vysvětlením „Doklad je zaúčtovaný — změny a storno vyřídí vaše účetní." (u uzavřeného období obdobný text). Akce jako úprava, storno, smazání, přidání/zrušení platby nebo napojení zálohy z menu detailu prostě zmizí — nejsou jen zašedlé, ale skryté, protože konečné rozhodnutí stejně vynucuje server. Naopak zůstávají dostupné akce, které doklad nemění (zobrazení, PDF, odeslání e-mailem, přidání přílohy) nebo vytvářejí nový doklad (klonování, daňový doklad k platbě).

U přijatých faktur má klient navíc speciální pravidlo: přechod do stavu Zaplaceno nebo zpět je povolený i bez zaúčtování (tenhle přechod sám o sobě doklad nezamyká — přeznačení „zaplaceno" není účetní úkon), ale přechod do stavu Zaúčtováno klient nikdy neudělá — to je vždy vyhrazené účetní/adminovi.

Upozornění

Zámek je čistě serverová záležitost — frontend badge je jen informativní. I kdyby se klient pokusil odeslat požadavek na úpravu zamčeného dokladu mimo běžné UI, API ho odmítne. Naopak jakmile účetní zaúčtování stornuje (zápis zruší), doklad se klientovi znovu odemkne.

Pro účetní a admina funguje zámek jinak — otevřené období smí upravovat vždy, u uzavřeného období dostanou informativní chybu místo tichého zamítnutí a admin si může úpravu vynutit (s automatickým záznamem do historie akcí). Detaily vynucené editace řeší § 55 Bezpečnost — RBAC.

9.6 Náhled portálu pro účetní a admina

Portál není určený jen klientovi — v menu Grafy → Přehled firmy ho najde i admin a účetní, u aktuálně zvolené firmy vidí přesně to samé, co by viděl klient. Slouží to jako rychlá kontrola „co vidí klient" i jako samostatný přehled hospodaření bez nutnosti procházet jednotlivé reporty. Náhled je čistě informativní a nijak neomezuje, co účetní/admin může jinde v aplikaci dělat — nemá vlastní zámek ani jiná omezení navíc.

9.7 Omezení a tipy

Tip

Než klientovi předáte přístup, zkontrolujte v Grafy → Přehled firmy na jeho firmě, jestli přehled dává smysl (zaúčtované doklady, aktuální DPH stav) — ušetří to zbytečné dotazy „proč mi tohle nejde upravit", protože klient uvidí přesně to, co vy v náhledu.

9.8 Vyžádané doklady od klienta

Nejčastější zdržení měsíční uzávěrky je čekání na doklady od klienta. Vyžádané doklady drží požadavky i jejich stav přímo v aplikaci: účetní založí požadavek, klient ho vidí v portálu a doklad rovnou nahraje.

Stejná podatelna podporuje oba směry práce: klient může doklad předat spontánně (push) nebo odpovědět na konkrétní požadavek účetní (pull). V obou případech se nejprve uloží neměnný originál do Dokumentů a vznikne samostatné podání mimo účetnictví. Dokud ho účetní nezpracuje, nejde o přijatou fakturu, nevstupuje do nákladů, cashflow, DPH ani kontrolního hlášení.

9.8.1 Spontánní předání klientem

Na stránce Dokumenty → Předat doklady účetní (/portal/purchase-invoice-submissions) lze najednou vybrat až 20 souborů ve formátu PDF, JPG, PNG, ISDOC, XML nebo ISDOCX. Ke skupině lze přidat poznámku pro účetní a nepovinný tip na typ dokladu. Každý soubor vytvoří samostatné podání.

Přehled rozlišuje stavy Předáno, Zpracovává se, Čeká na doplnění, Zpracováno a Odmítnuto. Originál lze vždy zobrazit nebo stáhnout. Pokud účetní vyžádá čitelnější či správný soubor, klient u daného řádku použije Nahrát náhradu; původní podání zůstane v auditní stopě. Opakovaný upload bitově shodného souboru se podle SHA-256 nerozmnoží a shodný soubor nelze vydávat za opravenou náhradu.

9.8.2 Účetní strana — Příchozí doklady

Stránka Nákup → Příchozí doklady (/purchase-invoices/incoming) je pracovní fronta účetní. Nabízí filtr stavů, poznámku klienta, náhled PDF/obrázku a stažení každého originálu. Účetní může:

Po úspěšném automatickém nebo ručním zpracování se originál připojí k výsledné přijaté faktuře a podání přejde na Zpracováno. Fakturu dál spravuje účetní; klient ji může zobrazit, ale nemůže měnit její hlavičku, položky, přílohy ani stav.

9.8.3 Účetní strana — Dokumenty → Chybějící doklady

Stránka Dokumenty → Chybějící doklady (/document-requests) nabízí:

9.8.4 Klientská strana — odpověď na požadavek

Klient vidí otevřené požadavky na stránce Chybějící doklady v portálu (/portal/document-requests) — u každého popis, kontextovou částku/datum a termín (po termínu červeně). Tlačítko Nahrát doklad přijímá stejné formáty jako spontánní podatelna. Soubor se bezpečně uloží do příchozí fronty a požadavek se přepne na Nahráno — čeká na kontrolu; faktura v této chvíli ještě nevzniká. Vyřízené požadavky zůstávají na stránce v sekci Vyřízené jako historie.

Poznámka

Samotné předání nic nezaúčtuje. Účetní nejprve podání zpracuje v příchozí frontě a požadavek potom podle skutečného vyřízení uzavře. Automatická extrakce je jen jedna z možností kontroly (viz § 25 AI extrakce přijatých faktur).

9.8.5 Notifikace na obou stranách

Dashboard účetní i domovská stránka portálu klienta zobrazí počet otevřených požadavků jako barevnou dlaždici/pruh (červeně, pokud je aspoň jeden po termínu) — proklik vede rovnou na příslušnou stránku. Pokud klient na požadavek nereaguje, denní úloha (cron-document-request-reminders.php) po výchozích 3 dnech pošle e-mailovou urgenci (šablona E-mail šablony → Chybí doklad, upravitelná stejně jako ostatní šablony) a opakuje ji nejdřív po 7 dnech (cooldown) — obojí lze při spuštění úlohy přenastavit parametry --days a --cooldown.

9.8.6 Oprávnění a izolace firem

Klient vidí vždy jen požadavky vlastní aktuálně zvolené firmy — stejný fail-closed princip jako zbytek portálu (viz § 9.1). Cizí požadavek (jiné firmy) vrátí 404, ne 403, aby se neprozrazovala ani jeho existence.

Oprávnění Předávat doklady účetní patří jen klientským rolím. Oprávnění Příchozí doklady je naopak interní a odděluje pouhé čtení fronty od jejího zpracování. Přístup k příchozí frontě sám o sobě nenahrazuje oprávnění vytvořit přijatou fakturu ani použít AI extrakci.

9.9 Vlastní doména portálu

Každá firma může vedle výchozí adresy instalace (app.url) používat vlastní doménu, například portal.klient.cz. Nastavuje ji oprávněný správce na kartě Nastavení → Firma → Vlastní domény. Pokud firma žádnou aktivní doménu nemá, portál i veřejné odkazy dál fungují na výchozí adrese beze změny.

Funkci musí nejdřív zapnout správce serveru v cfg.php ('domains' => ['enabled' => true]) — dokud je vypnutá, karta s doménami se vůbec nenabízí a instalace se chová jako bez ní. Provozní důsledky zapnutí popisuje kapitola *Nastavení → Vlastní domény klientského rozhraní*.

Doméně se přiřazuje účel:

Firma může mít více aktivních aliasů, ale pro každý účel nejvýše jednu primární doménu. Nově odesílané odkazy používají primární doménu; starší canonical odkazy na app.url zůstávají platné. Deaktivace poslední použitelné domény vrátí nové odkazy automaticky na app.url.

Aktivní vlastní doména zároveň jednoznačně určuje firmu. Přepínač firem se na ní nezobrazuje a firmu nelze podvrhnout hlavičkou, parametrem URL ani API tokenem. Uživatel musí mít k určené firmě stále platné přiřazení. Jedinou výjimkou je globální superadmin, který může firmu určenou aktivní vlastní doménou otevřít i bez tohoto přiřazení. Výjimka obchází pouze kontrolu přiřazení: stav a účel domény, vazba hostname na firmu, canonical přihlášení, PKCE a bezpečná návratová cesta se ověřují stejně jako u ostatních uživatelů. Veřejný token jiné firmy na této doméně vrátí pouze „nenalezeno"; stejný token na canonical adrese zůstává funkční. Vlastní doména zpřístupní jen klientské agendy podle skutečných oprávnění uživatele. Zakázky, platební příkazy, příchozí fronta účetní, API tokeny, systémová nastavení a ostatní interní agendy na ní dostupné nejsou; jejich přímý odkaz se otevře na canonical adrese app.url. Na canonical adrese se v novém panelu otevírá také uživatelský manuál, který není součástí autentizované klientské plochy.

9.9.1 Přihlášení a passkeys

Přihlášení se bezpečně dokončuje na canonical adrese z app.url, kde jsou zaregistrované passkeys a WebAuthn RP ID. Po heslu, TOTP nebo passkey se prohlížeč vrátí na přesnou původně otevřenou klientskou stránku vlastní domény jednorázovým krátkodobým kódem svázaným s PKCE. Session token se v URL nepřenáší; cílová doména dostane novou host-only cookie, kterou jiná doména nemůže číst.

Na stejné canonical adrese probíhá také správa přístupových klíčů a vynucené první nastavení MFA. WebAuthn klíče jsou kryptograficky svázané s RP ID a originem z app.url, takže vlastní doména tyto obrazovky neotevře s nefunkčním bezpečnostním dialogem. Místo toho zahájí stejný jednorázový přechod, na canonical adrese nabídne správu klíčů nebo nastavení MFA a po dokončení se vrátí na předchozí bezpečnou klientskou stránku vlastní domény. Cílová firma i hostname jsou po celou dobu svázané se serverovým požadavkem; nelze je změnit parametrem návratové URL.

Při zamčení session server na vlastní doméně odmítne přímé WebAuthn options i verify. Zamykací obrazovka proto zahájí nové ověření na canonical originu a po jednorázovém PKCE návratu vytvoří novou host-only session; návrat zachová aktuální klientskou stránku. Vlastní doména je originem celého klientského rozhraní, nikoli druhým originem interních agend účetní a správce. Povolení se neurčuje podle prefixu /portal, ale podle stejného katalogu klientských oprávnění, který řídí menu, router i API. Staré adresy /exchange, /admin/export a /admin/import se nejprve převedou na svůj skutečný klientský cíl; samotný prefix /admin jim tedy přístup ani nedává, ani nebere.

Neznámý, neověřený, deaktivovaný nebo účelově nekompatibilní hostname nikdy nezobrazí data firmy. Postup ověření a aktivace popisuje § 96.16 Vlastní domény.