Preskoči na glavno vsebino

Zaokrúhlenie cien dokladu v REST API

Ako zaokrúhliť ceny na prijatej faktúre alebo pokladničnom doklade cez API Flexi?

Avtor: Petr Pech

Od verzie 2021.9.1 je možné cez REST API zaokrúhliť ceny prijatej faktúry alebo pokladničného dokladu. Služba sa nazýva zaokrouhli a je dostupná v evidenciách faktura-prijata a pokladni-pohyb.


Popis služby

Ide o totožnú službu, akú nájdete aj v desktopovej aplikácii:

  • detail prijatej faktúry > Služby > Zaokrúhlenie cien dokladu

  • detail pokladničného dokladu > Služby > Zaokrúhlenie cien dokladu

Službe odovzdáte ceny, na ktoré má byť doklad zaokrúhlený. Rozdiel proti existujúcim súčtom potom zapíše ako novú položku typu typPolozky.ucetni s názvom Zaokrúhlené, takže súčty dokladu zodpovedajú požadovaným hodnotám.

⚠️ Zaokrúhlenie cien dokladu možno použiť len u položkového dokladu. U dokladu bez vlastných položiek — napríklad u pokladničného dokladu, ktorý je len úhradou faktúry — vracia služba 201 s success true, ale žiadna zaokrúhľovacia položka nevznikne. Výsledok preto vždy overte prečítaním súčtov dokladu.

Volá sa metódou POST alebo PUT na endpoint danej evidencie:

POST https://demo.flexibee.eu/c/demo/faktura-prijata.xml
POST https://demo.flexibee.eu/c/demo/pokladni-pohyb.xml


Vstupné parametre služby

Služba má jediný vstupný parameter pozadovaneCeny — ceny, podľa ktorých bude dopočítaný zaokrúhľovací rozdiel, zadané po jednotlivých sadzbách DPH:

Elementy

Sadzba

zklZakl, dphZakl, celkZakl

Základná sadzba — základ, DPH a vrátane DPH

zklSniz, dphSniz, celkSniz

Znížená sadzba

zklSniz2, dphSniz2, celkSniz2

2. znížená sadzba

osv

Suma osvobodená od dane

🚨 Trojica hodnôt v jednej sadzbe musí byť vnútorne konzistentná — základ plus DPH sa musí rovnať sume vrátane DPH. Inak služba vracia 400 s kódom dokladKorekceCastekChybaSouctu a hlásením Súčet súm v sadzbe 'základná' nesúhlasí.

ℹ️ Požadované ceny sa zadávajú v mene dokladu. U dokladu v cudzej mene sa sumy v domácej mene dopočítajú kurzom dokladu.


Príklady použitia

Prijatá faktúra v základnej sadzbe

POST https://demo.flexibee.eu/c/demo/faktura-prijata.xml
<winstrom version="1.0">
<faktura-prijata>
<!-- Přijatá faktura, která bude zaokrouhlena. -->
<id>code:PF0001/2021</id>
<!-- Lze uvést i další vlastnosti dokladu, jako při importu. -->
<zaokrouhli>
<pozadovaneCeny>
<!-- Základ částky pro základní sazbu. -->
<zklZakl>110</zklZakl>
<!-- DPH částky pro základní sazbu. -->
<dphZakl>23.1</dphZakl>
<!-- Částka pro základní sazbu včetně DPH. -->
<celkZakl>133.1</celkZakl>
</pozadovaneCeny>
</zaokrouhli>
</faktura-prijata>
</winstrom>

Odpoveďou je 201 Created so štandardným výsledkom importu a na doklade vznikne zaokrúhľovacia položka:

<winstrom version="1.0">
<faktura-prijata>
<id>code:PF0001/2021</id>
<sumCelkem>133.1</sumCelkem>
<polozkyDokladu>
<faktura-prijata-polozka>
<!-- Původní položka dokladu. -->
<typPolozkyK>typPolozky.obecny</typPolozkyK>
<sumZkl>100.0</sumZkl>
<sumDph>21.0</sumDph>
<sumCelkem>121.0</sumCelkem>
</faktura-prijata-polozka>
<faktura-prijata-polozka>
<!-- Položka, která vznikla při zaokrouhlení. -->
<typPolozkyK>typPolozky.ucetni</typPolozkyK>
<nazev>Zaokrouhleno</nazev>
<sumZkl>10.0</sumZkl>
<sumDph>2.1</sumDph>
<sumCelkem>12.1</sumCelkem>
</faktura-prijata-polozka>
</polozkyDokladu>
</faktura-prijata>
</winstrom>

Pokladničný doklad v nulovej sadzbe

PUT https://demo.flexibee.eu/c/demo/pokladni-pohyb.xml
<winstrom version="1.0">
<pokladni-pohyb>
<!-- Pokladní pohyb, který bude zaokrouhlen. -->
<id>code:P-0001/2021</id>
<!-- Lze uvést i další vlastnosti dokladu, jako při importu. -->
<zaokrouhli>
<pozadovaneCeny>
<!-- Požadovaná částka osvobozená od daně. -->
<osv>140</osv>
</pozadovaneCeny>
</zaokrouhli>
</pokladni-pohyb>
</winstrom>

Výsledkom je opäť zaokrúhľovacia položka na doklade:

<winstrom version="1.0">
<pokladni-pohyb>
<id>code:P-0001/2021</id>
<sumCelkem>140</sumCelkem>
<polozkyDokladu>
<pokladni-pohyb-polozka>
<!-- Původní položka dokladu. -->
<typPolozkyK>typPolozky.obecny</typPolozkyK>
<sumZkl>130.0</sumZkl>
<sumDph>0.0</sumDph>
<sumCelkem>130.0</sumCelkem>
</pokladni-pohyb-polozka>
<pokladni-pohyb-polozka>
<!-- Položka, která vznikla při zaokrouhlení. -->
<typPolozkyK>typPolozky.ucetni</typPolozkyK>
<nazev>Zaokrouhleno</nazev>
<sumZkl>10.0</sumZkl>
<sumDph>0.0</sumDph>
<sumCelkem>10.0</sumCelkem>
</pokladni-pohyb-polozka>
</polozkyDokladu>
</pokladni-pohyb>
</winstrom>


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?