Preskoči na glavno vsebino

Rozúčtovanie dokladu pomocou REST API

Ako rozúčtovať doklad pomocou služby v API Flexi?

Avtor: Petr Pech

Rovnako ako v desktopovej alebo webovej aplikácii je možné využiť funkciu Rozúčtovanie dokladu. Pomocou nej je možné doklad rozúčtovať na čiastkové položky. Funkciu je možné použiť len pri doklade, ktorý zatiaľ neobsahuje položky.

Funkcia je dostupná pre tieto evidencie

  • faktura-prijata

  • faktura-vydana

  • banka

  • pokladni-pohyb

  • pohledavka

  • zavazek


Spôsob volania

Rozúčtovanie sa odosiela metódou PUT na konkrétny doklad — v adrese teda uvádzate evidenciu a identifikátor dokladu:

PUT https://demo.flexibee.eu/c/demo/faktura-prijata/123.xml
PUT https://demo.flexibee.eu/c/demo/zavazek/code:ZAV0005-2024.json

Popis jednotlivých evidencií nájdete v zozname evidencií.

💡 Pred ostrým zápisom si volanie vyskúšajte s parametrom ?dry-run=true. Požiadavka sa spracuje a zvaliduje, ale do databázy sa nič nezapíše.


Parametre riadkov rozúčtovania

Vstupnými dátami sú jednotlivé riadky rozúčtovania s účtovnými náležitosťami pre správne zaúčtovanie. Všetky názvy parametrov sú case-sensitive.

Parameter

Význam

Zdrojová evidencia

typUcOp

Predpis zaúčtovania

predpis-zauctovani

sazbaDph

Sadzba DPH

sazba-dph

sumZkl

Suma základu (desatinné číslo)

—

zklMdUcet

Má dať základu

ucet

zklDalUcet

Dal základu

ucet

sumDph

Suma DPH (desatinné číslo)

—

dphMdUcet

Má dať DPH

ucet

dphDalUcet

Dal DPH

ucet

taxKey

Daňový kľúč

tax-key

clenDph

Riadok DPH

cleneni-dph

clenKonVykDph

Riadok kontrolného hlásenia DPH

cleneni-kontrolni-hlaseni

stredisko

Stredisko

stredisko

cinnost

Činnosť

cinnost

zakazka

Zákazka

zakazka

Hodnotou parametra je vždy identifikátor záznamu z uvedenej evidencie, typicky v tvare code:KÓD.

📝 Evidencia tax-key nie je dostupná vo všetkých legislatívach. Vo firme s českou legislatívou vracia volanie 400 s kódom akcePristupOdepren.


Príklady použitia

1. Rozúčtovanie prijatej faktúry na dva riadky v XML

<winstrom version="1.0">
<faktura-prijata>
<rozuctujDoklad>
<radkyRozuctovani>
<radek>
<typUcOp>code:NÁKUP ZBOŽÍ A</typUcOp>
<sumZkl>75.0</sumZkl>
<sazbaDph>1</sazbaDph>
<zklMdUcet>code:131001</zklMdUcet>
<zklDalUcet>code:321001</zklDalUcet>
<clenDph>code:000P</clenDph>
</radek>
<radek>
<typUcOp>code:NÁKUP ZBOŽÍ B</typUcOp>
<sumZkl>25.0</sumZkl>
<sazbaDph>1</sazbaDph>
<zklMdUcet>code:131001</zklMdUcet>
<zklDalUcet>code:321001</zklDalUcet>
<clenDph>code:000P</clenDph>
</radek>
</radkyRozuctovani>
</rozuctujDoklad>
</faktura-prijata>
</winstrom>

Výsledkom sú položky dokladu zodpovedajúce odoslaným riadkom:

<winstrom version="1.0">
<faktura-prijata>
<id>123</id>
<polozkyFaktury>
<faktura-prijata-polozka>
<typUcOp>code:NÁKUP ZBOŽÍ A</typUcOp>
<sumZkl>75.0</sumZkl>
<sazbaDph>1</sazbaDph>
<zklMdUcet>code:131001</zklMdUcet>
<zklDalUcet>code:321001</zklDalUcet>
<clenDph>code:000P</clenDph>
</faktura-prijata-polozka>
<faktura-prijata-polozka>
<typUcOp>code:NÁKUP ZBOŽÍ B</typUcOp>
<sumZkl>25.0</sumZkl>
<sazbaDph>1</sazbaDph>
<zklMdUcet>code:131001</zklMdUcet>
<zklDalUcet>code:321001</zklDalUcet>
<clenDph>code:000P</clenDph>
</faktura-prijata-polozka>
</polozkyFaktury>
</faktura-prijata>
</winstrom>

2. Rozúčtovanie záväzku na dva riadky v JSON

{
"winstrom": {
"zavazek": {
"rozuctujDoklad": {
"radkyRozuctovani": [
{
"typUcOp": "code:CESTOVNÉ",
"sumZkl": "750.0",
"sazbaDph": "1",
"zklMdUcet": "code:512001",
"zklDalUcet": "code:314001",
"clenDph": "code:40-41"
},
{
"typUcOp": "code:CESTOVNÉ",
"sumZkl": "250.0",
"sazbaDph": "1",
"zklMdUcet": "code:512001",
"zklDalUcet": "code:314001",
"clenDph": "code:40-41"
}
]
}
}
}
}


Neúspešné požiadavky

Súčet riadkov nezodpovedá sume dokladu

Ak sumy riadkov v súčte nezodpovedajú celkovej sume dokladu, vráti sa hlásenie:

"message": "Suma položek nesouhlasí se sumou dokladu."

Hodnota parametra v dátach neexistuje

Odpoveďou je 400 a chyba s kódom NOT-FOUND a názvom hľadaného objektu:

"code": "NOT-FOUND(cz.winstrom.vo.ucto.Ucet)(code:521002)"
"message": "Záznam pro parametr (zklMdUcet) nebyl v datovém zdroji nalezen: cz.winstrom.vo.ucto.Ucet#code:521002 [ZAV0005/2024]"

Syntakticky chybný zápis

Napríklad preklep v názve elementu radkyRozuctovani:

{
"winstrom": {
"zavazek": {
"rozuctujDoklad": {
"radkyRoyuctovani": [

Odpoveďou je 500 s kódom importXmlInternalError a hlásením Interní chyba aplikace. Názvy elementov preto opisujte presne.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?