MyInvoice MyInvoice.cz Manuál
Stáhnout PDF Zpět na hlavní stránku

17. Přijaté faktury (nákupy)

Přijaté faktury jsou doklady, které dostáváš od svých dodavatelů — peníze odcházejí z firmy. Oproti vystaveným fakturám:

Vystavené (faktura)Přijaté (purchase invoice)
Směr penězKlient → my (příjem)My → dodavatel (výdaj)
ProtistranaZákazník (is_customer=1)Dodavatel (is_vendor=1) — stejná tabulka klientů, jiný flag
DPH roleSbíráme od klientů (výstupní DPH)Odečítáme z dodavatelských (vstupní DPH)
ČíslováníNaše 2605001Číslo dodavatele (na originálu) + naše interní PF2605001 (dle daňového typu, viz 10.2.4)
Status flowdraft → issued → sent → paiddraft → received → booked → paid
Schvalování / odesíláníAno, klient potvrdíNe, doklad jen evidujeme

V hlavním menu Přijaté faktury.

Tip

Samostatné kapitoly k nákupní agendě: Export přijatých faktur (naše PDF / ISDOC / Pohoda) a AI extrakce (import z PDF přes Claude).

17.1 Stavy přijaté faktury

StavVýznamCo lze
Koncept (draft)Rozpracovaný — ještě jsi nepotvrdil že to je platná fakturaUpravit, smazat, přejít na Přijatá
Přijatá (received)Doklad potvrzený jako platný — visí na nezaplacenýchOznačit jako zaúčtovaná, uhrazená, stornovat
Zaúčtovaná (booked)Předala se účetní / poslala do účetnictvíOznačit jako uhrazená, stornovat
Uhrazená (paid)Zaplaceno (manuálně nebo automaticky z bankovního výpisu)— (terminal)
Stornovaná (cancelled)Stornovaný doklad — necháváme pro audit— (terminal)

Smazat jde jen koncept. Pro pozdější stavy použij Stornovat (zachová auditní stopu).

17.2 Nová přijatá faktura

V seznamu klikni + Nová přijatá faktura. Otevře se formulář.

17.2.1 Drag & drop PDF

Nad formulářem je drag & drop zóna. Pokud máš PDF od dodavatele:

