Pokladňu alebo banku je možné spárovať s jednou alebo viacerými faktúrami vydanými alebo prijatými nasledujúcim spôsobom:
<?xml version="1.0"?>
<winstrom version="1.0">
<banka>
<!-- uhrazující doklad; může být i "pokladni-pohyb" -->
<id>code:BANKA1</id>
<!-- lze normálně uvést další vlastnosti dokladu jako při běžném importu -->
<sparovani>
<!-- uhrazovaný doklad; pro uhrazení více faktur se element opakuje
type - ve spárování lze použít pouze faktury stejného typu (vydané nebo přijaté)
castka - (volitelný) určuje částku, která se má z faktury uhradit -->
<uhrazovanaFak type="faktura-vydana" castka="1000">code:FV1</uhrazovanaFak>
<!-- co dělat se zbytkem, pokud nastane -->
<zbytek>ignorovat</zbytek>
</sparovani>
</banka>
</winstrom>
Párovanie viacerých faktúr
V jednom spárovaní je možné uhrádzať viacero faktúr naraz. Pri spárovaní s viacerými faktúrami musia byť všetky uvedené faktúry rovnakého typu faktúry (vydané alebo prijaté). Pri každej uhrádzanej faktúre je možné uviesť atribút castka, ktorého hodnota obmedzuje celkovú sumu na úhradu, ktorá bude z faktúry uhradená.
<?xml version="1.0"?>
<winstrom version="1.0">
<banka>
<id>code:BANKA1</id>
<sparovani>
<!-- uhrazují se dvě faktury najednou -->
<uhrazovanaFak type="faktura-vydana" castka="500">code:FV1</uhrazovanaFak> <!-- z FV1 se uhrazuje 500 -->
<uhrazovanaFak type="faktura-vydana">code:FV2</uhrazovanaFak> <!-- z FV2 se uhrazuje celá zbývající částka -->
<zbytek>ignorovat</zbytek>
</sparovani>
</banka>
</winstrom>
Rovnaká požiadavka vo formáte JSON:
{
"winstrom": {
"banka": {
"id": "code:BANKA1",
"sparovani": {
"uhrazovanaFak": [
{ "@content": "code:FV1", "@type": "faktura-vydana", "@castka": "500" },
{ "@content": "code:FV2", "@type": "faktura-vydana" }
],
"zbytek": "ignorovat"
}
}
}
}ℹ️ Identifikátor uhrádzanej faktúry je možné v JSON zapísať ako "@content" (kanonický zápis obsahu elementu) alebo priamo ako hodnotu kľúča "uhrazovanaFak" s typom v "uhrazovanaFak@type". Oba zápisy sú rovnocenné — pri neexistujúcom identifikátore vráti server v oboch prípadoch 400 nestedObjectNotFound.
Hodnota atribútu castka nesmie prekročiť zostávajúcu sumu na úhradu na uhrádzanej faktúre. Ak je hodnota atribútu castka menšia ako zostávajúca suma na úhradu, bude táto konkrétna faktúra vždy uhradená ako čiastočná úhrada. Ak je hodnota rovná zostávajúcej sume na úhradu, potom atribút stráca význam a spárovanie prebehne rovnako, ako keby nebol uvedený.
Zvyšok
Môže sa stať, že uhrádzajúca suma na uhrádzajúcom doklade a súčet súm na uhrádzaných faktúrach nesúhlasia (napr. pri kurzovom rozdiele alebo keď chýba doplatiť pár korún). V takom prípade sa import riadi hodnotou v tagu <zbytek>.
Hodnota | Výsledok importu |
| Zvyšok nesmie nastať. Ak sumy súhlasia, faktúry budú úplne uhradené (alebo čiastočne, ak došlo k obmedzeniu úhrady atribútom |
| Faktúry budú úplne uhradené (alebo čiastočne, ak došlo k obmedzeniu úhrady atribútom |
| Faktúry budú úplne uhradené (alebo čiastočne, ak došlo k obmedzeniu úhrady atribútom |
| Ak je suma na uhrádzajúcom doklade menšia ako na uhrádzanom, ide o čiastočnú úhradu. Suma uhrádzajúceho dokladu sa postupne „spotrebúva" na úhradu faktúr alebo súm, ktoré sa z nich majú uhradiť, v poradí ich uvedenia v elemente |
| Ak je suma na uhrádzajúcom doklade väčšia ako na uhrádzanom, zvyšok sa zaúčtuje (vznikne interný doklad) a uhrádzajúci doklad bude spárovaný. Ak je menšia, ide o čiastočnú úhradu. |
| Ak je suma na uhrádzajúcom doklade väčšia ako na uhrádzanom, zvyšok sa ignoruje a uhrádzajúci doklad nebude spárovaný. Ak je menšia, ide o čiastočnú úhradu. |
⚠️ Iná ako uvedená hodnota vráti 400 elementInvalidValue: „Hodnota elementu 'zbytek' je neplatná."
Doplnkové parametre spárovania
V tagu <sparovani> je možné navyše uviesť ešte nasledujúce elementy. Nie sú povinné a štandardne sa preberajú z nastavenia firmy.
<!-- kurzový rozdíl, defaultně z nastavení firmy -->
<krTypDokl></krTypDokl> <!-- typ dokladu pro kurzový rozdíl -->
<krTypDoklZisk></krTypDoklZisk> <!-- typ dokladu pro zisk kurzového rozdílu -->
<krTypDoklZtrata></krTypDoklZtrata> <!-- typ dokladu pro ztrátu kurzového rozdílu -->
<krRada></krRada> <!-- řada pro kurzový rozdíl -->
<!-- zbytek, defaultně z nastavení firmy -->
<zbTypDokl></zbTypDokl> <!-- typ dokladu pro zbytek -->
<zbTypDoklZisk></zbTypDoklZisk> <!-- typ dokladu pro zisk zbytku -->
<zbTypDoklZtrata></zbTypDoklZtrata> <!-- typ dokladu pro ztrátu zbytku -->
<zbRada></zbRada> <!-- řada pro zbytek -->
Spárovanie úhrady v domácej mene s faktúrou v cudzej mene
Okrem párovania dokladov v rovnakých menách je možné tiež spárovať pokladňu alebo banku v domácej mene s faktúrami v cudzej mene. Cudzia mena musí byť pre všetky párované faktúry rovnaká. V tomto prípade sa uhrádzajúci doklad automaticky prevedie do cudzej meny v kurze rovnajúcom sa pomeru uhrádzajúcej sumy na banke v domácej mene k celkovej uhrádzanej sume na faktúrach v cudzej mene.
Spárovanie úhrady v cudzej mene s faktúrou v inej cudzej mene
Spárovať je možné aj pokladňu alebo banku v cudzej mene s faktúrou v inej cudzej mene. V tomto prípade program považuje úhradu za kompletnú úhradu 1 : 1 a nedochádza k zmene meny na uhrádzajúcom doklade. Kurzový rozdiel sa vypočítava z rozdielu súm v tuzemskej mene.
Odpárovanie
Analogicky je možné vykonávať aj odpárovanie:
<?xml version="1.0"?>
<winstrom version="1.0">
<banka>
<id>code:BANKA1</id>
<odparovani>
<uhrazovanaFak type="faktura-vydana">code:FV1</uhrazovanaFak> <!-- nepovinné, lze vícekrát -->
</odparovani>
</banka>
</winstrom>
To isté v JSON:
{
"winstrom": {
"banka": {
"id": "code:BANKA1",
"odparovani": {
"uhrazovanaFak": { "@content": "code:FV1", "@type": "faktura-vydana" }
}
}
}
}
Ak nie je uvedený žiadny uhrádzaný doklad, odpária sa všetky, ktoré sú s daným uhrádzajúcim dokladom spárované. Párovanie je idempotentné, t. j. je možné jeho volanie opakovať.
Automatické párovanie
Cez API je možné vyvolať aj automatické párovanie platieb. Službu zavoláte metódou PUT nad evidenciou banky alebo pokladne:
PUT /c/{firma}/banka/automaticke-parovani
Filtrovaním je možné obmedziť úhrady vstupujúce do párovania:
PUT /c/{firma}/banka/{filtr}/automaticke-parovani
Príklad nižšie bude párovať len úhrady zadané od 1. 3. 2020:
PUT /c/{firma}/banka/(datVyst>='2020-03-01')/automaticke-parovani
Pomocou parametrov je možné nastaviť mód párovania, obmedziť, v akých účtovných obdobiach sa budú hľadať doklady na úhradu, a určiť, ako nakladať s rozdielom medzi úhradou a uhrádzaným dokladom:
PUT /c/{firma}/banka/automaticke-parovani
?mod=jenVar
&obdobi=aktualni
&ignorovat-rozdil-castka=1.5
&zauctovat-rozdil=trueParameter | Hodnoty a význam |
| Mód automatického párovania: |
| V ktorých obdobiach sa budú hľadať doklady na úhradu: |
| Aký veľký rozdiel medzi úhradou a uhrádzaným dokladom ignorovať. Predvolená hodnota |
| Či sa zaúčtujú doklady, ak dôjde k spojeniu úhrad, keď sumy dokladov nie sú zhodné. Predvolená hodnota |
⚠️ Neplatná hodnota parametra mod alebo obdobi skončí chybou 400. Filter patrí do cesty URL (/banka/(datVyst>='2020-03-01')/…) — ako query parameter ?filter= sa ignoruje.
Ďalej je možné automatické párovanie ovplyvniť pokročilou parametrizáciou. V prípade pokročilého variantu automatického párovania je možné obdobie nastaviť parametrom paramParovaniUhradOmezeniObdobiDrgn s hodnotami aktualni, aktualni-predchozi (predvolené pre aplikáciu) a vsechna (predvolené pre API). Cez API sa parameter zapisuje do evidencie parametr:
<winstrom version="1.0">
<parametr>
<paramK>paramParovaniUhradOmezeniObdobiDrgn</paramK>
<hodnota>vsechna</hodnota>
</parametr>
</winstrom>
Pôvodný spôsob párovania iba cez REST API
Je podporovaný aj zastaraný spôsob, ktorým bolo možné párovať iba cez REST API (nie XML importom), na URL /c/{firma}/parovani-uhrad:
<?xml version="1.0"?>
<winstrom version="1.0">
<sparovani>
<uhrazovanaFak type="faktura-prijata">code:FP1</uhrazovanaFak> <!-- faktura -->
<uhrazujiciDokl type="banka">code:BANKA1</uhrazujiciDokl> <!-- bankovní doklad -->
<zbytek>ignorovat</zbytek> <!-- zbytek ignorovat -->
</sparovani>
</winstrom>
Odpárovanie rovnakým spôsobom:
<?xml version="1.0"?>
<winstrom version="1.0">
<odparovani>
<uhrazujiciDokl>code:foo</uhrazujiciDokl> <!-- povinné -->
<uhrazovanaFak>code:bar</uhrazovanaFak> <!-- nepovinné, lze vícekrát -->
</odparovani>
</winstrom>
📝 Pre nové integrácie použite párovanie cez XML import nad evidenciou banka alebo pokladni-pohyb (príklady vyššie). Zastarané URL /parovani-uhrad zostáva funkčné iba z dôvodu spätnej kompatibility.
