🧾 Vykazano.czuživatelská příručka
← Zpět do aplikace

Uživatelská příručka

Vykazano.cz je evidence vydaných faktur, zákazníků a výdajů pro OSVČ — plátce i neplátce DPH. Běží doma v Dockeru, data jsou v jednom souboru na tvém stroji. Tahle stránka popisuje, jak se s ní pracuje den po dni.

1. Co appka umí

  • Opakované faktury — šablona a rozvrh, denní generování konceptů
  • Faktury — vystavení, PDF s QR platbou, odeslání e-mailem, upomínky, evidence úhrad i částečných
  • Zákazníky — adresář s načtením firmy z registru ARES podle IČO
  • Výdaje — částka, kategorie, dodavatel, doklad
  • Import z banky — spárování přijatých plateb s fakturami a odchozích plateb s výdaji
  • Daňové podklady — přiznání, OSSZ a zdravotní pojišťovna, se srovnáním paušálu a skutečných výdajů
  • Přehledy — roční a měsíční čísla, čistý výdělek, nejlepší zákazníci, export do CSV

Záložky v horní liště odpovídají kapitolám dál: Přehled, Faktury, Zákazníci, Výdaje, Daně, Nastavení. Importy dat (bankovní výpis, export z Fakturoidu) najdeš v Nastavení → Import dat.

2. Než vystavíš první fakturu

  1. Přihlas se heslem. Přihlášení drží session cookie; když appka vyhodí přihlašovací obrazovku uprostřed práce, session vypršela — přihlas se a pokračuj.
  2. Nastavení → Dodavatel (ty) — jméno, IČO, adresa, e-mail. Tyhle údaje jdou na fakturu, bez nich vypadá hlavička prázdně.
  3. Nastavení → Bankovní spojení — číslo účtu ve tvaru 2702016516/2010. IBAN a QR platba se z něj dopočítají samy, ručně je vyplňovat nemusíš.
  4. Nastavení → Faktury — výchozí splatnost ve dnech a formát čísla faktury.
  5. Nastavení → Vzhled faktury — šablona, akcentní barva, logo a podpis. Náhled PDF funguje i dřív, než vystavíš první fakturu.
  6. Zákazníci → + Nový zákazník — zadej IČO a klikni Načíst z ARES.
  7. Faktury → + Nová faktura.
Změň si výchozí heslo. Heslo se nemění v appce, ale na stroji, kde běží — vygeneruj hash, přepiš ho v .env a restartuj API. Postup je v README.md v repozitáři (sekce Změna hesla).

3. Přehled

Úvodní obrazovka, vždy za jeden rok — rok se přepíná vpravo nahoře.

DlaždiceCo ukazuje
Čistý výdělekinkasováno − všechny výdaje. Kolik ti z toho roku reálně zůstalo.
Inkasovánopeníze, které skutečně dorazily v tom roce (úhrady faktur + příjmy bez faktury).
Vyfakturovánosoučet vystavených faktur, počet a průměrná faktura. Koncepty a storna se nepočítají.
Výdajesoučet všech výdajů za rok, soukromé převody včetně. Pod číslem je vidět, kolik z toho byly soukromé převody.
Čeká na zaplaceníkolik ti dluží. Zčervená, když je část po splatnosti.

Pod dlaždicemi je měsíční graf (modrá = inkasováno, oranžová = výdaje), nejlepší zákazníci a tabulka Čeká na zaplacení. Kliknutím na řádek v tabulce se otevře detail faktury — odsud vede nejkratší cesta k upomínce.

Přepínač „Zahrnout soukromé výdaje"

Vedle výběru roku je zaškrtávátko, kterým si vybereš, co má Přehled odpovídat:

ZaškrtnutoCo Přehled ukazuje
ano (výchozí)Tok peněz. Výdaj je výdaj — počítají se i převody na vlastní účet a soukromé platby. Odpovídá na „kolik mi zůstalo na účtu".
neVýdělek podnikání. Převody na vlastní účet se nepočítají, protože to nejsou náklady, ale výběr zisku. Odpovídá na „kolik vydělalo samo podnikání" — a souhlasí se základem daně v záložce Daně.

Volba se pamatuje a graf se přepne spolu s dlaždicemi — i v pohledu Celek (vše).

Ikonka „i" u dlaždice

Každá dlaždice má v pravém horním rohu malé i. Kliknutím se pod číslem rozbalí vysvětlivka: co se do toho čísla počítá, co ne a proč. U Čistého výdělku se text mění podle režimu přepínače — se zapnutými soukromými výdaji vysvětlí, proč může vyjít záporně, bez nich odkáže na to, že číslo odpovídá základu daně. Otevřená je vždy jen jedna, ať se z přehledu nestane článek.

Záporný čistý výdělek nemusí být chyba. Se zapnutými soukromými výdaji ti výdělek klesne o všechno, co si převedeš k sobě — takže když si v roce převedeš víc, než jsi inkasoval, vyjde mínus, i kdyby podnikání šlo dobře. Je to správná odpověď na jinou otázku. Když chceš vidět výkon podnikání, přepínač odškrtni.
Vyfakturováno ≠ inkasováno Rozdíl je záměr, ne chyba zobrazení. Vysvětlení je v kapitole Jak se počítají peníze.

4. Zákazníci

Nový zákazník

+ Nový zákazník → vyplň IČO a klikni Načíst z ARES: název i adresa se doplní z registru, nemusíš nic přepisovat. Firmu bez IČO (fyzická osoba, zahraniční odběratel) vyplň ručně.

Víc příjemců

Kromě hlavního e-mailu má zákazník pole Další příjemci faktur — adresy oddělené čárkou (účtárna, asistentka). Faktura i upomínka pak jdou na hlavní adresu i na tyhle. V dialogu odeslání můžeš seznam pro jedno odeslání přepsat; adresy odděl čárkou nebo středníkem. Duplicity a nesmysly se vyhodí samy.

Pole Splatnost (dnů) u zákazníka přebíjí výchozí splatnost z Nastavení — hodí se pro klienta, který má domluvených 30 dní, když všichni ostatní mají 14. E-mail se použije jako výchozí adresát při odesílání faktury.

Hledání a archiv

Pole nad tabulkou hledá v názvu, IČO i e-mailu. Zákazníka, se kterým už nepracuješ, můžeš archivovat — zmizí z nabídek při vystavování, ale jeho staré faktury zůstanou nedotčené. Zaškrtávátko Archivovaní je vypíše a jde je zase obnovit.

Zákazníka s fakturami nejde smazat. Je to úmyslné: smazáním by se rozpadly staré faktury. Použij archivaci.

5. Faktury

