Preskoči na glavno vsebino

Párovanie platieb

Ako párovať platby s dokladmi v REST API?

Avtor: Petr Pech

Pokladňu alebo banku možno spárovať s jednou alebo viacerými vydanými alebo prijatými faktúrami 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>
<zbytek>ignorovat</zbytek>
<!-- co dělat se zbytkem, pokud nastane -->
</sparovani>
</banka>
</winstrom>

V jednom párovaní možno uhradiť viacero faktúr naraz. Pri párovaní s viacerými faktúrami musia byť všetky uvedené faktúry rovnakého typu (vydané alebo prijaté).

Pri každej uhrádzanej faktúre možno 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>

Príklad vo formáte JSON:

{
"winstrom": {
"banka": {
"id": "code:BANKA1",
"sparovani": {
"uhrazovanaFak": {
"@castka": "500.0",
"@type": "faktura-vydana",
"filter": "code:FV2"
},
"zbytek": "ignorovat"
}
}
}
}

Hodnota atribútu castka nesmie prekročiť zostatok sumy na úhradu na uhrádzanej faktúre. Ak je hodnota atribútu castka menšia ako zostatok sumy na úhradu, táto konkrétna faktúra bude vždy uhradená ako čiastočná úhrada. Ak sa hodnota atribútu castka rovná zostatkuzostatok sumy na úhradu, atribút stráca význam a párovanie prebehne rovnako, ako keby nebol uvedený.

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ť niekoľko centov), v takom prípade sa import riadi hodnotou v tagu <zbytek/> .

Možno zvoliť tieto hodnoty zvyšku:

  • ne: zvyšok nesmie nastať; ak k nemu dôjde, ide o chybu

  • zauctovat: zvyšok sa zaúčtuje

  • ignorovat: zvyšok sa ignoruje

  • castecnaUhrada: ak je suma na uhrádzajúcom doklade menšia ako na uhrádzanom, ide o čiastočnú úhradu

  • castecnaUhradaNeboZauctovat: ak je suma na uhrádzajúcom doklade väčšia ako na uhrádzanom, zvyšok sa zaúčtuje; ak je menšia, ide o čiastočnú úhradu

  • castecnaUhradaNeboIgnorovat: ak je suma na uhrádzajúcom doklade väčšia ako na uhrádzanom, zvyšok sa ignoruje; ak je menšia, ide o čiastočnú úhradu

Výsledok importu v závislosti od zvolenej hodnoty tagu <zbytek/> a veľkosti rozdielu uhrádzajúcej a uhrádzanej sumy (zvyšku) môže mať nasledujúcu podobu:

parameter zbytek

zvyšok = 0

zvyšok > 0

zvyšok < 0

ne

Faktúry budú plne uhradené, alebo čiastočne uhradené, ak došlo k obmedzeniu úhrady atribútom castka.

Uhrádzajúci doklad bude spárovaný.

CHYBA:

400 – Sumy na uhrádzanom a uhrádzajúcom doklade sa nezhodujú

zauctovat

Faktúry budú plne uhradené, alebo čiastočne uhradené, ak došlo k obmedzeniu úhrady atribútom castka.

Uhrádzajúci doklad bude spárovaný.

Pre zvyšok vznikne interný doklad.

ignorovat

Faktúry budú plne uhradené, alebo čiastočne uhradené, ak došlo k obmedzeniu úhrady atribútom castka.

Uhrádzajúci doklad nebude spárovaný.

castecnaUhrada

CHYBA:

400 – Čiastočná úhrada nedáva zmysel, suma na uhrádzajúcom doklade je väčšia ako na uhrádzanom

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 <sparovani/> .

Faktúra, na ktorú z úhrady už neostáva dostatočná suma na plnú úhradu alebo úhradu celej uvedenej sumy, sa uhradí čiastočne do výšky zostávajúcich prostriedkov z uhrádzajúcej sumy.

Faktúry, na ktoré z uhrádzajúcej sumy neostávajú žiadne prostriedky, sú z párovania vylúčené a zostanú neuhradené.

castecnaUhradaNeboZauctovat

