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
- 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.
- Nastavení → Dodavatel (ty) — jméno, IČO, adresa, e-mail. Tyhle údaje jdou na fakturu, bez nich vypadá hlavička prázdně.
- 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íš. - Nastavení → Faktury — výchozí splatnost ve dnech a formát čísla faktury.
- Nastavení → Vzhled faktury — šablona, akcentní barva, logo a podpis. Náhled PDF funguje i dřív, než vystavíš první fakturu.
- Zákazníci → + Nový zákazník — zadej IČO a klikni Načíst z ARES.
- Faktury → + Nová faktura.
.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ždice | Co ukazuje |
|---|---|
| Čistý výdělek | inkasováno − všechny výdaje. Kolik ti z toho roku reálně zůstalo. |
| Inkasováno | peníze, které skutečně dorazily v tom roce (úhrady faktur + příjmy bez faktury). |
| Vyfakturováno | součet vystavených faktur, počet a průměrná faktura. Koncepty a storna se nepočítají. |
| Výdaje | souč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škrtnuto | Co 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". |
| ne | Vý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.
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.
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
| Stav | Význam |
|---|---|
| Koncept | rozpracovaná. 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 splatnosti | není 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í.
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.
| Role | Co smí |
|---|---|
| Vlastník | vš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í. |
| Fakturant | faktury, 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.
| Volba | Co dělá |
|---|---|
| Jak často | měsíčně, čtvrtletně, půlročně, ročně nebo po dnech (např. každých 14 dní) |
| Každou N-tou periodu | fakturace každý druhý měsíc = perioda měsíčně, N = 2 |
| Den v měsíci | drží 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ředem | kolik dní před datem vystavení má koncept vzniknout, ať je čas ho zkontrolovat |
| Splatnost | prázdné = použije se splatnost od zákazníka, jinak z Nastavení |
| Konec platnosti / max. počet | generá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.
{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:
| Text | Dosadí 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}.
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.
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í
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.
| Volba | Co dělá |
|---|---|
| Neplátce DPH | výchozí stav, faktury bez daně |
| Identifikovaná osoba | odvádíš daň z nákupů ze zahraničí (reklama, cloud), ale faktury vystavuješ dál bez DPH |
| Plátce DPH | plný režim: sazby, rekapitulace, náležitosti daňového dokladu |
| Výchozí sazba | předvyplní se u nové položky, u každé se dá přepsat |
| Ceny zadávám včetně DPH | pro koncové zákazníky, ať jsou ceny kulaté; firmám se fakturuje bez daně |
| Zaokrouhlovat na koruny | zaokrouhlení 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.
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".
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át | Odkud |
|---|---|
| CSV | Air Bank, Fio, ČSOB, Raiffeisen… sloupce se hledají podle názvů v hlavičce |
| ABO / GPC | tuzemský standard pevné šířky |
| camt.053 XML | evropský 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 řádku | Co znamená |
|---|---|
| ✓ Sedí přesně | částka odpovídá tomu, co zbývá uhradit — předzaškrtnuto |
| ↻ Oprava data úhrady | faktura 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á úhrada | přišlo míň, faktura zůstane nedoplacená |
| ▲ Přeplatek | přišlo víc, než zbývalo |
| = Už zaevidováno | tenhle pohyb (nebo celá faktura) je vyřízený |
| ? Nespárováno | nesedí 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.
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.
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át | Kdy ho zvolit |
|---|---|
| Fakturoid XML | když chceš faktury i s položkami — nese úplně všechno |
| CSV | rychlejší 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.
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.
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.
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í.
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.
- 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.
-
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 -
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.pemdo pole Obsah certifikátu, potvrď, zkontroluj zobrazené údaje a potvrď ještě jednou. Po registraci má certifikát stav Aktivní. -
Nakopíruj oba soubory k datům appky — tedy do adresáře
data/vedle databáze (klidně do podsložkydata/isds/). Soubor s klíčem nesmí být čitelný pro ostatní:chmod 600. -
Vyplň cesty v Nastavení → Datová schránka, a to tak, jak je vidí
kontejner:
/data/isds/cert.pema/data/isds/klic.pem. Když je klíč součástí téhož souboru jako certifikát, nech pole s klíčem prázdné. - 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.
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:
| Chyba | Co s tím |
|---|---|
| 1222 | Zpráva ještě není doručená (dorazila až během stahování). Stáhne se sama při dalším běhu. |
| 1219 | Zprá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
| Volba | Co znamená |
|---|---|
| Výdajový paušál | 60 % ž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ů činnosti | když jsi podnikal jen část roku, krátí se tím minimální vyměřovací základy |
| Druh činnosti | hlavní = 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álohy | kolik 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.
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.
| Limit | Co 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í.
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.
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í.
| Sekce | Co v ní nastavíš |
|---|---|
| Firma | jméno, IČO, DIČ, adresa, kontakt, web, zápis v rejstříku do patičky faktury |
| Fakturace | formát čísla, splatnost, úvodní text a text v patičce |
| Banka a platby | číslo účtu (IBAN a QR se dopočítají), název banky |
| DPH | plátcovství, datum registrace, zdaňovací období, výchozí sazba — viz DPH |
| Import dat | nahrání bankovního výpisu a exportu z Fakturoidu — viz Import dat |
| Vzhled faktury | šablona, akcentní barva, logo a podpis, Náhled PDF |
| E-maily | SMTP server (adresa, port, přihlášení, zabezpečení, odesílatel), test připojení, předmět a text e-mailu s fakturou |
| Upomínky | stupně 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ém | změ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.
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.
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.
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ň | Kdy | Tón |
|---|---|---|
| Připomenutí | 3 dny po splatnosti | možná to jen uteklo v provozu |
| Upomínka | 14 dní | prosím o úhradu nebo o informaci, kdy platbu očekávat |
| Poslední výzva | 30 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ě.
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
| Odkud | Adresa |
|---|---|
| Doma po síti | http://192.168.0.101:3007 |
| Odkudkoliv přes Tailscale | https://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.
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.