Vystavení

+ Nová faktura → vyber odběratele, zkontroluj datum vystavení a splatnost (předplní se podle nastavení, resp. podle zákazníka) a přidej položky: popis, množství, jednotka, cena za jednotku. Přidat položku přidá další řádek, celková částka se počítá sama. Volitelně vyplň úvodní text a text v patičce (výchozí se berou z Nastavení).

Číslo faktury i variabilní symbol se přidělí samy — viz Čísla faktur a VS.

Stavy faktury

StavVýznam
Konceptrozpracovaná. Nepočítá se do vyfakturováno, jde ji smazat.
Vystavenáplatí, počítá se do přehledů. Smazat už nejde — jen stornovat.
Odeslanáodešla e-mailem (nebo jsi ji tak označil).
Po splatnostinení to samostatný stav, ale příznak: neuhrazená a po datu splatnosti.
Uhrazenáúhrady pokryly celou částku. Nastaví se sama, jak zapíšeš dost úhrad.
Stornovanázůstane v evidenci a v číselné řadě, ale nepočítá se do příjmů.

Co se dá v detailu udělat

  • Náhled PDF — otevře fakturu v novém panelu; Stáhnout ji uloží jako soubor
  • ✉ Odeslat e-mailem — předvyplní adresáta, předmět a text ze šablony a přiloží PDF; zástupné texty jako {cislo} se dosadí. Adresa se bere z aktuální karty zákazníka, ne z faktury — když e-mail doplníš až po vystavení, pošle se správně. Na faktuře samotné zůstane adresa taková, jaká byla při vystavení; doklad se zpětně nemění.
  • ✓ Označit jako zaplacené — zapíše úhradu na celý zbytek s dnešním datem
  • Částečná úhrada… — zapíše jen část; faktura zůstane nedoplacená a v „čeká na zaplacení" se objeví jen zbytek
  • Upravit — změna položek i údajů
  • Stornovat / Smazat (jen koncept)
  • Odeslané e-maily — log ve spodní části detailu, u každého datum, adresát a výsledek

Špatně zapsanou úhradu smažeš křížkem na jejím řádku v seznamu úhrad.

Vystavit z existující faktury

V detailu faktury je tlačítko ⧉ Vystavit z této. Otevře novou fakturu s opsaným odběratelem, položkami, cenami, texty i způsobem úhrady — hodí se, když fakturuješ tomu samému klientovi podobnou práci znovu.

Co se nekopíruje, a je to záměr:

  • Číslo faktury a variabilní symbol — přidělí se až při uložení, aby nevznikly dvě faktury se stejným číslem.
  • Datum vystavení a splatnosti — nastaví se na dnešek a podle splatnosti u zákazníka. Opsané datum by fakturu poslalo do jiného měsíce, než ve kterém vznikla.
  • Úhrady a stav — nová faktura začíná jako koncept, nezaplacená.

Než ji vystavíš, projdi ceny — u opisované faktury je to nejčastější místo, kde zůstane loňská částka. Když byl odběratel mezitím archivovaný, zůstane vybraný a je označený, aby se výběr mlčky nepřepnul na jiného.

Chybějící čísla v řadě

Nad tabulkou faktur se objeví žluté upozornění, když v číselné řadě chybí číslo. Číslo se přiděluje už při vytvoření konceptu a po smazání se nerecykluje (jinak by mohly vzniknout dvě faktury se stejným číslem), takže díra nejčastěji znamená smazaný koncept — a to je v pořádku.

Stojí ale za to zkontrolovat, že to není faktura, která se do evidence nedostala. Platba za ni pak nemá k čemu sednout a při ručním párování skončí u špatné faktury — přesně tak se u tebe našla chybějící faktura 2019/00018 pro TSP DATA.

Když je díra vysvětlená a nedá se s ní nic dělat, klikni v upozornění na Beru na vědomí, neupozorňovat — schová se. Hlídání se tím nevypíná: jakmile v řadě přibude nová díra, ozve se znovu. Skryté díry jsou vypsané v Nastavení → Systém a jde je jedním tlačítkem vrátit zpátky do hlášení.

Filtry a export

Nad tabulkou hledej podle čísla nebo odběratele, filtruj podle stavu (Koncepty, Neuhrazené, Po splatnosti, Uhrazené, Stornované) a roku. Export CSV vyexportuje vyfiltrovaný rok — přesně to, co chce účetní.

Datum úhrady je daňově rozhodné. Když úhradu zapisuješ ručně zpětně, dej pozor na rok. Platba z 2. ledna patří do dalšího roku, i když faktura je z prosince.

6. Uživatelé, pozvánky a vlastní účetnictví

Appka umí víc účtů. Každý se přihlašuje e-mailem a vlastním heslem a má jednu z třech rolí. Přidávají se v Nastavení → Systém → Uživatelé a smí to jen vlastník.

RoleCo smí
Vlastníkvšechno — faktury, peníze, nastavení i správa uživatelů
Účetnífaktury, zákazníci, opakované faktury, výdaje, přehledy a daně. Z Nastavení vidí jen sekci Import dat, nic tam nepřenastaví.
Fakturantfaktury, zákazníci a opakované faktury. Nevidí peníze — žádný Přehled, Daně, Výdaje ani importy.

Podle role se schovají i záložky v horní liště, takže se člověk nedokliká tam, kam nemá. To je ale jen pohodlí — o oprávnění rozhoduje server. Ruční zavolání API roli neobejde, vrátí 403 s vysvětlením, která role na to nemá právo.

Přihlášení správcovským heslem

Heslo z konfigurace (.env) funguje dál: na přihlašovací obrazovce nech e-mail prázdný a zadej jen jeho. Chová se jako vlastník. Je to záměrná záloha, aby se nikdo nemohl zamknout venku, kdyby si smazal nebo rozbil poslední účet.

Na co si dát pozor

  • Poslední vlastník nezmizí. Nejde ho smazat, degradovat ani vypnout — dokud není vlastníkem někdo jiný.
  • Vypnutý uživatel skončí hned. Nejen že se nepřihlásí — zruší se mu i právě běžící přihlášení. Totéž při smazání.
  • E-mail se u existujícího účtu nemění, je to přihlašovací jméno. Když se změní člověk, založ nový účet a starý vypni.
  • Heslo při úpravě nech prázdné, pokud ho nechceš měnit.

Pozvání kolegy (doporučená cesta)

