Úhradu dokladu lze přes API zapsat třemi způsoby — spárováním s bankovním či pokladním dokladem, vzájemným zápočtem, nebo odpočtem zálohy. Tento článek ukazuje, jak na to, a odkazuje na podrobný popis každé z cest.
Spárování s úhradou
Párování se zapisuje jako součást uhrazujícího dokladu v elementu sparovani. Uhrazovaných faktur může být víc, musí ale být stejného typu:
<winstrom version="1.0">
<banka>
<id>code:B+0017/2026</id>
<sparovani>
<uhrazovanaFak type="faktura-vydana" castka="1000">code:VF1-0167/2026</uhrazovanaFak>
<zbytek>ignorovat</zbytek>
</sparovani>
</banka>
</winstrom>
Týž zápis ve formátu JSON:
{
"winstrom": {
"@version": "1.0",
"banka": {
"id": "code:B+0017/2026",
"sparovani": {
"uhrazovanaFak": {
"@type": "faktura-vydana",
"@castka": "1000",
"id": "code:VF1-0167/2026"
},
"zbytek": "ignorovat"
}
}
}
}
Atribut castka je nepovinný a omezuje, kolik se z faktury uhradí. Element zbytek říká, co dělat s rozdílem mezi částkami — hodnoty jsou ne, zauctovat, ignorovat, castecnaUhrada, castecnaUhradaNeboZauctovat a castecnaUhradaNeboIgnorovat; jejich chování rozepisuje článek Párování plateb. Odpárování se zapisuje stejně, jen v elementu odparovani.
⚠️ Doklad v tuzemské měně nelze uhradit z účtu vedeného v cizí měně — import skončí hláškou Úhrada dokladu v domácí měně úhradou v cizí měně není povolená. Zkontrolujte proto měnu bankovního účtu, který v párování používáte.
Vzájemný zápočet
Zápočet je ve Flexi fiktivní bankovní výpis, kterým se proti sobě uhrazují pohledávka a závazek. Zakládá se do evidence vzajemny-zapocet a párování se v něm zapisuje úplně stejně jako u banky:
<winstrom version="1.0">
<vzajemny-zapocet>
<id>code:ZAP+0016/2026</id>
<typDokl>code:ZAPOCET</typDokl>
<typPohybuK>typPohybu.prijem</typPohybuK>
<bezPolozek>true</bezPolozek>
<sumOsv>100.0</sumOsv>
<sparovani>
<uhrazovanaFak type="faktura-vydana">code:FAV1</uhrazovanaFak>
<zbytek>castecnaUhrada</zbytek>
</sparovani>
<cisSouhrnne>ZAP-123</cisSouhrnne>
</vzajemny-zapocet>
</winstrom>
Zápočet se skládá ze dvou dokladů — jeden s typPohybu.prijem pro vydanou fakturu a druhý s typPohybu.vydej pro přijatou; obě strany spojuje stejné číslo v cisSouhrnne. Zápočet lze založit a spárovat jedním požadavkem.
ℹ️ Element zbytek má u zápočtu stejné hodnoty jako u párování plateb. Volba castecnaUhrada ale skončí chybou, pokud je částka na uhrazujícím dokladu větší než na uhrazovaném — částečná úhrada pak nedává smysl.
Úhrada zálohou
Typický proces u zálohové platby vypadá takto:
Z přijaté objednávky se realizací vytvoří zálohová faktura — viz Realizace objednávky přes API.
Zálohová faktura se uhradí párováním platby, jak je popsáno výše.
Z objednávky se vystaví ostrá faktura.
Uhrazená záloha se na ostré faktuře uplatní odpočtem — viz Odpočet záloh a ZDD.
💡 Párování i odpárování je idempotentní — opakované volání téhož požadavku nic nezkazí. Toho se dá využít při dávkovém zpracování, kde není jisté, jestli předchozí běh doběhl.
