Pokladnu nebo banku lze spárovat s jednou nebo více fakturami vydanými nebo přijatými následujícím způsobem:
<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> <zbytek>ignorovat</zbytek> <!-- co dělat se zbytkem, pokud nastane --> </sparovani> </banka> </winstrom>
V jednom spárování lze uhrazovat více faktur najednou. Při spárování s více fakturami musí být všechny uvedené faktury stejného typu faktury (vydané nebo přijaté).
U každé uhrazované faktury lze uvést atribut castka
, jehož hodnota omezuje celkovou částku k úhradě, která bude z faktury uhrazena.
<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>
Zápis ve formátu JSON:
{ "winstrom": { "@version": "1.0", "banka": [ { "id": "code:BANKA1", "sparovani": { "uhrazovanaFak": [ { "@content": "code:FV1", "@type": "faktura-vydana", "@castka": "500" }, { "@content": "code:FV2", "@type": "faktura-vydana" } ], "zbytek": "ignorovat" } } ] } }
Hodnota atributu castka
nesmí překročit zbývající částku k úhradě na uhrazované faktuře. Je-li hodnota atributu castka
menší než zbývající částka k úhradě, bude tato konkrétní faktura vždy uhrazena jako částečná úhrada. Je-li hodnota atributu castka
rovna zbývající částce k úhradě, pak atribut ztrácí význam a spárování proběhne stejně, jako by nebyl uveden.
Může se stát, že uhrazující částka na uhrazujícím dokladu a součet částek na uhrazovaných fakturách nesouhlasí (např. při kurzovém rozdílu a nebo schází doplatit pár korun), v takovém případě se import řídí hodnotou v tagu <zbytek/>
. Lze zvolit tyto hodnoty:
ne
: zbytek nesmí nastat; pokud k němu dojde, jedná se o chybuzauctovat
: zbytek se zaúčtujeignorovat
: zbytek se ignorujecastecnaUhrada
: pokud je částka na uhrazujícím dokladu menší než na uhrazovaném, jedná se o částečnou úhraducastecnaUhradaNeboZauctovat
: pokud je částka na uhrazujícím dokladu větší než na uhrazovaném, zbytek se zaúčtuje; pokud je menší, jedná se o částečnou úhraducastecnaUhradaNeboIgnorovat
: pokud je částka na uhrazujícím dokladu větší než na uhrazovaném, zbytek se ignoruje; pokud je menší, jedná se o částečnou úhradu
Výsledek importu v závislosti na zvolené hodnotě tagu <zbytek/>
a velikosti rozdílu uhrazující a uhrazované částky (zbytku):
parametr zbytek |
zbytek = 0 | zbytek > 0 | zbytek < 0 |
---|---|---|---|
ne |
Faktury budou zcela uhrazeny, nebo částečně uhrazeny, pokud došlo k omezení úhrady atributem Uhrazující doklad bude spárován. |
CHYBA: 400 - Částky na uhrazovaném a uhrazujícím dokladu se neshodují |
|
zauctovat |
Faktury budou zcela uhrazeny, nebo částečně uhrazeny, pokud došlo k omezení úhrady atributem Uhrazující doklad bude spárován. Pro zbytek vznikne interní doklad. |
||
ignorovat |
Faktury budou zcela uhrazeny, nebo částečně uhrazeny, pokud došlo k omezení úhrady atributem Uhrazující doklad nebude spárován. |
||
castecnaUhrada |
CHYBA: 400 - Částečná úhrada nemá smysl, částka na uhrazujícím dokladu je větší než na uhrazovaném |
Částka uhrazujícího dokladu se postupně „spotřebovává“ na uhrazení faktur nebo částek, které se z nich mají uhradit, v pořadí jejich uvedení v elementu Faktura, na kterou z úhrady už nezbývá dostatečná částka na úplnou úhradu nebo úhradu celé uvedené částky, se uhradí částečně do výše zbývajících prostředků z uhrazující částky. Faktury, na které z uhrazující částky nezbývají žádné prostředky, jsou z párování vyřazeny a zůstanou neuhrazeny. |
|
castecnaUhradaNeboZauctovat |
Faktury budou zcela uhrazeny, nebo částečně uhrazeny, pokud došlo k omezení úhrady atributem Uhrazující doklad bude spárován. Pro zbytek vznikne interní doklad. |
||
castecnaUhradaNeboIgnorovat |
Faktury budou zcela uhrazeny, nebo částečně uhrazeny, pokud došlo k omezení úhrady atributem Uhrazující doklad nebude spárován. |
V tagu <sparovani/>
lze navíc uvést ještě i následující. Není to povinné a standardně se bere z nastavení 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árování úhrady v domácí měně s fakturou v cizí měně
Vedle párování dokladů ve stejných měnách, lze také spárovat pokladnu nebo banku v domácí měně s fakturami v cizí měně. Cizí měna musí být pro všechny párované faktury stejná. V tomto případě se uhrazující doklad automaticky převede do cizí měny v kurzu rovnající se poměru uhrazující částky na bance v domácí měně ku celkové uhrazované částce na fakturách v cizí měně.
Odpárování
Analogicky lze provádět i odpárování:
<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>
Pokud žádný uhrazovaný doklad není uveden, odpárují se všechny, které jsou s daným uhrazujícím dokladem spárovány.
Párování je idempotentní (tj. lze opakovat jeho volání).
Automatické párování
Přes API lze vyvolat i automatické párování plateb.
curl -H "Accept: application/xml" -u winstrom:winstrom -X PUT -L https://demo.flexibee.eu:5434/c/demo/banka/automaticke-parovani
Filtrováním lze omezit úhrady vstupující do párování.
/c/{firma}/banka/{filtr}/automaticke-parovani
Následující příklad bude párovat jen úhrady zadané od 1.3.2020
/c/{firma}/banka/(datVyst>='2020-03-01')/automaticke-parovani
Pomocí parametrů lze nastavit mód párování, omezit v jakých účetních obdobích se budou hledat doklady k úhradě a jak nakládat s rozdílem mezi úhradou a uhrazovaným dokladem.
/c/{firma}/banka/automaticke-parovani?mod=jenVar&obdobi=aktualni&ignorovat-rozdil-castka=1.5&zauctovat-rozdil=true
mod
- mód automatického párování. Možné hodnoty:
varCasUcet
: párovat dle variabilního sym. a částky a účtuvarCas
: párovat dle variabilního sym. a částky (výchozí hodnota)jenVar
: párovat dle variabilního sym.jenCastka
: připojit - párovat kdy souhlasí částka a nesouhlasí VS
obdobi
- v kterých obdobích se budou hledat doklady k úhradě. Možné hodnoty:
aktualni
: aktuální účetní obdobíaktualni-predchozi
: aktuální a předchozí účetní obdobívsechna
: všechna účetní období (výchozí hodnota)
ignorovat-rozdil-castka
- jak velký rozdíl mezi úhradou a uhrazovaným dokladem ignorovat (výchozí hodnota 0.0 - částky musí odpovídat, v módu jenVar
se nastavení rozdílu ignoruje)
zauctovat-rozdil
- zda se zaúčtují doklady pokud dojde ke spojení úhrad, kdy nejsou částky dokladů shodné (výchozí hodnota true - vznikne interní doklad na rozdíl mezi doklady a doklady budou plně spárovány)
Původní způsob párování pouze přes REST API
Je podporován i zastaralý způsob, kterým šlo párovat pouze přes REST API (nikoliv XML importem) na URL /c/{firma}/parovani-uhrad
.
<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>
<winstrom version="1.0"> <odparovani> <uhrazujiciDokl>code:foo</uhrazujiciDokl> <!-- povinné --> <uhrazovanaFak>code:bar</uhrazovanaFak> <!-- nepovinné, lze vícekrát --> </odparovani> </winstrom>