Tlačítko + Pozvat pošle člověku odkaz, za kterým si sám nastaví heslo. Ty žádné heslo nevymýšlíš ani neposíláš — heslo poslané e-mailem zůstane v cizí schránce navždy a skoro nikdo si ho pak nezmění.

  • Odkaz platí 7 dní a použije se jen jednou.
  • Appka ho ukáže jen jednou, hned po vytvoření — v databázi si pamatuje pouze jeho otisk. Když se ztratí, pošli pozvánku znovu (tlačítko ↻); tím starý odkaz přestane platit.
  • Když e-maily ještě neodesíláš, appka odkaz vypíše na obrazovku — zkopíruj ho a pošli jak chceš.
  • Roli určuje pozvánka, ne pozvaný. Ten si mění jen jméno a heslo.
  • Nevyřízené pozvánky jsou v tabulce pod uživateli, dají se zrušit křížkem.

Tlačítko Založit s heslem zůstává pro případ, kdy účet potřebuješ udělat na místě a heslo předat osobně.

Vlastní účetnictví pro další firmu

Na přihlašovací obrazovce je odkaz Založ si vlastní účetnictví. Registrací vzniká samostatné účetnictví: vlastní faktury, zákazníci, číselná řada i nastavení. Se stávajícími firmami nemá nic společného a nikdo z nich do něj nevidí — každá firma má vlastní databázi.

  • Kdo firmu založí, je v ní vlastník; další lidi si do ní pozve sám.
  • Jeden e-mail patří jedné firmě. Účetní, která dělá pro dvě, zatím potřebuje dvě adresy.
  • Nová firma si musí vlastní odesílání e-mailů nastavit sama (Nastavení → E-maily) — dokud to neudělá, faktury se jen zapíšou do logu a nikam neodejdou.
  • Po registraci appka rovnou otevře Nastavení: doplň IČO, sídlo a číslo účtu, bez nich není faktura úplná.

7. Opakované faktury

Záložka Opakované. Generátor je šablona faktury plus rozvrh: komu, co, jak často a dokud. Každý den v 8:00 se podívá, co je na řadě, a vytvoří to.

Vytvoření

+ Nový generátor → název (jen pro tvůj přehled), odběratel, jak často, příští vystavení a položky. Položky se zadávají stejně jako na faktuře.

VolbaCo dělá
Jak častoměsíčně, čtvrtletně, půlročně, ročně nebo po dnech (např. každých 14 dní)
Každou N-tou periodufakturace každý druhý měsíc = perioda měsíčně, N = 2
Den v měsícidrží den fakturace. 31 = poslední den měsíce: v únoru vyjde 28./29., v březnu zase 31. Kdyby se počítalo z posledního vystavení, ukotvilo by se to navždy na 28.
Vytvořit předemkolik dní před datem vystavení má koncept vzniknout, ať je čas ho zkontrolovat
Splatnostprázdné = použije se splatnost od zákazníka, jinak z Nastavení
Konec platnosti / max. početgenerátor se po jejich dosažení sám vypne a napíše proč

Náhledy — než to začne jezdit samo

V editoru generátoru jsou dole dvě tlačítka. Obě pracují s tím, co máš právě rozepsané ve formuláři, takže si můžeš ověřit i změnu, kterou jsi ještě neuložil. Nic se přitom nevytvoří ani neodešle — číslo faktury se jen spočítá, z řady se nespotřebuje.

  • Náhled faktury — ukáže hotovou fakturu tak, jak ji generátor vystaví, s dosazenými proměnnými. Tlačítkem Otevřít jako PDF se podíváš i na tiskovou podobu.
  • Náhled e-mailu — ukáže zprávu přesně tak, jak ji klient dostane: od koho, komu (všem příjemcům), předmět, text s dosazenými proměnnými a název přiložené faktury.
Náhled e-mailu tě upozorní na chyby, které bys jinak objevil až u klienta. Vypíše, když nemá komu poslat, když jsi napsal proměnnou, kterou appka nezná (třeba překlep {datum_splatnost} místo {splatnost}), když je odesílání vypnuté nebo když ještě není nastavené SMTP.

Za který měsíc se fakturuje

Volba Fakturuje se za říká, jaké období faktura pokrývá vůči datu vystavení: měsíc vystavení, předchozí měsíc (faktura z 1. 8. za červenec), dva měsíce zpět, nebo následující měsíc (platba předem).

Podle toho se dosadí zástupné texty, které jdou použít v popisu položky, v textech faktury i v e-mailu:

TextDosadí se (faktura z 1. 8. 2026 za předchozí měsíc)
{mesic}červenec
{mesic_rok}červenec 2026
{obdobi}07/2026
{mesic_cislo}07
{rok_obdobi}2026

Typické použití: popis položky Správa serveru — {mesic_rok} a předmět e-mailu Faktura za {mesic} — {cislo}.

V šabloně zástupný text zůstává. Dosazuje se až při vystavení konkrétní faktury, takže tentýž generátor napíše v srpnu „červenec" a v září „srpen". Období se zároveň uloží k faktuře, aby stejný e-mail poslaný o rok později mluvil pořád o tom správném měsíci. Když napíšeš zástupný text, který neexistuje, faktura se vystaví a text zůstane, jak je — nezablokuje to fakturaci.

Odeslání e-mailem

V editoru generátoru je Odeslat e-mailem hned po vystavení. Denní běh pak fakturu vystaví, vygeneruje PDF, pošle ji a překlopí na odeslanou — bez tebe. Jde to zapnout jen společně s „vystavit rovnou": koncept se neposílá, příjemce by dostal doklad, který ještě neplatí.

Komu se posílá: pole Příjemci u generátoru, a když ho necháš prázdné, e-maily z karty zákazníka. V seznamu opakovaných faktur je pod názvem vidět, kam to půjde — a když nemá kam, napíše to nikdo!.

Text e-mailu si každý generátor může mít vlastní — předmět i zprávu, se stejnými zástupnými texty jako v Nastavení ({cislo}, {castka}, {splatnost}…). Paušál za správu si zaslouží jinou zprávu než jednorázová práce. Když pole necháš prázdná, použije se šablona z Nastavení. V seznamu opakovaných je u takového generátoru poznámka vlastní text.

Posílají se jen faktury z právě proběhlého běhu. Když fakturu vytvoříš ručně tlačítkem ▶ nebo ji vygeneroval včerejší běh, automatika ji zpětně nepošle — jinak by jeden běh mohl rozeslat stoh starých faktur. Takovou fakturu pošli z jejího detailu.
Selhané odeslání nezruší fakturu. Když e-mail neodejde (spadlé SMTP, chybný příjemce), faktura zůstane vystavená a chyba se objeví ve výsledku běhu i v logu odeslaných e-mailů u faktury. Poslat ji pak můžeš ručně.

Výsledkem je koncept