Faktúry budú plne uhradené, alebo čiastočne uhradené, ak došlo k obmedzeniu úhrady atribútom castka.

Uhrádzajúci doklad bude spárovaný.

Pre zvyšok vznikne interný doklad.

castecnaUhradaNeboIgnorovat

Faktúry budú plne uhradené, alebo čiastočne uhradené, ak došlo k obmedzeniu úhrady atribútom castka.

Uhrádzajúci doklad nebude spárovaný.

V tagu <sparovani/> možno navyše uviesť aj nasledujúce. Nie je to povinné a štandardne sa preberá 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 -->

Párovanie úhrady v domácej mene s faktúrou v cudzej mene

Okrem párovania dokladov v rovnakých menách možno 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.

Odpárovanie

Analogicky možno 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>

Príklad v JSON:

{
"winstrom": {
"banka": {
"id": "code:BANKA1",
"odparovani": {
"uhrazovanaFak": {
"@type": "faktura-vydana",
"filter": "code:FV1"
}
}
}
}
}

Ak nie je uvedený žiadny uhrádzaný doklad, odpárujú sa všetky, ktoré sú s daným uhrádzajúcim dokladom spárované.

Párovanie je idempotentné (t. j. jeho volanie možno opakovať).

Automatické párovanie

Cez API možno vyvolať aj automatické párovanie platieb.

curl -H "Accept: application/xml" -u winstrom:winstrom -X PUT -L https://demo.flexibee.eu:5434/c/demo/banka/automaticke-parovani

Filtrovaním možno obmedziť úhrady vstupujúce do párovania.

/c/{firma}/banka/{filtr}/automaticke-parovani

Príklad nižšie bude párovať len úhrady zadané od 1.3.2020

/c/{firma}/banka/(datVyst>='2020-03-01')/automaticke-parovani

Pomocou parametrov možno nastaviť mód párovania, obmedziť v ktorých účtovných obdobiach sa budú hľadať doklady na úhradu a ako nakladať s rozdielom medzi úhradou a uhrádzaným dokladom.

/c/{firma}/banka/automaticke-parovani?mod=jenVar&obdobi=aktualni&ignorovat-rozdil-castka=1.5&zauctovat-rozdil=true

modmód automatického párovania. Možné hodnoty:

  • varCasUcet: párovať podľa variabilného sym. a sumy a účtu

  • varCas: párovať podľa variabilného sym. a sumy (predvolená hodnota)

  • jenVar: párovať podľa variabilného sym.

  • jenCastka: pripojiť – párovať keď súhlasí suma a nesúhlasí VS

obdobiv ktorých obdobiach sa budú hľadať doklady na úhradu. Možné hodnoty:

  • aktualni: aktuálne účtovné obdobie

  • aktualni-predchozi: aktuálne a predchádzajúce účtovné obdobie

  • vsechna: všetky účtovné obdobia (predvolená hodnota)

ignorovat-rozdil-castkaako veľký rozdiel medzi úhradou a uhrádzaným dokladom ignorovať (predvolená hodnota 0.0 – sumy musia zodpovedať, v móde jenVar sa nastavenie rozdielu ignoruje). Ide o rozdiel v sume v mene bankového dokladu, teda na príklade s bankovým dokladom v EUR a parametri ignorovat-rozdil-castka=1 bude ignorovaný rozdiel 1 EUR.

zauctovat-rozdil – či sa zaúčtujú doklady, ak dôjde k spojeniu úhrad, keď sumy dokladov nie sú zhodné (predvolená hodnota true – vznikne interný doklad na rozdiel medzi dokladmi a doklady budú plne spárované)

Ďalej je možné automatické párovanie obmedziť pomocou parametrizácie automatického párovania.

  • V prípade pokročilej varianty automatického párovania možno ovplyvniť obdobie pokročilým parametrom paramParovaniUhradOmezeniObdobiDrgn a hodnotami: aktualni, aktualni-predchozi (predvolené pre aplikáciu), vsechna (predvolené pre API).

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>

<?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>
Ste s tem dobili odgovor na svoje vprašanje?