28. Banka — import výpisů a párování plateb
Místo ručního označování faktur jako zaplacených naimportuj GPC/ABO nebo podporovaný PDF výpis z banky. Systém pohyby deduplikuje, nabídne jejich párování s doklady a v podvojném účetnictví připraví bezpečné zaúčtování.
Návrhy zaúčtování, položky vyžadující zásah a historii automatických rozhodnutí najdete souhrnně v kapitole Automat účtování.
V rozbalovacím menu konkrétního pohybu je akce Vytvořit účtovací pravidlo. Předvyplní údaje protistrany a text pohybu; podmínky i účty můžete upravit. Používá plný editor bankovních pravidel. V polích MD a D hledáte účet podle čísla i názvu; bankovní strana nabízí účty 221 a nebankovní vynechává saldokonta. Uložení vytvoří pravidlo pro další podobné platby, samotný pohyb nezaúčtuje. Akci lze použít i u již zaúčtovaného pohybu.
GPC (ABO) je standardní český formát pro elektronickou výměnu výpisů. Umí ho exportovat: KB, Fio Bank, ČSOB, Raiffeisenbank, Česká spořitelna, mBank, a další.
Místo (nebo vedle) výpisů umí systém zpracovávat i bankovní e-mailová avíza z IMAP schránky — hodí se, když banka posílá oznámení o příchozí platbě rychleji než pravidelný výpis. Konfigurace bankovních účtů, IMAP schránek a parserů má vlastní kapitolu Bankovní účty a e-mailová avíza (IMAP) — najdeš ji na dalších záložkách téže stránky Peníze → Bankovní účty.
28.1 Stažení GPC výpisu z banky
Postup je v každé bance trochu jiný:
| Banka | Cesta v internet bankingu |
|---|---|
| KB | Účet → Historie pohybů → Export → formát „GPC ABO" |
| Fio | Přehled účtu → Stažení dat → formát „GPC" |
| ČSOB | Účet → Výpisy → Stáhnout → formát „ABO" |
| Raiffeisen | Detail účtu → Pohyby → Export → ABO formát |
| ČS | Detail účtu → Výpisy → formát „ABO" |
Stáhni soubor (typicky .gpc nebo .abo, někdy .txt). Velikost ~10–100 KB na měsíc obvykle.
28.2 Upload výpisu do MyÚčto
Přímé API načítání sdružuje pohyby do jednoho výpisu za měsíc, účet a měnu. V přehledu i detailu vidíte vypočtený nebo bankou potvrzený konečný zůstatek. Tlačítko GPC stáhne dostupný bankovní originál, případně vypočtený export. Pokud chybí výchozí zůstatek nebo výpočet nelze ověřit, vypočtený export není dostupný.
Při načtení nebo opakovaném párování výpisu se doplní chybějící evidence úhrady u přesně spárované příchozí platby, která pokrývá celou dosud neuhrazenou fakturu. Existující platby a ruční označení faktury jako zaplacené se zachovají.
Jednotlivé odpovědi banky se v seznamu nezobrazují jako další překrývající se výpisy. GPC pro účet s API evidencí se začlení do stejného měsíce. Pokud pokrývá všechny jeho pohyby, nahradí API přehled jako hlavní bankovní výpis pod stejným odkazem. Zachová se párování i zaúčtování a originální GPC lze stáhnout. Neúplný GPC nesmaže pohyby, které už byly načtené přes API. PDF příloha úplného podkladu zůstane dostupná u měsíčního výpisu. Další PDF původních podkladů najdeš v nabídce akcí jeho detailu.
V hlavním menu Peníze → Bankovní účty, záložka Bankovní výpisy → tlačítko Nahrát GPC/ABO nebo PDF.