Ve výchozím nastavení vzniká koncept, ne vystavená faktura. Je to záměr: šablona zestárne — klient si domluví jinou cenu, přidá se položka — a pozná se to právě při té kontrole. Vystavenou fakturu už navíc nejde smazat, jen stornovat.

Když si šablonu odladíš, můžeš v editoru zapnout Vystavit rovnou, bez kontroly konceptu a fakturace poběží úplně bez tebe. V seznamu je pak u generátoru oranžově napsané „vystaví se rovnou“, ať to nepřehlédneš.

Změna ceny a položek

  • Natrvalo — uprav šablonu (✎). Platí od příští vygenerované faktury.
  • Jednorázově — uprav vzniklý koncept v Fakturách. Šablona zůstane, jak byla.

Ruční spuštění

Tlačítko u generátoru vystaví nejbližší fakturu hned, i když její datum ještě nenastalo — rozvrh se tím neposune dozadu. Když je něco na řadě, ukáže se nad tabulkou pruh s tlačítkem Vygenerovat teď, abys nemusel čekat na ráno.

Na co je spoleh

  • Dvakrát se faktura nevystaví. Hlídá to databáze (unikátní index nad generátorem a datem), ne kontrola v kódu — takže ani souběh cronu a ručního spuštění to neobejde.
  • Zmeškané periody se dohánějí. Když byl server týden vypnutý, dožene se to při dalším běhu — nejvýš 12 faktur za jeden běh, aby generátor s dávno prošlým datem nevysypal stovky dokladů.
  • Běh se loguje do data/cron.log, jeden řádek na den.

8. Výdaje

+ Nový výdaj → datum, částka, kategorie, dodavatel, popis, číslo dokladu. Hromadně se výdaje dají nabrat z bankovního výpisu (viz Import z banky) — ručně zadávej hlavně to, co jsi platil hotově nebo kartou.

Kategorie

Materiál a zboží · Služby a subdodávky · Software a licence · Vybavení a hardware · Doprava a cestovné · Kancelář a provoz · Marketing a reklama · Vzdělávání · Pojištění a odvody · Převody a soukromé · Ostatní

Kategorie „Převody a soukromé" není daňový výdaj. Převody na vlastní účet ani platby rodině nejsou daňově uznatelný výdaj (§ 24). Když je do výdajů zahrneš, přestane být „Čistý výdělek" základem daně a stane se z něj čistý tok peněz z účtu. Používej ji vědomě.

Filtrovat jde podle kategorie a roku, hledat v popisu i dodavateli. Export CSV je i tady.

9. DPH

Appka umí fakturovat jako neplátce i jako plátce DPH. Dokud v Nastavení → DPH nepřepneš „Jsem" na plátce, nic se nemění a o dani se nikde nemluví.

Zapnutí

Vyplň, čím jsi, odkdy (datum registrace), DIČ a zdaňovací období. Datum je důležité: faktury vystavené před ním zůstanou navždy bez daně, takže se ti registrací nepřepíše historie.

VolbaCo dělá
Neplátce DPHvýchozí stav, faktury bez daně
Identifikovaná osobaodvádíš daň z nákupů ze zahraničí (reklama, cloud), ale faktury vystavuješ dál bez DPH
Plátce DPHplný režim: sazby, rekapitulace, náležitosti daňového dokladu
Výchozí sazbapředvyplní se u nové položky, u každé se dá přepsat
Ceny zadávám včetně DPHpro koncové zákazníky, ať jsou ceny kulaté; firmám se fakturuje bez daně
Zaokrouhlovat na korunyzaokrouhlení je na faktuře zvlášť a do základu daně nevstupuje; při platbě převodem ho nepotřebuješ

Vystavení faktury

U položek přibude sloupec DPH a pod nimi rekapitulace — základ, daň a celkem. Nic dalšího řešit nemusíš. Pod Další možnosti k DPH je datum plnění (prázdné = datum vystavení) a přenesená daňová povinnost.

Přenesená daňová povinnost znamená, že daň neodvádíš ty, ale odběratel. Týká se hlavně stavebních a montážních prací, kovů a šrotu. Fakturuje se bez daně a appka na doklad sama doplní větu „Daň odvede zákazník.“ Ke kódu předmětu plnění se podívej do přílohy zákona nebo se zeptej účetní — patří do kontrolního hlášení.

Co se objeví na faktuře

  • DIČ tvoje i odběratelovo (u odběratele bez DIČ appka upozorní),
  • datum uskutečnění plnění,
  • sazba u každé položky,
  • rekapitulace základu a daně po sazbách,
  • základ daně, DPH a celkem k úhradě.

Tyhle údaje jsou povinné podle § 29 zákona o DPH a vypnout se v rozvržení nedají. Bez nich by si odběratel z faktury neuplatnil odpočet a vrátil by ti ji.

Daň z příjmů

Inkasovaná DPH není tvůj příjem — jen prošla přes účet. Daňové podklady s tím počítají samy a v upozorněních ti řeknou, kolik daně v inkasovaných platbách bylo. Přehled naopak ukazuje tok peněz včetně daně, protože odpovídá na otázku „kolik mi přišlo na účet".

Co appka zatím neumí: přiznání k DPH, kontrolní a souhrnné hlášení, zálohové faktury s daňovým dokladem k platbě, dobropisy a fakturaci do EU. Doklad, který by se nedal správně vykázat, radši nevystaví.

10. Import dat

Všechno nahrávání cizích dat je v Nastavení → Import dat: bankovní výpis a export z Fakturoidu. Obojí funguje stejně — appka soubor nejdřív jen přečte a ukáže, co v něm vidí; zapíše se až to, co odsouhlasíš.

Import z banky

Nahraj výpis z internetového bankovnictví a appka z něj vytáhne dvě věci: příchozí platby (→ úhrady faktur) a odchozí platby (→ výdaje).

Formáty

FormátOdkud
CSVAir Bank, Fio, ČSOB, Raiffeisen… sloupce se hledají podle názvů v hlavičce
ABO / GPCtuzemský standard pevné šířky
camt.053 XMLevropský standard ISO 20022

Formát se pozná podle obsahu, ne podle přípony, a kódování (Windows-1250 i UTF-8) se uhádne. Hlavička nemusí být na prvním řádku — banky nad ni píšou údaje o účtu.

Nic se nezapíše samo

Import je dvoufázový: nejdřív se ukáže, co by se stalo, a zapíše se teprve to, co necháš zaškrtnuté a potvrdíš tlačítkem Zaevidovat vybrané úhrady. Předzaškrtnuté jsou jen jednoznačné řádky.

Jak se páruje

