11. Faktura — PDF, QR platba, odeslání e-mailem

Vystavená faktura má immutable PDF — vygeneruje se v okamžiku vystavení a od té chvíle se nemění (snapshot dodavatele, klienta, banky). Tím se zajišťuje neměnnost dokladu i kdybyste si v Nastavení změnil adresu nebo bankovní účet.

11.1 Detail faktury

Klik na číslo faktury v seznamu otevře detail.

Detail faktury
Detail faktury

Detail ukazuje:

11.1.1 Akční tlačítka (vpravo nahoře)

Závisí na stavu faktury:

StavDostupné akce
issuedStáhnout PDF, Odeslat e-mailem, Označit zaplacené, Storno, Dobropis, Test odeslání, Test upomínky, Editovat (force)
sentStáhnout PDF, Odeslat znovu, Označit zaplacené, Upomínka, Dobropis
remindedStáhnout PDF, Další upomínka (cooldown 14 dní), Označit zaplacené
paidStáhnout PDF, Dobropis (vrátit peníze)

💡 Test odeslání / Test upomínky — pošle e-mail jen na tvůj e-mail (ne klientovi). Užitečné pro vyzkoušení šablony nebo SMTP konfigurace.

11.2 PDF struktura

Vygenerované PDF obsahuje:

  1. Hlavičku — logo dodavatele, jméno, adresa, IČ, DIČ, kontakt
  2. Adresát — klient (firma + adresa + IČ + DIČ)
  3. Číslo faktury + typ (Faktura / Proforma / Dobropis / Storno)
  4. Data — vystaveno, DUZP, splatnost
  5. Bankovní spojení — číslo účtu / IBAN, BIC, banka, variabilní symbol
  6. Položky — tabulka (Popis / Množství / Cena / DPH / Celkem)
  7. Sumář — mezisoučet, sleva, DPH rozpis, CELKEM
  8. (EUR / cizí měna) Přepočet do CZK — kurz ČNB + tabulka základů DPH a DPH v CZK (světle šedé podbarvení)
  9. QR platbu — vpravo dole (CZK SPAYD nebo EUR SEPA EPC)
  10. Patičku — text z Nastavení dodavatele (volitelný)
  11. (volitelně) 2. strana — Výkaz víceprací

11.2.1 Přepočet do CZK (faktury v cizí měně)

Pokud je faktura v jiné měně než CZK, PDF obsahuje navíc:

Kurz se ukládá na fakturu v okamžiku prvního uložení a nemění se ani po vystavení, ani po editaci items (pokud se nezmění issue_date nebo měna). Pokud je faktura starší a nemá zafixovaný kurz (legacy data), MyInvoice ho doplní automaticky při příštím otevření detailu nebo PDF (cache → ČNB → poslední známý). Detail viz § 10.4.2 Faktura v cizí měně.

11.3 QR platba

QR platba na PDF
QR platba na PDF

Pro CZK se generuje SPAYD (Short Payment Descriptor — český národní standard). Aplikace banky to umí přečíst (KB, FIO, Air Bank, Raiffeisen, Revolut, Wise…).

Pro EUR (a další non-CZK měny) se generuje SEPA EPC (European Payments Council) QR — funguje pro všechny EUR účty v EU.

QR obsahuje:

⚠️ QR se vygeneruje jen pokud bankovní účet projde mod-11 kontrolou (CZ účty) nebo IBAN checksum (EUR). Neplatný účet → QR se v PDF nezobrazí, zbytek faktury OK.

💡 CZK vs SEPA QR pro koncepty (drafts): CZK SPAYD vyžaduje variabilní symbol jako povinné pole — koncepty bez VS proto nemají QR. SEPA EPC VS jako identifikátor nepoužívá (jen volitelný text v poznámce), takže EUR/SEPA koncepty mají QR i bez VS — užitečné pro náhled klientovi před vystavením.

11.4 Odeslání e-mailem

11.4.1 Manuální odeslání

Tlačítko Odeslat e-mailem (na detailu faktury). E-mail jde na:

Předmět + tělo e-mailu se vezme ze šablony invoice_new (CZ / EN podle jazyka klienta) — viz 18. Nastavení → § 15.5.

Po odeslání:

11.4.2 Hromadné odeslání

Z Seznamu faktur vybereš více faktur a klikneš Odeslat klientovi (N) — bulk action.

11.4.3 Odesílatel a Reply-To

Per dodavatel lze nastavit:

Nastavuje se v Systém → Dodavatelé → [tvůj dodavatel] → Editovat.

11.4.4 Volitelné přílohy emailu

V detailu faktury (i u konceptu) je sekce Přílohy emailu, kam lze nahrát další soubory, které se přibalí k PDF faktury při odeslání klientovi. Typické použití: smlouva, cenová nabídka, fotodokumentace, předávací protokol.

⚠️ Přílohy se NEpřibalují k upomínkám ani k mailu schválení výkazu — jdou jen s běžným odesláním faktury / proformy / dobropisu. K internímu stornu nelze přílohy přidat (interní typ se klientovi neposílá).

💡 Přílohy přežijí editaci faktury i přečíslování — jsou navázané přes invoice_id. Smazání faktury (jen u konceptů) přílohy odstraní spolu s ní.