💡 PDF výpis místo GPC. Některé banky GPC/ABO export nenabízejí (Banka CREDITAS), případně ho konkrétní účet nemá zapnutý. Pro Creditas, ČSOB, KB a Raiffeisenbank proto stačí nahrát rovnou PDF výpis — systém ho deterministicky rozparsuje na transakce (bez AI) a ověří, že součet sedí na počáteční a konečný zůstatek z hlavičky (na haléř přesně). Dál to funguje úplně stejně jako GPC — párování, stavy účtů i originál ke stažení. Jeden soubor může být GPC/ABO nebo PDF, rozhoduje přípona; naráz jde vybrat i mix obojího.
Vyber soubor (drag & drop nebo klik). Po nahrání:
- Kontrola duplicit — SHA-256 odmítne opakovaný stejný soubor; stabilní otisk jednotlivých pohybů navíc přeskočí transakce, které se opakují v překrývajícím se denním a měsíčním výpisu. Několik skutečných pohybů se shodným datem, částkou, VS a popisem v jednom souboru se přitom zachová jako samostatné transakce — rozhoduje i pořadí jejich výskytu v souboru.
- Validace bankovního účtu — server zkontroluje, že číslo účtu z hlavičky výpisu patří některé z měn aktuálního dodavatele.
- Parsing transakcí — přečte všechny řádky.
- Auto-matching — nejprve se u všech pohybů vyhodnotí silné signály, zejména VS, zbývající částka, číslo dokladu ve zprávě a známý účet protistrany. Ve druhém průchodu se u dosud volných odchozích plateb bez VS zkusí přesná shoda částky, měny a data. Jednoznačná shoda se potvrdí, slabší se jen nabídne.
- Update faktur — plně uhrazený doklad dostane stav
paida datum úhrady podle bankovní transakce; nižší platba se zapíše jako částečná a sníží zbývající částku.
Výsledek rozlišuje počet pohybů nalezených v souboru, počet skutečně založených a počet automaticky spárovaných. Jestliže se některé pohyby shodují s již evidovanými, zobrazí se samostatné varování s počty nalezeno / založeno / přeskočeno jako duplicita. U dávkového nahrání se přeskočené pohyby sečtou do společného varování. Zkontroluj je, zvlášť pokud nejde o očekávaný překryv výpisů.
Pokud měsíční GPC obsahuje platby již načtené z API, připojí se k existujícím pohybům. Rozdílné bankovní reference se propojí automaticky, pokud kromě účtu, měny, data a částky souhlasí protiúčet s variabilním symbolem nebo dostatečně podrobný popis platby. Rozdíly v mezerách, interpunkci a doplněném názvu před oddělovačem se zohledňují. Každá platba musí mít jediný protějšek v obou zdrojích. Samotné datum a částka bez dalších údajů mohou vyžadovat potvrzení nalezených dvojic. Před potvrzením porovnej údaje obou zdrojů; původní párování a zaúčtování zůstane zachované. Podrobnosti jsou v kapitole Bankovní účty.
Příklad výsledku bez přeskočených duplicit:
Importováno: 12 transakcí, spárováno: 8, k manuálnímu párování: 4.
28.3 Seznam výpisů
Záložka Bankovní výpisy ukáže historii.
Nad seznamem lze hledat také uvnitř transakcí všech výpisů:
- podle libovolné části čísla protiúčtu nebo IBANu (mezery, pomlčky a lomítka se při porovnání ignorují),
- podle zákazníka nebo dodavatele, a to přes spárovanou vydanou či přijatou fakturu nebo evidovaný účet obchodního partnera,
- podle přesné částky bez ohledu na znaménko, takže například
1 500najde příchozí1 500i odchozí-1 500.
Filtry prohledávají všechny příchozí i odchozí platby a kombinují se; výsledkem jsou výpisy obsahující alespoň jednu transakci, která splňuje všechna zadaná kritéria.
V podvojném účetnictví lze navíc zvolit Výpisy s nezaúčtovanými pohyby. Seznam u každého výpisu ukáže jejich počet. Ignorované položky a provizorní e-mailová avíza se do tohoto počtu nezahrnují.
| Sloupec | Význam |
|---|---|
| Datum | Datum výpisu |
| Číslo | Číslo výpisu z banky |
| Účet | Číslo účtu / IBAN |
| Měna | CZK / EUR / … |
| Příchozí | Suma kreditních transakcí |
| Odchozí | Suma debetních transakcí |
| Spárováno | 12/14 — 12 z 14 transakcí spárováno na faktury |
| Importováno | Datum + uživatel |
V seznamu výpisů lze protistranu vyhledat psaním do filtru. Nabídka ukazuje nejvýše 50 shod; další najdeš upřesněním hledání. Vybraná protistrana zůstává součástí odkazu i uloženého filtru.
Smazání výpisu (jen administrátor) smaže výpis i s jeho transakcemi. Každý spárovaný pohyb se předtím uvolní stejně jako při Zrušit spárování: platba vzniklá párováním se z faktury odebere, faktura se vrátí do stavu podle zbývajících plateb a zaúčtovaný pohyb se v podvojném účetnictví stornuje. Opětovný import téhož výpisu pak pohyby spáruje a zaúčtuje znovu, bez dvojí úhrady. Smazání se odmítne, když by po něm v evidenci něco nesedělo:
- pohyb je zaúčtovaný v uzavřeném nebo zamčeném období, takže jeho zápis nejde stornovat,
- k platbě z pohybu je vystavený daňový doklad k přijaté platbě (nejdřív ho smaž nebo stornuj),
- výpis slouží jako doklad o vyplacení mezd nebo je součástí měsíční evidence bankovního API.
28.3.1 Všechny pohyby
Záložka Všechny pohyby je společný přehled transakcí napříč výpisy, účty a roky. Na rozdíl od fronty K zaúčtování ukazuje i již spárované a zaúčtované pohyby. U každého řádku vidíš náš zdrojový účet, účet protistrany, výpis, párování a stav zaúčtování.
Akce jsou stejné jako v detailu konkrétního výpisu: otevření nebo zrušení párování, rozdělené párování, vytvoření dokladu, přiložení podkladu, vyžádání dokladu, ignorování i ruční zaúčtování. Po provedené akci se aktualizuje tentýž řádek; není nutné dohledávat původní výpis. Filtry podle našeho účtu, data, částky, protistrany, párování a zaúčtování lze kombinovat.
28.4 Detail výpisu
Klik na řádek → detail.
Zůstatky z API a export GPC
U pohybů z API tlačítko GPC vytváří export v profilu ČSOB/CREDITAS (CP1250, řádky 074/075/078/079). Export obsahuje všechny evidované zaúčtované pohyby stejného účtu a měny od začátku měsíce do data zvoleného výpisu. Není omezený stránkováním ani filtrem tabulky. Avíza se nezahrnují a pohyb sdílený mezi API a GPC se započítá jednou. Původní JSON z API slouží interně, v uživatelském rozhraní se nenabízí ke stažení.
Výpočet navazuje na poslední předchozí GPC nebo PDF se známým konečným zůstatkem. Přičte příjmy a odečte výdaje, včetně evidovaných pohybů mezi výchozím výpisem a začátkem měsíce. Pokud u API účtu není žádný známý počáteční ani konečný zůstatek, výpočet začíná od nuly a zahrne všechny evidované pohyby účtu v dané měně až do data výpisu. Pohyby před začátkem měsíce tvoří jeho počáteční zůstatek. Tento výchozí předpoklad odpovídá novému účtu s nulovým zůstatkem; u účtu se starší historií nahraj předchozí bankovní výpis. Známý zůstatek se nulou nenahrazuje.
Zůstatek je označený jako vypočtený a předpokládá úplnou evidenci pohybů. Po nahrání originálního bankovního výpisu ke stejnému koncovému dni se porovná s bankovním zůstatkem. Shoda se zobrazí jako potvrzená, rozdíl zablokuje nový export a ukáže částku ke kontrole. Výpočet probíhá při čtení, takže není potřeba ruční přepočet. Původní zůstatky, párování ani účetní zápisy se nepřepisují a nevytváří se dorovnávací platba.
Export má označení MYUCTO EXPORT a není originálním výpisem banky. Zpětný import tohoto exportu do MyÚčta je odmítnutý, aby se vypočtené údaje nevydávaly za bankou potvrzené. Pro ověření nahraj originální GPC z banky. Dlouhé bankovní reference se přesouvají do doplňujícího textu a základní řádek dostává lokální identifikátor. Formát není totožný s KB KM ani s rozšířeným ABO České spořitelny; v cílovém programu zvol profil GPC kompatibilní s ČSOB. Zahraniční protiúčet, který se nevejde do domácího pole, se uvádí v popisu. Delší popisy se zkracují na kapacitu formátu.
Technické specifikace: ČSOB GPC a CREDITAS GPC.
Po nahrání originálního GPC se jeho pohyby propojí s již evidovanými pohyby z API. Jejich ID, párování i zaúčtování zůstávají zachované. Pokud GPC pokrývá pohyby zobrazeného období, detail API nabídne odkaz na bankovní výpis a tlačítko GPC stáhne originál místo dopočítaného exportu. Původní API podklad zůstává zachovaný pro dohledatelnost. Nejednoznačné shody import zastaví k prověření. Samotná PDF příloha u API výpisu bez zpracovaných zůstatků nepotvrzuje výpočet; v takovém případě je dopočítaný export zablokovaný, dokud jej nenahradí GPC.
Tabulka transakcí:
Dialog Zaúčtovat předvyplňuje analytiku vlastního bankovního účtu a u spárované úhrady kontaci podle faktury. Používá stejný výpočet jako účetní zpracování, včetně víceřádkového rozúčtování. Pokud nelze kontaci bezpečně připravit, zobrazí důvod a odeslání zablokuje. Po ručním zrušení zaúčtování zůstává faktura spárovaná a kontaci lze znovu nabídnout; zápis se neobnoví samotným otevřením dialogu.
Pohyb použitý k úhradě mzdového závazku má stav Spárováno se mzdami. Označení zaúčtování otevře existující zápis úhrady v účetním deníku, ať vznikl z banky, nebo ze mzdového modulu. Pokud zápis vytvořily mzdy, banka další zaúčtování nenabízí a starší návrh kontace se zneplatní. Párování s fakturou se u mzdové úhrady nenabízí. Pokud mzdové párování účetní zápis nevytvořilo, lze pohyb ručně zaúčtovat v bance. Částečné mzdové zaúčtování má vlastní označení a pohyb zůstává mezi nezaúčtovanými, dokud zápisy nepokryjí celou částku. Příprava mzdového příkazu, e-mailové avízo ani prohlášení Zaplatil jsem samy bankovní úhradu do deníku nezapisují. Skutečný pohyb z API nebo výpisu se propojí s mzdovým závazkem a zaúčtuje pouze jednou.
| Sloupec | Význam |
|---|---|
| Datum | Datum zaúčtování |
| Částka | + (kredit) / − (debet) |
| Měna | |
| Protistrana | Název + číslo účtu (pokud bance zaslala) |
| VS | Variabilní symbol z transakce |
| KS / SS | Konstantní / specifický symbol |
| Popis | Poznámka z banky |
| Stav | Spárováno (zelená) / Bez shody (šedá) / Ignorováno (oranž.) |
| Faktura | Pokud spárováno, číslo faktury (klikatelné) |
Odchozí platby se u přijatých faktur párují také podle platebního variabilního symbolu, vedle interního a dodavatelského čísla dokladu. Doslovná shoda má přednost před numerickou normalizací; nejednoznačné shody vyžadují kontrolu. Očekávaná částka zahrnuje zaokrouhlení dokladu, odečtené zálohy a již zaevidované úhrady. Zaokrouhlení se zohledňuje také při náhradním hledání podle protistrany nebo částky a data a při vrácení peněz z přijatého dobropisu.
28.4.1 Částečné platby (více převodů na jednu fakturu)
Příchozí platba se shodným variabilním symbolem, ale nižší částkou než zbývá uhradit, se zaeviduje jako částečná úhrada (záznam v boxu Platby detailu faktury) — faktura zůstává pohledávkou se sníženým zůstatkem a badge Částečně uhrazeno. Další převody se přičítají; jakmile platby pokryjí částku k úhradě, faktura se označí jako zaplacená (paid_at = datum poslední platby). U zálohové faktury se k částečné platbě plátci DPH rovnou připraví koncept daňového dokladu k přijaté platbě (viz § 11.1.2); doplatek zálohy, ke které už existuje finální doklad, se eviduje na finál. Stejně fungují platby z e-mailových avíz (29. Bankovní účty).
U cizoměnové faktury placené na CZK účet se přepočet kurzem dokladu použije jen k rozpoznání platby. Pokud se CZK pohyb vejde do devizové tolerance, zaeviduje se jako úhrada celého zbývajícího obnosu v měně faktury. Skutečná CZK částka zůstává beze změny na bankovní transakci; nemusí se rovnat částce faktury násobené kurzem dokladu. Výrazně nižší platba se nadále eviduje jako částečná úhrada přepočtená kurzem faktury. V podvojném účetnictví zůstává bankovní noha 221 ve skutečné CZK částce, pohledávka 311 se odúčtuje kurzem předpisu a rozdíl se zachytí na 563/663.
28.4.2 Manuální párování
Pro transakce, které se nespárovaly automaticky (typicky chybí VS, nebo částka nesedí kvůli devizovému kurzu či bankovnímu poplatku):
- MyÚčto nejprve nabídne skórovaný návrh přímo pod transakcí. U každého kandidáta ukáže slovní jistotu a důvody, například shodný VS, zbývající částku, číslo faktury ve zprávě, známý účet protistrany nebo blízké datum splatnosti.
- Správného kandidáta lze potvrdit jedním kliknutím; chybný návrh zamítni. Přeplatek, podezření na překlep ve VS, rozdílná měna, zálohová faktura a částka snížená o poplatek se nikdy nepotvrdí automaticky.
- Potvrzené účty zákazníků a dodavatelů se ukládají do jejich evidence. Teprve po třech bezchybných shodách může známý účet pomoci s automatickým párováním platby bez VS; zrušení chybného párování tuto důvěru okamžitě sníží.
Skóre je dohledatelné složení signálů, nikoli odhad AI. Automatické potvrzení vyžaduje skóre nejméně 85 %, náskok alespoň 15 procentních bodů před druhým kandidátem a deterministické jádro: přesný VS, známý ověřený účet nebo jednoznačný součet více dokladů. Návrh od 35 % se může zobrazit k ručnímu posouzení. Překlep ve VS, přeplatek, rozdíl odpovídající poplatku, rozdílná měna nebo proforma automatické potvrzení vždy blokují bez ohledu na skóre.
Když nabídka nesedí, pokračuj klasickým ručním výběrem:
- Klik Spárovat → otevře se modal s vyhledávačem.
- Najdeš fakturu (číslo / klient / částka).
- Vyber a potvrď.
Ve stejné měně se zaeviduje platba ve výši transakce. U CZK platby cizoměnové faktury, která odpovídá celému zbytku v devizové toleranci, se faktura vyrovná celým zbytkem v její měně; přesný CZK pohyb zůstane na bankovní transakci. Výrazně nižší částka je částečná úhrada. Plné pokrytí označí fakturu paid (paid_at = datum transakce).
U odchozí platby bez VS může druhý průchod automaticky potvrdit jednu běžnou přijatou fakturu, pokud přesně sedí částka i měna, datum vystavení nebo splatnosti je nejvýše 14 dní od platby a na výpisu není jiný volný pohyb stejné částky. Doklad nesmí být uhrazen bankou, hotovostí ani zápočtem. U faktury už označené jako uhrazená musí navíc přesně sedět datum úhrady a název obchodníka musí mít společný významný token s názvem dodavatele. Jakákoli nejednoznačnost zůstane k ruční kontrole. Activity log: bank.matched_manual.
Sloučená úhrada (jedna platba na více faktur)
Když klient zaplatí víc vystavených faktur jednou platbou (součet sedí, ale variabilní symbol odpovídá jen jedné faktuře — nebo žádné), nabídne modal pod vyhledávačem sekci Sloučená úhrada. MyÚčto sám hledá kombinace faktur téhož klienta, jejichž součet odpovídá částce platby, ve výchozím okně ±7 dní kolem data platby. Klient se jménem podobným protistraně se nabízí první.
- Klik Spárovat → v sekci Sloučená úhrada se zobrazí návrhy kombinací (klient, jednotlivé faktury s částkami a datem, celkový součet).
- U správné kombinace klik Spárovat (N faktur).
- Každá faktura se uhradí svým plným zbytkem a označí jako zaplacená; zálohové faktury dostanou koncept finálního dokladu jako u běžné úhrady.
Pomůcky:
- Hledat v širším okně — když faktury vystavené dál od sebe (např. ±14 dní), rozšiř okno tlačítkem nad návrhy.
- Vyber fakturu a dohledej zbytek — pokud víš o jedné faktuře, která do platby patří, vyber ji v našeptávači; návrhy se omezí na kombinace, které ji obsahují.
Omezení (záměrná, kvůli správnosti): kombinace jdou jen v rámci jednoho klienta a součet musí odpovídat částce platby (sloučená úhrada = uhradit všechny vybrané faktury celé; není to rozpouštění jedné platby na částečné úhrady). Zrušení spárování (§ 28.5) smaže všechny platby té transakce a vrátí všechny faktury zpět mezi pohledávky. Activity log: bank.tx_manual_match_split.
Tlačítko s ikonou oka otevře detail pohybu včetně protistrany, účtů, platebních symbolů, stavu, spárovaných faktur a nezkráceného popisu i poznámky. Je dostupné v detailu výpisu i mezi všemi pohyby, v tabulce a na mobilu. Po ignorování nebo zrušení spárování se seznam obnoví na pozadí se zachováním filtrů; v detailu výpisu zůstávají načtené i další stránky pohybů.
28.4.3 Ignorovat transakci
Pro transakce, které nejsou platby faktur (poplatky, převody mezi vlastními účty, refundace, …):
- Klik Ignorovat.
- V potvrzovacím dialogu můžeš doplnit vlastní poznámku (nejvýše 1000 znaků).
- Potvrď Ignorovat. Stav a poznámka se aktualizují přímo v seznamu bez opětovného načtení stránky; nastavený filtr zůstává zachovaný. Při filtru Bez shody transakce ze seznamu zmizí.
Poznámka je uložená u transakce a zobrazuje se u ignorovaného pohybu i při příštím otevření výpisu, v tabulce i na mobilu. Zrušení dialogu nic nemění.
Akce Zrušit spárování, u ignorovaného pohybu Zrušit ignorování, otevře potvrzovací dialog s datem, částkou a protistranou. Zrušení ignorování vrátí pohyb mezi pohyby bez shody. Pokud má pohyb poznámku k ignorování, dialog ji zobrazí a upozorní na její odstranění. Po potvrzení se poznámka smaže; zrušení dialogu ji zachová. Po potvrzení se řádek a počet spárovaných transakcí aktualizují bez reloadu; filtr zůstává zachovaný. Případná chyba se zobrazí přímo v dialogu.
28.4.4 Vytvoření přijaté faktury z výpisu (doklad o úhradě)
U odchozí (záporné) platby, ke které ještě nemáš v systému přijatou fakturu, můžeš rovnou založit její koncept přímo z výpisu:
- Detail výpisu → najdi odchozí transakci → klik Vytvořit fakturu.
- Vyber existujícího dodavatele (nebo klik Nový dodavatel a založ ho). Dodavatel se nezakládá automaticky — musíš ho potvrdit.
- Potvrď → vznikne koncept přijaté faktury v hrubé částce platby (1 položka, 0 % DPH) a rovnou se otevře v editoru.
- V editoru doplň rozpad DPH, skutečné číslo dokladu a nahraj PDF.
Variabilní symbol z platby se předvyplní do pole VS; číslo dokladu dostane dočasný placeholder BANK-{id} (přepiš ho na reálné číslo z faktury). Platba se zároveň spáruje na nově vzniklý koncept (vazba, ne paid — to potvrdíš až po finalizaci faktury).
💡 Tlačítko „Otevřít" u spárované transakce přeskočí na navázanou fakturu (vydanou i přijatou).
28.5 Reverse: zrušení spárování
Pokud automatika spárovala chybně:
- Detail výpisu → najdi transakci → klik Zrušit párování.
- Platba vzniklá párováním se z faktury odebere a stav faktury se přepočte ze zbývajících plateb. Faktura, kterou kryje jiná platba, zůstává zaplacená; jinak se vrátí na předchozí stav (
sent/issued). - Zaúčtovaný pohyb se stornuje. V uzavřeném nebo zamčeném období storno nejde a párování zůstane beze změny.
- Activity log:
bank.tx_unmatch.
Ruční párování na fakturu, kterou už evidované platby plně kryjí, se odmítne. Vyšší platba se na faktuře zaeviduje jen do výše zbývající částky, stejně jako u automatického párování. Pokud platby faktury přesto přesahují částku k úhradě, úhrada se nezaúčtuje automaticky a čeká ve frontě K zaúčtování na kontrolu dvojí úhrady.
28.6 Cron — automatický scan
Místo ručního uploadu můžeš nastavit cron, který bude pravidelně skenovat adresář (např. private/bank-incoming/) a importovat nové výpisy:
cmd/cron-bank-scan.sh # každých 30 minut
Setup:
- Banka pravidelně exportuje výpis e-mailem nebo SFTP do
private/bank-incoming/ - Cron každých 30 min spustí
php api/bin/cron-bank-scan.php - Skript projde nové soubory, importuje, přesune do
private/bank-archive/
28.7 Automatické zaúčtování spárovaných plateb (jen podvojné účetnictví)
Firmám vedoucím podvojné účetnictví MyÚčto po každém spárování/importu rovnou nabídne (a u opakovaných plateb i samo vytvoří) zápis do Účetního deníku. Daňová evidence žádný deník nemá — u ní se tato sekce, záložky ani tlačítka vůbec nezobrazují a bankovní modul funguje jen jako párování plateb popsané výše.
Automatika žije na stránce Peníze → Bankovní účty, kde firmě s podvojným účetnictvím přibudou vedle Bankovních výpisů záložky Všechny pohyby, K zaúčtování a Pravidla účtování:
- K zaúčtování — fronta návrhů čekajících na schválení, s odznáčkem počtu čekajících položek přímo na záložce. Výchozí podzáložka Nezaúčtované pohyby obsahuje všechny skutečné pohyby bez aktivního zápisu, tedy i ty, pro které automatika žádný návrh kontace nevytvořila. Historie návrhů zůstává v samostatné podzáložce.
- Pravidla účtování — naučená pravidla pro opakované platby bez dokladu (odvody, poplatky, úroky).
Přímo v detailu výpisu (§ 28.4) navíc uvidíš u každé transakce aktuální stav zaúčtování a tlačítko podle situace — Zaúčtovat…, Schválit / Odmítnout, nebo u zaúčtovaného pohybu dvojici Přeúčtovat a Zrušit zaúčtování. Nad transakcemi lze filtrovat všechny / nezaúčtované / zaúčtované pohyby; filtr se kombinuje s filtrem stavu párování.
Přeúčtovat vs. Zrušit zaúčtování. Obojí míří na už zaúčtovaný pohyb, ale dělá něco jiného:
| Akce | Co udělá | Kdy jde |
|---|---|---|
| Přeúčtovat | otevře řádky existujícího zápisu k opravě a zapíše opravenou kontaci; pohyb zůstane zaúčtovaný | i v zamčeném nebo uzavřeném období (tam vznikne storno a nový zápis) |
| Zrušit zaúčtování | zápis stornuje a pohyb vrátí nezaúčtovaný do fronty | jen když je období původního zápisu otevřené a nezamčené |
Přeúčtování hlídá tytéž bankovní podmínky jako ruční zaúčtování: pohyb na účtu 221 musí sedět na částku z výpisu a bankovní noha se sama doplní na analytiku vlastního účtu výpisu. Celý postup i chování v zamčeném období popisuje § 48.8.2.
Automaticky zaúčtovanou transakci od ručního zápisu odliší odznak Automaticky. U návrhů je v přehledu vidět také stručné Proč — například název pravidla nebo informace, že návrh vznikl ze shody platby. Podrobné auditní vysvětlení hotového zápisu — tedy jestli za kontací stojí pravidlo účtování, vestavěné rozpoznání, naučená kontace, předkontace payment.* u spárované platby, nebo ruční přeúčtování — najdeš po jeho rozbalení v Účetním deníku, viz § 48.8.3.
28.7.1 Spárované platby faktur — přímý zápis
Jakmile se transakce spáruje s fakturou (automaticky dle VS, ručně nebo jako sloučená úhrada — § 28.4), MyÚčto se ji hned pokusí zaúčtovat. Konkrétní zápis závisí na typu dokladu:
- běžná vydaná faktura → MD 221 Bankovní účty / D 311 Odběratelé (skutečné účty bere z předkontace
payment.receivable.bank, pokud ji máš upravenou), - běžná přijatá faktura → MD 321 Dodavatelé / D 221 (
payment.payable.bank), - zálohová (proforma) faktura → MD 221 / D 324 Přijaté zálohy (inkaso zálohy) — proforma není daňový doklad a nemá vlastní zaúčtovaný předpis, proto se účtuje rovnou jako záloha, ne jako saldokonto 311,
- zálohová přijatá faktura → MD 314 Poskytnuté zálohy / D 221 — symetricky k předchozímu bodu,
- vrácení vydaného dobropisu odběrateli → MD 311 / D 221,
- refundace přijatého dobropisu od dodavatele → MD 221 / D 321.
Každý bankovní účet má svou analytiku. Účet 221 se nikdy nepoužívá plochý: bankovní strana zápisu padá na analytiku toho účtu, ze kterého je výpis — 221.100, 221.200, 221.300 … (o tečkovaném zápisu viz § 84.3.1). Číslo se přiděluje automaticky (první volné, které v účtovém rozvrhu nekoliduje) a najdeš i změníš ho v Nastavení → Bankovní účty → Kontace účtů. Díky tomu sedí zůstatek každé analytiky přesně na výpis daného účtu, inventarizace k rozvahovému dni se dá doložit výpisem a cizoměnové účty se přeceňují automaticky, bez míchání měn. Tam, kde text níž mluví o účtu 221, jde tedy o analytiku konkrétního účtu. Historické zápisy, které vznikly dřív, zůstávají na syntetice 221 — přesun na analytiky je účetní reklasifikace k datu a dělá se ručně, v otevřeném období.
U sloučené úhrady nebo částečných plateb rozdělených na víc faktur vznikne zápis s tolika řádky na straně 311/321 (resp. 324/314 u záloh), kolik je alokací; rozdíl do 1 Kč (zaokrouhlení, bankovní poplatek v alokaci) se dorovná automaticky na účet 648 (výnos) nebo 548 (náklad) — nad tuto toleranci se transakce nezaúčtuje sama a čeká na ruční zásah.
Než se zápis vytvoří, MyÚčto ověří:
- transakce je buď v CZK, nebo — u spárované platby — ve stejné cizí měně jako faktura (viz cizoměnové spárované platby níže),
- běžná faktura/přijatá faktura má svůj vlastní zaúčtovaný předpis v Účetním deníku (a ten není stornovaný) — bez zaúčtovaného předpisu se platba jen spáruje, ale nezaúčtuje. Zálohová (proforma) faktura ani zálohová přijatá faktura tuto podmínku nemají — nejsou daňový doklad, takže žádný „svůj" předpis v deníku ani nemají, a účtují se rovnou podle výše,
- účetní období transakce je otevřené.
Když některá podmínka nesedí (uzavřené období, faktura označená jako uhrazená bez evidované platby k ověření apod.), zápis se nevytvoří rovnou, ale místo něj přibude návrh v záložce K zaúčtování s vysvětlením v poznámce (např. „uzavřené období", „faktura už je označena jako zaplacená — ověřte"). Platby bez zaúčtovaného předpisu běžné faktury (ne zálohy), stejně jako křížová měna nebo CZK doklad placený cizí měnou, se nezaúčtují automaticky. Nevyřešený skutečný pohyb zůstane dohledatelný ve Všech pohybech a v jednotné frontě Účetnictví → K doúčtování, i když pro něj nevznikla kontace.
Vyúčtovací faktura ze zálohy. Když později zaúčtuješ finální (vyúčtovací) fakturu navázanou na zálohu (viz § 23.3.1 nebo § 15.8), zápis automaticky doplní i zúčtovací řádek zálohy (324/311 resp. 321/314) ve výši skutečně přijaté/zaplacené zálohy, nejvýše však do celkové částky vyúčtovacího dokladu. Případný přeplatek zůstane na 324/314 do vrácení nebo dalšího vyúčtování; částka se neodvozuje z nominální hodnoty proformy. Kombinace proforma s daňovým dokladem k přijaté platbě a vyúčtováním zároveň, nebo proforma s víc než jednou vyúčtovací fakturou, je mimo automatiku — takový zápis zaúčtuj ručně.
Zaúčtování spárované platby je idempotentní vůči transakci — přepárování (změna alokace, sloučená úhrada místo jednoduché) přepíše týž zápis, nevznikne duplicita. Zrušení spárování (§ 28.5) naopak zápis nejdřív stornuje (opravný zápis v deníku) a teprve pak fakturu vrátí mezi pohledávky/závazky — pokud je účetní období zápisu už uzavřené, zrušení spárování se nedokončí (hláška o uzavřeném období) a musíš nejdřív období otevřít nebo počkat na účetní.
28.7.1.1 Cizoměnové spárované platby (kurzový rozdíl)
Faktura v cizí měně (EUR, USD…) placená stejnou cizí měnou bankovní transakcí (na devizový účet) se zaúčtuje automaticky, včetně kurzového rozdílu. Stejně se zaúčtuje jednoznačně spárovaná CZK karetní platba za cizoměnovou přijatou fakturu — u ní nemusí být variabilní symbol a CZK částka se může lišit podle kurzu karetní asociace:
- saldokonto (311/321) se odúčtuje v CZK hodnotě předpisu — cizí částka přepočtená kurzem, který byl zafixovaný při zaúčtování faktury,
- banka (221) se zaúčtuje v CZK hodnotě skutečné úhrady — cizí částka přepočtená pevným měsíčním/ročním kurzem firmy, pokud je zvolený, jinak kurzem ČNB ke dni bankovní transakce,
- rozdíl mezi oběma jde na 563 (kurzová ztráta) nebo 663 (kurzový zisk) — stejné účty jako u ročního kurzového přecenění.
U platby stejnou cizí měnou fungují i částečné a sloučené úhrady (poměrná část na alokaci). CZK karetní platba za cizoměnový doklad se automaticky účtuje jen při jednoznačné vazbě 1:1 na celý doklad. Drobný nealokovaný zbytek do jedné jednotky cizí měny se vede odděleně jako provozní vyrovnání na 548/648, nikoli jako kurzový rozdíl. Mimo automatiku zůstává: křížová cizí měna (faktura v EUR placená v USD), CZK doklad placený cizí měnou a zálohová (proforma) faktura / zálohová přijatá faktura v cizí měně. Valutová pokladna umí samostatné hotovostní prodeje, nákupy a ostatní pohyby, ale úhradu cizoměnové faktury z pokladny záměrně blokuje; viz Pokladna.
Historické spárované transakce zaúčtuje správce příkazem php api/bin/backfill-bank-posting.php --supplier=<ID> --apply. Bez --apply se vypíše pouze dry-run. Back-fill respektuje existující párování i bez VS, bezpečně naváže jedinou odpovídající legacy platbu a plně kryté položky označené auto_partial uzavře jako plné. Nejednoznačné nebo skutečně částečné vazby nechá k ruční kontrole.
Nespárované transakce (odvody, poplatky, převody mezi vlastními účty) back-fill ve výchozím stavu vůbec nevyhodnocuje. S --rules je vyhodnotí, ale výsledek uloží vždy jen jako návrh. S --auto (implikuje --rules) se řídí nastavením Automatika účtování dané firmy: co má úroveň auto, dávka rovnou zaúčtuje, co má suggest, navrhne jako dosud. Firma bez nastavené automatiky má výchozí suggest, takže se pro ni ani s --auto nic nemění. Zavřená a schválená období se přeskočí (period_closed) bez ohledu na přepínače.
28.7.2 Pravidla účtování opakovaných plateb
Z rozbalovacího menu pohybu lze otevřít Vytvořit účtovací pravidlo. Otevře se stejný formulář jako na záložce Pravidla účtování, předvyplněný protistranou, zprávou, směrem, měnou a dostupnou kontací pohybu. Částka pohybu není výchozí účtovanou částkou; volitelný rozsah od/do zadáte sami nebo pomocí procentního rozpětí. Uložení pravidla samo pohyb nezaúčtuje.
Platby bez faktury (odvody na OSSZ/ZP, bankovní poplatky, úroky, leasing…) se neúčtují samy od prvního výskytu — na záložce Pravidla účtování si pro ně založíš pravidlo:
- Tlačítko Nové pravidlo → formulář: název, směr (příchozí/odchozí), aspoň jedno kritérium shody — protiúčet (+ volitelně kód banky), variabilní symbol, nebo fragment zprávy (podřetězec v popisu platby), volitelně rozsah částky (od–do), a kontace (účet MD/D). Pole Priorita určuje pořadí vyhodnocení (nižší číslo má přednost) a Limit pro automatiku může nad zadanou částkou vynutit pouze návrh, i když je pravidlo povýšené na automatické.
- Bankovní strana kontace musí být účet 221 (dle směru), druhá strana nesmí být saldokontní účet (311/321/314/324/325) — na spárované platby faktur pravidla nesahají, ty řeší § 28.7.1.
- Tlačítko Otestovat na historii (dry-run) ukáže, kolika transakcím za posledních 12 měsíců by pravidlo sedělo a kolik z nich je už zaúčtovaných — pomůže odladit kritéria dřív, než pravidlo uložíš.
- Při uložení nabídne zaškrtávátko „Navrhnout zaúčtování N historických plateb" (jen když dry-run něco našel) — vytvoří rovnou návrhy pro dosud nezaúčtované historické transakce v otevřených obdobích (max 200 položek).
U již uloženého aktivního pravidla lze stejný bezpečný běh spustit v seznamu tlačítkem Použít na historii. Zpracují se jen dosud nezaúčtované transakce v otevřených obdobích (max. 200) a vzniknou pouze návrhy ke schválení; opakované spuštění nevytváří duplicity. Nevyplněná dolní nebo horní mez částky znamená „bez omezení" na dané straně intervalu, nikoli částku 0 Kč.
Nové pravidlo vždy jen navrhuje (režim Návrh) — po importu vytvoří položku v K zaúčtování, kterou potvrdíš Schválit (případně přes ikonu ozubeného kolečka přepíšeš kontaci) nebo Odmítnout. Po pěti potvrzeních za sebou beze změny, bez odmítnutí a s vyplněným rozsahem částky se nabídne Povýšit na automatiku. Režim se nikdy nepřepne sám — povýšení vždy potvrdí člověk. Od dalšího výskytu se zápis vytvoří bez čekání ve frontě (transakce zůstane vidět v historii se štítkem, kdo/co ji zaúčtovalo).
Když transakci odpovídá víc aktivních pravidel najednou, MyÚčto nikdy neúčtuje automaticky — vytvoří návrh podle pravidla s vyšší úspěšností a označí to jako konflikt, ať si kontaci zkontroluješ ručně. Opakované odmítnutí téhož pravidla (3× po sobě u různých transakcí) ho samo deaktivuje — na to tě upozorní hláška při odmítnutí; pravidlo pak najdeš v seznamu vypnuté a můžeš ho opravit nebo smazat.
Nesedí-li žádné aktivní pravidlo, ale MyÚčto najde v posledním roce jedinou stejnou dvouřádkovou kontaci už dřív zaúčtovanou pro stejný protiúčet (a sedí-li VS, je-li vyplněný), nabídne rovnou naučený návrh — i bez založeného pravidla. Z libovolného ručního zaúčtování transakce navíc systém umí nabídnout „Podobná platba se opakuje…" → Vytvořit pravidlo s předvyplněnými kritérii i kontací, ať příště nemusíš zadávat nic ručně. Ruční opravy mají přednost před starší historií; naučený návrh zobrazí datum a změnu kontace. Rozporné opravy nový návrh nevytvoří.
Pravidlo v režimu Automaticky zaúčtuje stejně, ať výpis nahraješ ručně nebo ho naimportuje cron (§ 28.6) — motor automatiky je pro obě cesty stejný. Výjimka je zpětné doplnění historie při zakládání nového pravidla (§ 28.7.2, bod 4) — to i pro pravidlo v režimu Automaticky vždy jen navrhne, nikdy nezaúčtuje samo, ať máš na staré transakce jistotu, než je potvrdíš.
28.7.3 Vlastní převody mezi bankovními účty
Pohyb mezi dvěma bankovními účty téže firmy MyÚčto rozpozná podle účtu výpisu a protiúčtu. Ve frontě K zaúčtování jej označí štítkem 🔁 Vlastní převod a nabídne samostatné zaúčtování každé bankovní transakce přes účet 261 — Peníze na cestě:
- odchozí pohyb se účtuje MD 261 / D 221,
- příchozí pohyb se účtuje MD 221 / D 261.
Obě nohy se propojí, jakmile dorazí ve výpisech. V detailu výpisu lze přejít na druhou nohu; dokud ještě nedorazila, zůstává zůstatek 261 doloženým převodem na cestě. To je běžné například při odeslání 31. prosince a připsání 2. ledna.
Převod mezi účty v různých měnách systém pouze označí k ručnímu zaúčtování, protože je potřeba zohlednit kurzový rozdíl. Pokud už existuje podobný ruční zápis přes 261, automatika upozorní na možné zdvojení a bez kontroly jej nezaúčtuje. Stejné varování se zobrazí při ručním zadání převodu, ke kterému už existuje bankovní transakce.
28.7.4 Odvody ČSSZ, zdravotním pojišťovnám a finančnímu úřadu
Odchozí korunové platby na účty vedené u ČNB (kód banky 0710) MyÚčto rozpoznává samostatně. Nejprve hledá odpovídající předpis zálohy na daň, sociální nebo zdravotní pojištění podle variabilního symbolu, data splatnosti a částky. Pokud předpis nenajde, určí druh odvodu z variabilního symbolu firmy a předčíslí účtu finančního úřadu. Platby mimo banku 0710 tento detektor nikdy nepřebírá.
Rozpoznaný odvod se zobrazí ve frontě s kontací 336/341/342/343/345 proti 221, údajem Jistota a lidským vysvětlením. Platba i vratka DPH míří na zúčtovací analytiku 343.900 — tedy přesně na účet, na kterém po měsíčním zúčtování DPH (§ 84.3.3) leží skutečný závazek vůči finančnímu úřadu; firma bez analytik účtuje jako dřív na holou 343. Nejasný odvod zůstane pouze návrhem. Pokud na zúčtovacím účtu chybí zaúčtovaný předpis nebo jeho kreditní zůstatek nestačí na platbu, automatika zápis sama neprovede, aby nevytvořila debetní zůstatek závazku.
Na stránce Pravidla účtování lze tlačítkem Ze šablony založit připravené pravidlo pro odvody, bankovní poplatky, úroky, nájem nebo předplatné. Šablona doplní identifikátory z nastavení firmy a vždy vznikne v režimu Návrh. Firemní katalog se spravuje v Nástroje → Šablony bank. pravidel podle oprávnění bank.rules. Změna šablony ovlivní její budoucí použití v aktuální firmě; už dříve vytvořená pravidla se zpětně nemění. Použitou šablonu lze deaktivovat, ale ne smazat.
Fronta má vedle běžných návrhů také záložku Potřebuje mě. Sdružuje položky, které vyžadují rozhodnutí, i blokované položky z uzavřeného období. Jednotlivou položku lze po kontrole schválit; blokované a AI návrhy se nikdy neschvalují hromadně.
28.8 Tipy
- Nahraj výpis denně/týdně** — čím čerstvější, tím dříve se ti vyfiltrují faktury po splatnosti správně.
- VS je nejsilnější signál, ale není jediný. Bez něj MyÚčto vyhodnotí částku, zprávu, datum, název a dříve ověřený účet protistrany; nejednoznačnou shodu nechá vždy k potvrzení. Klienty přesto veď k vyplňování VS.
- Platby kartou (bez VS) se po dokončení párování podle silných signálů zkusí spárovat na přijatou fakturu podle přesné částky, měny a data. Musí jít o jediný volný doklad i jediný volný pohyb této částky; u dokladu už označeného jako uhrazený se kontroluje také datum úhrady a podobnost názvu dodavatele. Jinak platba zůstane k ručnímu párování / založení dokladu (viz § 28.4.4).
- Částečné platby (klient pošle míň, ale VS sedí) se u vydaných faktur evidují automaticky jako částečná úhrada (viz § 28.4.1). U přijatých faktur se podplatba jen označí k ruční kontrole. Toleranci přesné shody lze ladit v
cfg.php→bank.matching.tolerance; u bankovních e-mailových avíz ji nastavíš přímo v mapování účtu. - Devizový kurz — pokud klient pošle EUR a faktura je v CZK, transakce nebude spárovaná (jiná měna). Manuálně. Pokud je ale faktura v EUR a klient zaplatí přímo eurem na tvůj EUR účet, taková spárovaná platba se dnes zaúčtuje automaticky i s kurzovým rozdílem — viz § 28.7.1.1.
- Bankovní poplatek — pokud u korunové dávky banka strhla z 10 000 Kč poplatek 200 Kč, na účet dorazí 9 800 Kč. MyÚčto může nabídnout sloučené párování celé dávky a po potvrzení připraví návrh vyváženého zápisu s poplatkem na účtu 568; bez kontroly jej samo nezaúčtuje.
28.9 Přímé napojení na banku (API)
Kromě ručního nahrání GPC/ABO nebo PDF (§ 28.2) umí MyÚčto pro vybrané banky stahovat pohyby přímo přes bankovní API a u většiny z nich i předávat platební příkazy. Napojení se zakládá na stránce Peníze → Bankovní účty, záložka Měny a účty, v sekci Přímé napojení na banku u konkrétního měnového účtu. Podrobný postup založení pro každou banku (přístupové údaje, certifikáty, OAuth souhlas) je v § 29.1.3. Tahle sekce shrnuje, co napojení jako celek umí, jaké má limity a jak je to bezpečnostně řešené.
28.9.1 Podporované banky
| Banka | Kód | Technologie | Pohyby | Odeslání příkazu |
|---|---|---|---|---|
| KB Business (KB+) | 0100 | Extra služba API Business — OAuth2, ADAA (pohyby) + BATCHDA (dávky) | ano | ano, se souhlasem bpisp (§ 28.9.6) |
| Fio banka (ČR i SR) | 2010, 8330 | API token vázaný na konkrétní účet | ano | ano |
| ČSOB | 0300 | CEB Business Connector — číslo smlouvy + komunikační certifikát | ano | ano |
| Raiffeisenbank | 5500 | Premium API — Client ID + certifikát | ano | ano |
| Česká spořitelna | 0800 | Premium Accounts API v3 — OAuth2 Authorization Code | ano | ne (zatím neimplementováno) |
| Banka CREDITAS | 2250 | Bearer token, volitelně mTLS certifikát | ano | ano |
Přehled bank se v sekci zobrazuje vždy; v seznamu účtů pod ním se nabízí jen účet, jehož kód banky konektor podporuje — ostatní účty tam nejsou vidět. Každý měnový účet má vlastní přístupové údaje a vlastní stav napojení (aktivní / pozastavené / odpojené).
28.9.2 Co napojení dělá s pohyby
Stažené pohyby se ukládají jako bank_api a slučují do jednoho měsíčního výpisu pro danou firmu, účet, kód banky a měnu — opakované načtení stejného období doplní tentýž výpis, překrývající se pohyby se nezapočítají podruhé. Dál se s nimi pracuje úplně stejně jako s nahraným GPC: párování na faktury (§ 28.4.2), automatické zaúčtování v podvojném účetnictví (§ 28.7) i pravidla pro opakované platby. Pokud pro tentýž účet a měsíc později nahraješ úplný GPC, nahradí API přehled jako hlavní výpis a zachová párování i zaúčtování (§ 29.1.3).
Načítání má bezpečnostní meze:
- ruční načtení — nejvýše 31 dní včetně krajních dnů,
- automatické pokračování (prázdné pole *Od data*) — naváže 3 dny před posledním úspěšně načteným datem (překryv kvůli pozdě zaúčtovaným pohybům); u zcela nového napojení stáhne posledních 14 dní,
- pokud by mezi posledním načtením a dneškem vznikla mezera delší než 89 dní, automatické pokračování to odmítne (
history_gap) a je potřeba mezeru dohnat ručním načtením po částech, - konkrétní banka může mít vlastní dodatečné omezení (např. Raiffeisenbank vrací pohyby jen za posledních 90 dní, KB+ tarif Plus/Pro omezuje frekvenci dotazů na jednou za 61, resp. 10 minut).
28.9.3 Automatická synchronizace (cron)
Ruční tlačítko Načíst pohyby u účtu není jediná cesta — cron cmd/cron-bank-connections.{sh,cmd} (spouští php api/bin/cron-bank-connections.php) projde všechny aktivní napojení se zadanými přístupovými údaji a zavolá pro každé automatické pokračování posledního načtení. Pokud žádné napojení není aktivní, běh se přeskočí. Cron neřeší nic navíc oproti manuálnímu tlačítku — jen ho spouští za tebe pravidelně, typicky každých 15 minut (*/15 * * * *). Nastavení plánovače je v playbooku automatizačních skriptů.
Některé banky omezují, jak často lze pohyby stahovat. KB+ povoluje stažení nezměněných dat nejvýš jednou za 61 minut, jinak dotaz odmítne. Cron proto napojení KB+ zavolá až po uplynutí 61 minut od posledního pokusu a mezitím ho přeskočí. Nové pohyby z KB+ se tak v aplikaci objeví nejpozději zhruba za hodinu. Když banka dotaz kvůli četnosti odmítne, napojení se neoznačí jako chybné a další běh to zkusí znovu. Ruční tlačítko Načíst pohyby tímto odstupem omezené není.
28.9.4 Odeslání platebního příkazu
Napojení s podporou příkazů (viz tabulka výše) umí místo exportu KPC/PDF předat připravený příkaz z Nákup → Platební příkazy přímo bance k autorizaci (§ 29.1.4). Platí pro to vždy:
- jen tuzemské příkazy v CZK — slovenské EUR příkazy (Fio SR) přímé odeslání zatím nepodporuje,
- odeslání nepotvrzuje úhradu ani platbu neautorizuje — příkaz je nutné zkontrolovat a potvrdit v internetovém bankovnictví; skutečnou úhradu prokáže až bankovní pohyb,
- výsledek odeslání (přijato / odmítnuto / nejasné) blokuje opětovné odeslání téhož příkazu; při nejasném výsledku nejdřív ověř stav v bance, než vytvoříš další platbu,
- u KB+ jde o dávku max. 100 plateb najednou (BATCHDA); u ostatních bank se limity řídí jejich vlastním API.
28.9.5 Zabezpečení přístupových údajů
Tokeny, API klíče, hesla k certifikátům i OAuth tokeny se ukládají výhradně na serveru, šifrované (AES-256-GCM, envelope s kontextem konkrétního napojení — dodavatel + účet), a do prohlížeče se po uložení už nevrací; ve formulářích se needitují, jen nahrazují. Šifrovací klíč (app.secret_encryption_key, resp. proměnná prostředí MYINVOICE_SECRET_KEY) musí nastavit správce instalace — bez něj napojení nejde vůbec dokončit. Klientské certifikáty (.p12/.pfx) mají limit 24 KiB a jejich privátní klíč se při komunikaci s bankou používá jen v paměti procesu, nikdy se neukládá rozšifrovaný na disk. Certifikátová napojení (ČSOB, Raiffeisenbank, KB+, volitelně CREDITAS) vyžadují na serveru PHP cURL s podporou klientského certifikátu v paměti a rozšíření OpenSSL.
28.9.6 KB Business (KB+) — rozšíření o odesílání dávek (BATCHDA)
Napojení KB+ stojí na registraci aplikace u KB (Software Statement) a na OAuth2 tokenech. Stejný základ mají všechna API KB. MyÚčto nad ním čte pohyby přes ADAA a volitelně odesílá platební dávky přes BATCHDA; STATDA (stažení originálních souborů výpisu) a NOTDA (notifikace) konektor nevyužívá.
Hromadné platby nepotřebují samostatný API klíč BATCHDA. Dávku autorizuje access token, který banka vydá se scope bpisp. Tento scope musí mít registrace aplikace i souhlas udělený k účtu. Pole klíč BATCHDA ve formuláři je nepovinné a na developer portálu KB ho běžně nezískáš. Vyplň ho jen tehdy, když ti ho KB výslovně vydala; pak se k dávce přiloží jako identifikátor volajícího. Bez něj MyÚčto posílá dávku jen s tokenem a klíč ADAA do služby dávek neposílá.
Zapnutí u nového napojení. Ve formuláři napojení u účtu (§ 29.1.3) zaškrtni Chci i hromadné platby (BATCHDA). Registrace aplikace se pak u KB žádá se scope adaa a bpisp a navazující souhlas v KB zahrnuje i oprávnění k odesílání dávek. Bez zaškrtnutí (a bez vyplněného klíče BATCHDA) se aplikace registruje jen se scope adaa a napojení umí výhradně čtení pohybů. Volbu zapni jen tehdy, když tvoje varianta Extra služby API Business dávky zahrnuje; jinak KB registraci se scope bpisp odmítne.
Rozšíření existujícího napojení. Sekce napojení u účtu ukáže, proč dávky nejdou, a podle toho vede na jednu ze dvou cest, kterými rozšíření řeší banka:
- aplikace je u KB zaregistrovaná jen se scope
adaa→ zvol Zadat klíče znovu, vyplň klíče Client Registration, OAuth a ADAA, vyber certifikát a nech zaškrtnuté Chci i hromadné platby (při opakovaném zadání je volba předvyplněná). MyÚčto vystaví nový Software Statement, pošle bance registrační požadavek se scopeadaaabpispa hned po registraci tě provede novým souhlasem v KB, - aplikace má
bpispzaregistrovaný, ale udělený souhlas ho nezahrnuje → stačí Zahájit nové ověření v KB+. Aplikace si vyžádá nový autorizační kód se scopeadaa bpisp; klíče se znovu nezadávají.
Registraci i souhlas musí v KB potvrdit tentýž uživatel (klient KB), jinak banka tokeny nevydá.
Platnost souhlasu. Access token platí jen několik minut a MyÚčto ho průběžně obnovuje refresh tokenem. Refresh token platí 12 měsíců. Po jeho vypršení přestane fungovat čtení pohybů i odesílání dávek a je potřeba Zahájit nové ověření v KB+; novou registraci aplikace to nevyžaduje.
Když napojení dávky odeslat neumí, zobrazí se u účtu upozornění s důvodem a odeslání příkazu aplikace odmítne dřív, než cokoli předá bance (payment_submission_unavailable). Příkaz pak nahraješ do KB ručně; čtení pohybů tím omezené není. Odeslaná dávka má nejvýše 100 plateb a její příjem bankou není autorizace ani úhrada. Tu je vždy nutné dokončit v internetovém bankovnictví.