Nejdřív podle variabilního symbolu, a když VS nesedí, záložně podle částky a jména plátce — musí sednout obojí. Když sedí jen částka, nebo kandidátů vyhovuje víc, řádek zůstane na tvoje rozhodnutí. Radši projít pár řádků ručně, než platbu tiše přiřadit ke špatné faktuře.

Stav řádkuCo znamená
✓ Sedí přesněčástka odpovídá tomu, co zbývá uhradit — předzaškrtnuto
↻ Oprava data úhradyfaktura už úhradu té výše má (z importu historie) — jen se opraví datum na skutečné z výpisu, druhá platba se nepřidá
◐ Částečná úhradapřišlo míň, faktura zůstane nedoplacená
▲ Přeplatekpřišlo víc, než zbývalo
= Už zaevidovánotenhle pohyb (nebo celá faktura) je vyřízený
? Nespárovánonesedí ani VS, ani částka s plátcem — nabídne se ruční výběr

Ruční propárování

Nespárovaný řádek dostane rozbalovací výběr faktury: nahoře kandidáti se stejnou částkou, pak faktury vystavené do 30 dní před platbou (pomáhá u částečných úhrad, kde částka přesně nesedí), pak všechny.

Ve stejném výběru je volba ➕ Příjem bez faktury — pro platby, ke kterým žádná faktura není (hotovostní tržba, inkaso). Počítá se do „inkasováno" i do základu daně, popisem je jméno plátce.

Do „příjmu bez faktury" patří jen skutečný příjem. Vratky z finančního úřadu ani přijaté půjčky do základu daně nepatří — ty nech nespárované.

Pojistka proti přeplacení

Když by zaevidování platby fakturu přeplatilo (třeba proto, že jsi ji ručně přiřadil k faktuře, která už je zaplacená), appka se nejdřív zeptá a vypíše, o které faktury jde a kolik na nich zbývá. Bez potvrzení to nezapíše — a odmítne to i server, ne jen obrazovka, takže se to nedá obejít.

Ve výběru faktury při ručním párování je u každé vidět, kolik na ní zbývá, případně UŽ ZAPLACENO. Když platba nikam nepatří, je správná volba ➕ Příjem bez faktury, ne přeplatit něco jiného.

Červené řádky

Když by skutečné datum z banky přesunulo úhradu do jiného roku (a tím změnilo základ daně za rok, který už máš přiznaný), je řádek červený a nezaškrtnutý. Musíš ho odsouhlasit vědomě.

Odchozí platby → výdaje

Pod úhradami je druhá tabulka: všechno, co z účtu odešlo, jako návrhy výdajů. Kategorie se odhadne podle příjemce (odvody, pojištění, hosting, převody na vlastní účet) a u každého řádku ji můžeš přepsat. Vybrat vše zaškrtne celou tabulku. Potvrzuje se zvlášť tlačítkem Zaevidovat vybrané výdaje.

Dvakrát se nic nezapíše. Každá úhrada i výdaj z výpisu si drží otisk řádku. Když nahraješ dva výpisy s překrývajícím se obdobím, platba se nezapočítá dvakrát.

Import z Fakturoidu

Přenos historie z Fakturoidu. Ve Fakturoidu si stáhni export (Faktury → Export) a soubor nahraj — appka pozná sama, jestli jde o faktury, výdaje nebo kontakty, a jestli je to CSV nebo Fakturoid XML.

FormátKdy ho zvolit
Fakturoid XMLkdyž chceš faktury i s položkami — nese úplně všechno
CSVrychlejší cesta; bez rozpadu na položky se faktura naimportuje s jednou položkou na celou částku

Sloupce se hledají podle názvů v hlavičce (anglicky i česky), takže na jejich pořadí nezáleží. Čemu appka nerozuměla, vypíše nad tabulkou jako nerozpoznané sloupce — ať víš, co se nepoužilo.

Co import udělá

  • Odběratele hledá podle IČO, pak podle jména; koho nenajde, toho založí.
  • Číslo dokladu zachová tak, jak ho zákazník dostal (třeba 2026-0001). Když už takové číslo v tom roce existuje, odliší ho příponou.
  • Zaplacená faktura dostane rovnou úhradu na plnou částku k datu úhrady z exportu — bez toho by chyběl příjem v roce.
  • U výdajů rozhoduje datum úhrady, ne vystavení: evidence je na hotovostním principu.
Předzaškrtnuté není všechno. Co už v evidenci je (stejné číslo v roce, nebo stejné datum i částka), se označí jako duplicita a nezaškrtne. Nezaškrtnou se ani zálohové faktury a objednávky — nejsou zdanitelný příjem. Rozhodnutí je na tobě.

11. Datová schránka

Appka umí číst došlé datové zprávy: stáhne je i s přílohami, uloží si je u sebe a z přílohy dokáže rovnou založit výdaj. Odesílat zprávy neumí — a je to schválně, odeslání datové zprávy soukromému subjektu je placené.

Záložka Datovka se v menu objeví teprve tehdy, když si napojení zapneš v Nastavení → Datová schránka. Dokud ho nezapneš, appka se o datovku nikde neotře.

Stažením zpráv se zprávy doručí. Vzít zpátky to nejde. Podle zákona o datových schránkách je získání seznamu došlých zpráv totéž co přihlášení do schránky — a přihlášením se zpráva považuje za doručenou. Od té chvíle běží lhůty (odvolání, odpor, doplnění podání), a to i u zpráv, které si v appce nikdo neotevře. Bez appky by se nedoručené zprávy doručily „fikcí" až po deseti dnech; s appkou se doručí ten den, kdy proběhne stažení.

Právě proto se nic nestahuje samo při otevření záložky. Seznam se zobrazuje z databáze a pro novou poštu je potřeba zmáčknout Stáhnout zprávy (appka se ještě jednou zeptá), nebo si nastavit pravidelný běh. A proto taky po každém stažení s novou zprávou odejde e-mail — automat, který ti zkrátí lhůtu a mlčí o tom, je horší než žádný automat.

Co appka umí

  • Archiv. ISDS zprávy 90 dní po doručení maže (pokud nemáš placený Datový trezor). Co appka stáhne, zůstane v její databázi — tedy i v zálohách .db.
  • Přílohy. Uloží se rozbalené, dají se otevřít jedním klikem.
  • Podepsaná podoba (ZFO). Nepovinné, dá se vypnout. Je to jediné, čím se dá i po letech doložit, co přesně přišlo — rozbalené PDF takovou váhu nemá.
  • Výdaj z přílohy. U PDF příloh je tlačítko Založit výdaj: doklad přečte AI, ty zkontroluješ pole a po uložení se PDF přiloží k výdaji jako doklad. Zpráva se tím označí za vyřízenou.