11.5 Historie PDF

V detailu faktury je sekce Historie PDF — seznam všech archivovaných verzí PDF, které tato faktura kdy měla:

Stav v seznamuCo znamená
Odesláno (zelený badge)PDF v této verzi bylo skutečně odesláno klientovi e-mailem. Nikdy se neníčí — je to důkaz, co klient dostal.
VystaveníPDF z okamžiku, kdy se draft povýšil na vystavenou fakturu (změna varsymbolu / snapshotů).
Úprava fakturyPDF z doby před tím, než někdo fakturu editoval (typicky admin force edit).
Změna výkazuVýkaz víceprací se změnil → původní PDF s 2. stranou výkazu se odložilo.
Změna bank. údajůV Číselníku → Měny se změnil bankovní účet → PDF konceptů (bez snapshotu) se invalidovala.

Každý řádek má tlačítka Zobrazit (otevře v novém tabu) a Stáhnout. U odeslaných verzí navíc vidíš kam to šlo (seznam příjemců).

🛈 Proč to existuje: vystavená faktura má snapshot dodavatele/klienta/ banky, takže PDF nemůže být změněno tichou cestou. Ale když se faktura opraví přes admin force edit, původní verze by se ztratila — historie PDF zachová obě (původní + novou) a u odeslané varianty navíc eviduje, komu konkrétně šla.

💡 Nastavení retention — historie PDF se nemaže automaticky. Cron cron-cleanup.sh standardně odeslané (was_sent=1) verze nikdy nemaže. Pokud potřebuješ ušetřit místo, použij ruční smazání jen u neodeslaných invalidačních verzí (zatím není UI; přes SQL).

11.6 Admin akce nad vystavenou fakturou

Sekce Další akce v detailu faktury skrývá několik nástrojů, které jsou přístupné jen adminovi a používají se v krajních případech.

11.6.1 Editace vystavené faktury (force=1)

V krajní nouzi (admin udělal v vystavené faktuře překlep, klient ji ještě nedostal):

  1. Z detailu faktury klikni Upravit (admin) — vyžaduje admin roli.
  2. Otevře se editor s URL ?force=1.
  3. Změny se uloží + původní PDF se invaliduje + zaloguje se invoice.force_updated v activity logu.

⚠️ Editace vystavené faktury obecně NENÍ doporučená. Změny snapshotů mohou být rozpor s tím, co klient dostal e-mailem. Preferuj storno + nová faktura nebo dobropis.

🛈 Var. symbol je immutable — force-edit ho NEzmění. Pokud chceš číslo změnit, vystav storno/dobropis a fakturu znovu pod novým číslem.

11.6.2 Nezaplacené (vrátit ze stavu paid)

Tlačítko Nezaplacené je viditelné jen u faktur ve stavu paid (admin only). Vrátí fakturu ze stavu zaplacené zpět do sent (pokud byla odeslaná) nebo issued, vyčistí paid_at a přepočítá revenue stats.

Použití:

⚠️ Pokud má faktura spárovanou bankovní transakci, akce vrátí 409 chybu s návodem. V tom případě musíš nejdřív v detailu výpisu kliknout Zrušit spárování — ta cascade sama vrátí jak transakci, tak fakturu zpátky (faktura → issued, transakce → unmatched).

Activity log: invoice.unmark_paid s previous_paid_at pro forenzní stopu.

11.6.3 Smazání vystavené faktury (force-delete, admin)

Force-delete je 3. možnost ve Storno / Dobropis modalu (otevřeš tlačítkem „Storno / Dobropis" v detailu vystavené faktury). Volby v modalu:

  1. Vystavit dobropis (preferované) — vytvoří draft dobropisu se zápornými položkami, klient dostane oficiální opravu.
  2. Stornovat (interní) — interní označení, klient nedostane nic.
  3. ⚠ Smazat fakturu (admin, force-delete) — admin only.

Třetí možnost nenávratně odstraní účetní doklad z databáze:

Před skutečným smazáním systém ukáže detailní per-status varování (jiné pro vystavenou / odeslanou / zaplacenou / stornovanou) s doporučenou alternativou (storno / dobropis / Nezaplacené).

⚠️ Force-delete vystavené faktury používej výjimečně. Účetní doklad může být v evidenci u tvé účetní, klient ho má v emailu. Smazání u tebe nevymaže to, co má klient nebo účetní. Defaultní řešení je vystavit dobropis — účetně správné a nechá auditní stopu.

💡 Typický legální use case: vystavil jsi fakturu omylem (jiný klient, špatná částka) a klient ji ještě nedostal. Pokud už dostal, vystav dobropis.

11.7 Změna bankovního účtu po vystavení

Pokud změníš bankovní účet v Systém → Číselníky → Měny, automaticky se invalidují PDF všech faktur, které renderují bank info live (drafty + faktury bez snapshotu). Faktury v stavu issued a vyšším mají immutable bank_snapshot — jejich PDF zůstává s původními údaji (správně, klient ji už dostal).

V activity logu uvidíš currency.updated s počtem invalidovaných PDF.

11.8 Tipy