💡 Doklad jde nahrát už při zakládání nové faktury (po přetažení se ukáže kartička „soubor připraven, nahraje se po uložení") i z detailu faktury, která zatím doklad nemá. Kromě PDF lze přetáhnout i fotku (JPG/PNG/WEBP/HEIC), systém ji převede na PDF.

Limity:

17.2.2 Povinná pole

PoleVýznam
DodavatelVyber z dropdownu (autocomplete). Pokud chybí, klikni „+ Vytvořit nového dodavatele" — využije ARES lookup podle IČO.
Číslo dokladu dodavateleTak jak je vytištěno na originálu (např. FA-2026-001). Max 50 znaků. Unique per (dodavatel, datum vystavení) — nelze importovat 2× stejnou.
Naše interní čísloVolitelné. Pokud necháš prázdné, vygeneruje se automaticky podle šablony při přechodu na stav Přijatá. Výchozí šablona je {PP}{YY}{MM}{CCC} (např. PF2602001), prefix {PP} odpovídá daňovému typu (viz 10.2.4): PF/PN plný nárok (uznatelný/ne), KU/KN krácený, NU/NN bez nároku. Počítadlo je per měsíc (přeteče na 4+ místa nad 999 dokladů). Šablonu lze změnit v Nastavení → Číslování faktur → Šablona pro přijatou fakturu (např. legacy PF-{YYYY}{MM}-{CCCC}PF-202605-0001). Při ručním zadání čísla systém hlídá kolize (nepovolí duplicitu) a auto-generátor obsazená čísla přeskakuje.
Typ dokladuFaktura / Doklad o úhradě / Dobropis / Záloha (pro filtrování v seznamu).
Datum vystaveníZ faktury.
DUZP (datum uskutečnění zdanitelného plnění)Klíčové pro DPH období. Default = datum vystavení. U reverse charge se doklad zařazuje do DPH období právě podle DUZP (povinnost přiznat daň vzniká bez ohledu na doručení dokladu); u pořízení zboží z EU je DUZP dle § 25 ZDPH 15. den měsíce následujícího po dodání, pokud doklad nebyl vystaven dříve — editor to připomene hintem.
SplatnostZ platebních podmínek dodavatele.
Datum přijetíKdy jsi to fyzicky / e-mailem dostal. Default = dnes.
Měna fakturyMěna, ve které je doklad vystaven (USD, EUR, CZK…).
Kurz k DUZPPokud je měna ≠ CZK, musíš zafixovat kurz. Tlačítko „Načíst z ČNB" stáhne aktuální nebo poslední dostupný denní kurz.
Reverse chargeZaškrtni, pokud je doklad B2B s přenesenou daňovou povinností (pořízení zboží z EU, služby z EU/3. země, tuzemský §92a). Položkám nastav tuzemskou sazbu (typicky 21 %) a odpovídající klasifikační kód — daň na dokladu zůstane 0 (dodavatel ji neúčtuje), samovyměření i zrcadlový odpočet dopočítají výkazy DPH. Viz § 17.2.6.

17.2.3 Položky

Tlačítkem + Přidat položku přidej řádek. Per řádek:

Souhrn dole se přepočítá automaticky po každé změně.

💡 Ceny „s DPH" (brutto režim) — přepínačem Ceny zadávám s DPH (u DPH v hlavičce) lze zadat položky včetně DPH (typicky účtenka / paragon), takže celková částka sedí na haléř. DPH se pak počítá „shora" koeficientovou metodou (§37 ZDP). Zadání ceny do sloupce „Celkem s DPH" respektuje aktuální režim (nepřepíná ho); jednotková cena se v detailu i PDF zobrazuje jako netto. Funguje stejně jako u vystavených faktur — viz § 10.2.6. AI import účtenek režim nastaví sám.

17.2.4 Daňová uznatelnost a nárok na odpočet

V boxu Klasifikace jsou dva nezávislé příznaky řídící, jak faktura vstupuje do daňových výkazů:

PříznakMožnostiCo ovlivňuje
Nárok na odpočet DPHPlný / Bez nároku / KrácenýDPH evidenci
Daňově uznatelný nákladano / nedaň z příjmů (DPFO/DPPO)

Oba příznaky jsou vidět i v detailu přijaté faktury (box Měna/DPH).

💡 Interní číslo se řídí daňovým typem. Prefix automaticky generovaného interního čísla (viz 10.2.2) odpovídá těmto dvěma příznakům — PF/PN plný nárok (uznatelný/ne), KU/KN krácený §75, NU/NN bez nároku. Když u už očíslované faktury daňové uplatnění změníš, přepíše se jen prefix (PF2602001NN2602001); číselná řada {YYMM}{CCC} i ručně zadaná čísla zůstanou. Počítadlo je sdílené per dodavatel a měsíc napříč všemi prefixy, takže čísla jsou v rámci měsíce souvislá bez ohledu na daňový typ; případné mezery po smazaných konceptech jsou u interního označení neškodné (na rozdíl od vystavených faktur se u přijatých dokladů souvislá řada nevyžaduje).

Rekapitulace DPH dle dokladu (§ 73 ZDPH)

Pod položkami je box Rekapitulace DPH se základem a daní za každou sazbu. Hodnoty se dopočítají ze řádků, ale pokud doklad dodavatele uvádí kvůli zaokrouhlení jiný základ nebo DPH, můžeš je přepsat přesně podle dokladu. Důvod je daňový: nárok na odpočet je svázaný s částkou daně uvedenou na dokladu (§ 73 odst. 6 ZDPH), proto je primární shoda s dokladem, ne náš přepočet.

Dodavatel neplátce DPH → bez nároku na odpočet

Pokud je dodavatel neplátce DPH, na jeho dokladu žádná DPH není a není co odpočítat — uplatnit odpočet by byla daňová chyba (neoprávněný odpočet v ř. 40 přiznání / sekci B kontrolního hlášení). MyInvoice proto plátcovství dodavatele sleduje a vynucuje:

Plátcovství dodavatele je vidět i ve výpisu klientů/dodavatelů jako badge *Plátce DPH* (viz § 13.1).

🛠️ Zpětná oprava existujících dodavatelů — jednorázově spusť php api/bin/backfill-vendor-vat-payer.php. Skript podle ARES/VIES doplní příznak plátcovství a u neplátců opraví už zaevidované přijaté faktury (zakáže odpočet, sazby na 0 %, celková částka beze změny). Výchozí běh je dry-run (jen náhled); zápis až s --apply.

17.2.5 Platba v jiné měně (multi-currency)

Klikni na „Platba v jiné měně než měna faktury" pokud máš tento scénář:

Faktura je v USD ($1000), ale platíš ji z CZK účtu (banka konvertuje na ~24 500 Kč s 1–2% spread / poplatkem).

V tomto bloku zadáš:

Systém automaticky vypočte:

17.2.6 Reverse charge z EU — pořízení zboží vs. služba

Typický případ: nákup zboží od EU dodavatele (např. auto z Německa) — doklad je vystaven bez DPH (osvobozené intrakomunitární dodání) a daň si samovyměříš v ČR. Správné zaevidování:

CoZboží z EU (pořízení z JČS)Služba z EU/3. země
Sazba na řádcíchtuzemská 21 % (případně 12 %)tuzemská 21 %
Klasifikační kód23 „Pořízení zboží z JČS"24 „Přijetí služby"
DPH přiznáníř. 3 (samovyměření) + ř. 43 (odpočet); u majetku navíc ř. 47ř. 5/12 + ř. 43
Kontrolní hlášenísekce A.2
DUZP§ 25: 15. den měsíce po dodání, pokud doklad nebyl vystaven dříveden uskutečnění služby

Klíčové principy:

⚠️ U vybraných osobních automobilů pohlídej limit odpočtu dle § 72 (strop základu 2 000 000 Kč / DPH 420 000 Kč) — aplikace ho nehlídá.

17.3 Detail přijaté faktury

Po uložení / přechodu na detail:

17.3.1 Propojení zálohy s vyúčtovací fakturou (proti dvojímu započtení)

Když ti dodavatel pošle nejdřív zálohovou fakturu (typ dokladu *Záloha* / proforma) a po zaplacení samostatnou vyúčtovací (finální) fakturu, máš v systému dva doklady na tentýž náklad. Bez propojení by se náklad počítal dvakrát (Náklady, CRM, daň z příjmů). Proto je lze spárovat.

Jak na to — v detailu finální faktury je box Zálohová faktura:

Jedna záloha může být navázaná jen na jednu finální fakturu.

Co propojení (a zaplacení) ovlivní:

OblastChování zálohy
Náklady, CRM statistikySpárovaná nebo zaplacená záloha se nepočítá (náklad nese vyúčtovací faktura). Nezaplacená a nespárovaná záloha se počítá jako očekávaný náklad.
Daň z příjmů (DPFO/DPPO)Záloha nikdy není uznatelný náklad (není daňový doklad) — bez ohledu na zaplacení/párování.
Výkazy DPH (Kniha DPH, DPHDP3, KH, souhrnné hlášení)Záloha do nich nevstupuje vůbec (není daňový doklad; tím je až vyúčtovací faktura).
Závazky / cashflowNezaplacená záloha zůstává jako reálný závazek k úhradě.

AI návrh propojení — když naimportuješ vyúčtovací fakturu přes AI extrakci z PDF (viz 10.7) a ta odkazuje na zálohu (text typu *„zaplaceno zálohou č. X"*), systém zkusí najít odpovídající zálohu a v detailu nabídne návrh propojení. Stačí ho Potvrdit (nebo Zamítnout) — nic se nepáruje automaticky.

17.4 Scan inbox — automatický import z adresáře

Pokud máš dodavatele kteří ti posílají PDF e-mailem nebo máš složku sdílených dokladů, nakonfiguruj inbox adresář v cfg.php:

'purchase_invoice' => [
    'inbox_dir'         => 'C:/inetpub/wwwroot/myinvoice.cz/inbox',
    'inbox_recursive'   => true,
    'allowed_exts'      => ['pdf', 'isdoc', 'xml'],
    'archive_storage'   => __DIR__ . '/storage/purchase-invoices',
],

V seznamu Přijaté faktury klikni 📥 Nascanovat inbox:

Modal po skončení zobrazí přehled: vytvořeno / přeskočeno / chyby + per-soubor detail.

Bezpečnost: soubory mimo configured inbox_dir jsou odmítnuty (path traversal guard přes realpath()). Maximum 500 souborů per běh (DoS protection na velké adresáře).

17.5 Klienti vs. dodavatelé

V tabulce klientů jsme zavedli dva flagy:

Některé firmy jsou současně zákazník i dodavatel (např. partnerská IT firma, kterou fakturuješ za development a od níž kupuješ hosting) — jedna entita = jedna řádka, oba flagy = 1. ARES synchronizace, kontakty, historie jsou sdílené.

V hlavním menu Klienti vidíš defaultně jen is_customer=1. V budoucí verzi přidáme oddělený view Dodavatelé pro is_vendor=1.

17.6 Audit log

Akce s přijatými fakturami jsou logované v aktivním logu (Systém → Log):

17.7 REST API

Všechny operace jsou dostupné i přes REST API (/api/v1/purchase-invoices/*) — viz Swagger UI nebo Redoc. PAT token musí mít scope read_write pro mutace.