Co appka neumí

  • Odesílat. Ani odpovědi, ani faktury.
  • Velkoobjemové zprávy. Zprávy nad běžný limit chodí jiným rozhraním; appka je v seznamu přeskočí a napíše to. Otevři je na portálu.
  • Číst zprávy do vlastních rukou bez odpovídajícího oprávnění účtu — to je omezení ISDS, ne appky.

Nastavení

V Nastavení → Datová schránka vyplň přihlašovací jméno a heslo do datovky a přepni Prostředí. Napřed to zkus na testovacím prostředí (czebox.cz) — je to stejné rozhraní na jiné doméně a nic se tam nedoručuje doopravdy. Teprve pak přepni na ostrou schránku.

Tlačítko Vyzkoušet spojení jen ověří přihlášení a nic nedoručí (používá k tomu prázdnou operaci, která nemá vedlejší účinky). Mačkat ho můžeš bez rozmyslu. Stáhnout zprávy teď naopak doručuje.

Kam chodí upozornění Když je pole Upozornění posílat na prázdné, použije se adresa pro odpovědi z Nastavení → E-maily, případně e-mail firmy. Když není vyplněné ani jedno, appka to po běhu ohlásí jako chybu — zprávy jsou uložené, jen se o nich nikdo nedozví.

Pravidelné stahování

Stejně jako upomínky a opakované faktury se dá stahování pověsit na cron nebo n8n. Endpoint je POST /automation/isds a chce hlavičku X-API-Token. Víc než jednou denně to nemá smysl: ISDS sleduje nadměrný počet volání a časté dotazy nic nezrychlí.

Pořadí v cronu má význam Stahování z datovky pusť před během upomínek, ne po něm — ať se stihne promítnout, co ráno přišlo.

Heslo do ISDS vyprší po 90 dnech

To není chyba appky, ale pravidlo ISDS. Až heslo vyprší, stahování začne hlásit odmítnuté přihlášení. Buď heslo každé tři měsíce měň a přepisuj i v Nastavení, nebo si pořiď systémový certifikát, který tenhle problém řeší natrvalo.

Jak získat systémový certifikát

Systémový certifikát je způsob, jak se do datovky přihlašuje aplikace (v terminologii ISDS „spisová služba"), ne člověk. Nevyprší po 90 dnech jako heslo a je vázaný na schránku, ne na uživatelské heslo.

  1. Kup komerční certifikát u některé z akreditovaných certifikačních autorit — ISDS přijímá PostSignum (Česká pošta), I.CA, eIdentity a Národní CA. Objednávej komerční certifikát (serverový / pro aplikaci), ne kvalifikovaný podpisový. Roční platnost, cena řádově stokoruny až nižší tisíce.
  2. Ulož si certifikát i privátní klíč ve formátu PEM. To je textový soubor začínající řádkem -----BEGIN CERTIFICATE-----. Když ti CA vydá .p12/.pfx, převedeš ho:
    openssl pkcs12 -in certifikat.p12 -clcerts -nokeys -out cert.pem
    openssl pkcs12 -in certifikat.p12 -nocerts -nodes -out klic.pem
  3. Zaregistruj certifikát ve své datové schránce. Přihlas se na portál datovky jako administrátor schránky (nebo oprávněná osoba) a jdi do Nastavení → Externí aplikace → Certifikát spisové služby. Klikni na Zaregistrovat certifikát, vlož obsah souboru cert.pem do pole Obsah certifikátu, potvrď, zkontroluj zobrazené údaje a potvrď ještě jednou. Po registraci má certifikát stav Aktivní.
  4. Nakopíruj oba soubory k datům appky — tedy do adresáře data/ vedle databáze (klidně do podsložky data/isds/). Soubor s klíčem nesmí být čitelný pro ostatní: chmod 600.
  5. Vyplň cesty v Nastavení → Datová schránka, a to tak, jak je vidí kontejner: /data/isds/cert.pem a /data/isds/klic.pem. Když je klíč součástí téhož souboru jako certifikát, nech pole s klíčem prázdné.
  6. Zmáčkni Vyzkoušet spojení. Appka od té chvíle chodí na certifikátové rozhraní ISDS. Jméno a heslo nech vyplněné — certifikát je přidává, nenahrazuje.
Jeden certifikát = jedna schránka Tentýž certifikát nejde použít pro stejný typ služby u víc schránek. Když provozuješ Vykazano.cz pro víc firem, potřebuje každá vlastní.

Když se zpráva nestáhne

U zprávy se v seznamu ukáže červená poznámka s chybou z ISDS. Nejčastější případy:

ChybaCo s tím
1222Zpráva ještě není doručená (dorazila až během stahování). Stáhne se sama při dalším běhu.
1219Zpráva už je v ISDS smazaná (90 dní po doručení). Nedá se nic dělat, appka to po pár pokusech vzdá.
Odmítnuté přihlášeníVypršelo heslo, nebo přestal platit certifikát.

12. Daňové podklady

Záložka Daně. Spočítá z evidence čísla pro přiznání k dani z příjmů, Přehled pro OSSZ a Přehled pro zdravotní pojišťovnu — a udělá to dvakrát: se skutečnými výdaji a s výdajovým paušálem. Pak řekne, co je výhodnější a o kolik.

Co nastavit

VolbaCo znamená
Výdajový paušál60 % živnost volná/obchodní/služby, 80 % řemeslná a zemědělství, 40 % jiná samostatná činnost, 30 % nájem. Řídí se tím, co máš v živnostenském rejstříku, ne tím, co je výhodnější.
Měsíců činnostikdyž jsi podnikal jen část roku, krátí se tím minimální vyměřovací základy
Druh činnostihlavní = platí minimální základy; vedlejší = počítá se ze skutečného zisku a pod rozhodnou částkou se sociální neplatí vůbec
Zaplacené zálohykolik jsi za rok skutečně poslal na sociální a zdravotní. Z toho vyjde doplatek nebo přeplatek.

Co appka počítá a co ne

  • Příjmy jsou inkasované, ne vyfakturované — rozhodný je okamžik, kdy peníze dorazily. Neuhrazené faktury se ukazují zvlášť a spadnou do příjmů toho roku, kdy se zaplatí.
  • Výdaje v kategorii „Převody a soukromé“ se do daňových výdajů nepočítají (§ 24). V přehledu jsou vidět, ale do základu daně nevstupují.
  • Ze slev umí jen slevu na poplatníka. Děti, hypotéku, penzijní připojištění ani manželku nezná — ty si doplň sám nebo s účetní.
  • DPH neřeší — appka je pro neplátce.
Když vyjdou obě varianty stejně, není to chyba. U nižších příjmů je daň po slevě na poplatníka nulová a pojistné se počítá ze zákonného minima, ne z tvého zisku — takže na volbě výdajů nezáleží a výdaje navíc už nic neušetří. Rozdíl se objeví, až zisk přeroste minimální vyměřovací základy. Appka to v takovém případě napíše.

Obrat k DPH

V Přehledu je pruh Obrat k DPH: kolik jsi letos vyfakturoval proti limitu 2 000 000 Kč. Zežloutne na 80 % limitu a zčervená, když ho přesáhneš. Ukazuje i tempo — kde bys při dosavadním průběhu skončil na konci roku.

LimitCo se stane při překročení
2 000 000 Kčplátcem DPH se stáváš od 1. ledna následujícího roku
2 536 500 Kčplátcem se stáváš hned, dnem následujícím po překročení

V obou případech se přihláška k registraci podává do 10 pracovních dnů od překročení.

Obrat se počítá jinak než příjmy pro daň. Do obratu jde vystavená faktura, do příjmů pro daň z příjmů až přijatá platba. A od 1. 1. 2025 se obrat počítá za kalendářní rok, ne za dvanáct klouzavých měsíců jako dřív. Appka to má takhle schválně, není to nekonzistence. Je to ale odhad z evidence — zákonný obrat neobsahuje třeba prodej dlouhodobého majetku, takže až se k limitu přiblížíš, nech si číslo potvrdit účetní.

Termíny

  • Přiznání k dani z příjmů — papírově do 1. 4., elektronicky do 1. 5. (s daňovým poradcem do 1. 7.)
  • Přehledy pro OSSZ a zdravotní pojišťovnu — do jednoho měsíce po termínu přiznání. Přehled pro OSSZ se podává elektronicky (ePortál ČSSZ nebo datová zpráva).
  • Doplatek pojistného — do 8 dnů po dni, kdy byl přehled podán nebo měl být podán

Konkrétní data se každý rok posouvají o víkendy, tak si je před podáním ověř. Za nepodaný přehled pro OSSZ hrozí pokuta.

Výstup

Export CSV vezme celý podklad včetně obou variant a upozornění — to je verze pro účetní nebo do archivu. Tisk vytiskne stránku bez lišty a bez ovládacích prvků, takže z ní jde udělat PDF přes „Tisknout do PDF“.

Čísla řádků formulářů schválně neuvádím — mezi verzemi formulářů se mění a špatné číslo řádku je horší než žádné. Položky jsou pojmenované tak, jak se jmenují ve formuláři.

Tohle není daňové poradenství. Appka počítá z toho, co je v evidenci, podle sazeb, které v ní jsou zapsané. Jestli je konkrétní výdaj uznatelný, na jaké další slevy máš nárok a jestli se ti nevyplatí paušální daň, patří k účetní. Sazby a minima si navíc před podáním ověř na webu ČSSZ a své zdravotní pojišťovny — mění se každý rok a appka na neověřený rok sama upozorní.

13. Nastavení

Nastavení je rozdělené do sekcí v levé nabídce a každá sekce se ukládá zvlášť svým tlačítkem Uložit. Když v sekci něco změníš a neuložíš, vypíše se u tlačítka „Neuložené změny", takže se ti nemůže ztratit rozdělaná úprava v jiné sekci. Logo a podpis se ukládají hned při nahrání.

Nahoře je vyhledávání — napiš část názvu pole („splatnost", „účtu", „paušál") a appka přepne na správnou sekci a pole zvýrazní. Když něco důležitého chybí, je nad sekcemi karta s tím, co ještě není nastavené (údaje firmy, číslo účtu, SMTP, logo) s odkazem přímo na to pole. Jak to doplníš, karta zmizí.

SekceCo v ní nastavíš
Firmajméno, IČO, DIČ, adresa, kontakt, web, zápis v rejstříku do patičky faktury
Fakturaceformát čísla, splatnost, úvodní text a text v patičce
Banka a platbyčíslo účtu (IBAN a QR se dopočítají), název banky
DPHplátcovství, datum registrace, zdaňovací období, výchozí sazba — viz DPH
Import datnahrání bankovního výpisu a exportu z Fakturoidu — viz Import dat
Vzhled fakturyšablona, akcentní barva, logo a podpis, Náhled PDF
E-mailySMTP server (adresa, port, přihlášení, zabezpečení, odesílatel), test připojení, předmět a text e-mailu s fakturou
Upomínkystupně eskalace, minimální odstup, náhled k odeslání
Daněvýdajový paušál a druh činnosti — používá to záložka Daně
Systémzměna hesla, záloha databáze, exporty CSV; sem přijde i správa uživatelů

Rozvržení — drobné úpravy vzhledu

Pod výběrem šablony je Rozvržení s živým náhledem. Není to editor, kde se táhne myší — je to sada voleb, které se propíšou do faktury:

  • Písmo — šest rodin, bezpatkové i patkové a strojopis; Liberation Sans a Serif mají metriku Arialu a Times
  • Velikost a řádkování — 7 až 14 pt
  • Okraje nahoře, dole a po stranách v milimetrech
  • Pořadí stran — dodavatel, nebo odběratel vlevo
  • Co zobrazit — logo, podpis, QR platba, IBAN, číslo účtu, VS, způsob úhrady, DIČ, stát u adres, kontakt a web dodavatele, zápis v rejstříku, úvodní text, poznámka, patička
  • Sloupce tabulky položek — které a v jakém pořadí (šipkami); popis vypnout nejde a šířky se dopočítají tak, aby tabulka vždy vyplnila šířku stránky

Náhled vpravo je skutečná faktura vyrenderovaná serverem, ne napodobenina v prohlížeči — co je na náhledu, to bude v PDF. Změny se ale uloží až tlačítkem Uložit; Vrátit výchozí vrátí vše zpět.

Jedna drobnost k písmu v náhledu. PDF se sází fonty, které jsou na serveru. Náhled kreslí tvůj prohlížeč, a ten je mít nemusí — proto má každé písmo náhradu (patkové za patkové, strojopis za strojopis), takže náhled ukáže správný styl, i když ne úplně stejné tvary písmen. V PDF už to sedí přesně.

Tři vzhledy faktury

  • Klasická — střízlivý dokument, barevná linka pod hlavičkou, logo vpravo nahoře
  • Moderní — barevný pruh přes celou šířku stránky, logo vlevo v pruhu
  • Minimalistická — hodně bílého místa, žádné rámečky, velké číslo faktury

14. Jak se počítají peníze

Appka záměrně rozlišuje dvě různé věci:

  • Vyfakturováno — součet vystavených faktur, tedy kdy jsi práci vyfakturoval.
  • Inkasováno — součet skutečně přijatých úhrad, tedy kdy peníze dorazily.

Čistý výdělek = inkasováno − výdaje.

Pro OSVČ v daňové evidenci je rozhodný okamžik přijetí platby, ne vystavení faktury: faktura vystavená v prosinci a zaplacená v lednu patří do příjmů dalšího roku. Proto appka s daty úhrad zachází opatrně a proto tě u bankovního importu nutí odsouhlasit každou opravu, která by úhradu přesunula přes Silvestra.

Všechny částky se vnitřně drží jako celá čísla v haléřích, aby se roční součty nerozcházely o haléře.

Tohle není daňové poradenství. Appka počítá, co do ní zadáš. Nad tím, co je uznatelný výdaj a jak vyplnit přiznání, se poraď s účetní.

15. Čísla faktur a VS

Číslo faktury je unikátní v rámci roku, ne globálně — 00001 existuje v každém roce jednou. Navazuje se tím na řadu z UctoX. Kdo chce globálně unikátní čísla, přepíše formát čísla v Nastavení na {rok}{poradi:03d}.

Variabilní symbol proto musí obsahovat rok. Výchozí formát je {poradi}{rok2}, takže 926 je 9. faktura roku 2026. Kdyby se VS odvozoval jen z čísla faktury, kolidoval by napříč roky a platby by nešlo spárovat.

Formát čísla a VS neměň uprostřed roku. Rozpadne se ti tím číselná řada a starým platbám přestane sedět párování.

16. Upomínky a eskalace

Upomínky mají stupně. Faktura po splatnosti dostane nejdřív zdvořilé připomenutí, po dalších dnech upomínku a nakonec poslední výzvu. Každý den v 9:00 se projdou neuhrazené faktury po splatnosti a odešle se vždy jen jeden stupeň na fakturu.

Výchozí eskalace

StupeňKdyTón
Připomenutí3 dny po splatnostimožná to jen uteklo v provozu
Upomínka14 dníprosím o úhradu nebo o informaci, kdy platbu očekávat
Poslední výzva30 dnípokud platba nedorazí, budu to řešit dalšími kroky

Texty, dny i počet stupňů se mění v Nastavení → Upomínky. Stupeň můžeš přidat i odebrat. Tlačítko Náhled k odeslání ukáže, komu by dnešní běh co poslal — a co přeskočil a proč.

Tři pojistky, aby to nebylo otravné

  • Každý stupeň jen jednou. Co už odešlo, se zjišťuje z logu odeslaných e-mailů, takže se počítá i upomínka, kterou jsi poslal ručně.
  • Minimální odstup (výchozí 5 dní). Bez něj by faktura 40 dní po splatnosti dostala při prvním běhu všechny tři stupně za sebou v jednu minutu.
  • Vypnutí u zákazníka. V editoru zákazníka je Neposílat upomínky — pro klienty, se kterými máš pomalejší platby domluvené. Má přednost před vším ostatním.

Ruční odeslání

Tlačítko Upomínka v detailu faktury pošle další stupeň v řadě, i když jeho den ještě nenastal. Automatický běh pak pokračuje tam, kde jsi skončil — texty se tak editují jen na jednom místě.

Zaplacené faktury se neupomínají. Plán bere jen faktury, kde po odečtení úhrad opravdu něco zbývá — u částečné úhrady se upomíná jen na zbytek. Zákazník bez e-mailu se přeskočí a je to vidět v náhledu.

Běh se loguje do data/cron.log. Dokud není nastavené SMTP, upomínky se jen zapisují do logu a nikam neodcházejí — celý postup si tak můžeš vyzkoušet naprázdno.

17. Přístup, provoz, záloha

OdkudAdresa
Doma po sítihttp://192.168.0.101:3007
Odkudkoliv přes Tailscalehttps://vk-thinkpad-w540.taile564d5.ts.net:8443

Tailscale je v režimu tailnet only, ne Funnel — na fakturační data se dostanou jen tvoje přihlášená zařízení, ne veřejný internet.

Provoz

cd /home/vk/projects/fakturace

docker compose ps                      # stav
docker compose logs -f api             # logy (i „odeslané" maily v log režimu)
docker compose restart api             # restart
docker compose up -d --build api       # po změně Pythonu

Frontend a šablony faktur jsou namountované — stačí uložit soubor a načíst stránku, žádný build.

Záloha

Všechna data jsou v jednom souboru data/fakturace.db.

sqlite3 data/fakturace.db ".backup '/home/vk/zalohy/fakturace-$(date +%F).db'"

.backup je atomický, takže záloha je konzistentní i za běhu — na rozdíl od obyčejného cp.

18. Co appka neumí

  • Přijaté faktury (evidují se jen výdaje jako částka + kategorie)
  • Přílohy a skeny k výdajům
  • Zálohové faktury a dobropisy
  • Export do ISDOC
  • Automatické stahování výpisů z banky — výpis se nahrává ručně (PSD2 API chce eIDAS certifikát, což pro jednoho živnostníka nedává smysl)
  • DPH — appka je postavená pro neplátce

19. Když něco nefunguje

E-maily neodcházejí

Dokud není vyplněné SMTP, běží log režim: faktura se vygeneruje, projde celým postupem a zapíše se do logu, ale nikam neodejde. V dialogu odesílání na to upozorňuje žlutý pruh. Zapnutí (WEDOS) je popsané v README.md.

Bez SPF záznamu padají faktury do spamu. Doména vaclavklema.cz SPF záznam nemá. Než začneš posílat naostro, přidej do DNS TXT @ → v=spf1 include:_spf.wedos.net ~all a zapni DKIM. Výsledek zkontroluj na mail-testeru.

Appka mě vyhodila na přihlášení

Vypršela session. Přihlas se znovu; rozdělaná faktura, kterou jsi neuložil, se nedochová.

Import z banky nic nezapsal

Zkontroluj, že jsi po načtení výpisu klikl na Zaevidovat vybrané úhrady (a u druhé tabulky zvlášť na Zaevidovat vybrané výdaje). Načtení výpisu samo o sobě nic neukládá. Řádky = Už zaevidováno jsou v pořádku — ten pohyb už v evidenci je.

PDF vypadá rozbitě

Po zásahu do šablony si vzhled ověř tlačítkem Náhled PDF v Nastavení. Generátor PDF nezná některé moderní CSS vlastnosti — poznámky k tomu jsou v README.md.

Něco jiného

docker compose logs -f api

V logu API je vidět i chyba odeslání e-mailu a detail selhaného importu.