Preskoči na glavno vsebino

Inicializácia účtovného obdobia cez REST API

Ako uzavrieť obdobie a iniciovať nasledujúce pomocou REST API Flexi?

Avtor: Petr Pech

REST API ABRA Flexi ponúka obdobu vyvolania menu Účtovníctvo → Inicializácia nasledujúceho obdobia. Inicializáciu je možné volať opakovane, rovnako ako v desktopovej aplikácii.


Spôsob volania

Služba je dostupná metódou GET na adrese /c/{firma}/ucetni-obdobi/inicializace-noveho-obdobi.{přípona}, podporovanými formátmi sú json a xml.

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/inicializace-noveho-obdobi.json

Ak neexistuje nasledujúce účtovné obdobie, vracia sa 400 s kódom uzaverkaNeexistujeNasledujici:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Neexistuje následující účetní období. Prosím založte ho."
}
}

Po založení účtovného obdobia je možné inicializáciu volať opakovane.


Povinné parametre

Parameter

Význam

Vyžadovaný druh účtu

ucetOtv

Účet otvorenia účtovnej knihy

druhUctu.otevknih

ucetZav

Účet uzavretia účtovnej knihy

druhUctu.uzavknih

ucetPre

Účet prevodu hospodárskeho výsledku

druhUctu.prhosvys

ucetVys

Účet výsledku hospodárenia v schvaľovacom konaní

druhUctu.pasivhvy

Očakávanými hodnotami sú kódy účtov z účtovného rozvrhu, ktoré majú zodpovedajúcu hodnotu druhUctuK — napríklad ucetZav=702000. Uviesť je možné aj tvar s prefixom, teda ucetZav=code:702000. Viac informácií o druhu účtu nájdete v evidencii /ucet.

ℹ️ V prípade firmy typu daňová evidencia nie sú parametre účtov podvojného účtovníctva vyžadované.

Ak niektorý z povinných parametrov chýba, vráti sa 400 s kódom missing_param_exception:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "K provedení operace je vyžadován parametr 'ucetOtv'"
}
}

Ak bol vybraný nesprávny účet (napríklad ucetZav=701000), vráti sa táto chyba:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Parametr 'ucetZav' má nepodporovanou hodnotu! Zvolte jednu z následujících možností: [Zvolený účet musí mít druhUctuK 'druhUctu.uzavknih']"
}
}


Voliteľné parametre

  • ucetniObdobi — identifikátor obdobia, ktoré sa má uzavrieť. Ak nie je uvedený, uzatvára sa aktuálne obdobie.

  • preceneni — vykonať precenenie bankových účtov a pokladní aj precenenie neuhradených dokladov (true/false).

  • preceneniNeuhrazenychDokladu — vykonať precenenie iba neuhradených dokladov (true/false).

  • preceneniBankAPokladen — vykonať precenenie iba bankových účtov a pokladní (true/false).

  • preceneniVynechatBanAPokSChybnouMenou — vylúčiť z precenenia banky a pokladne s pohybom v nepodporovanej mene (true/false).

  • prevodSkladu — vykonať prevod skladu (true/false).

  • vynechatNulove — vynechať karty s nulovým zostatkom (true/false).

  • dnyBezPohybu — počet dní bez pohybu na vynechanie (celé číslo).

  • zrusitStare — v novom účtovnom období zrušiť nepoužívané staré karty (true/false).

  • typDokl — typ dokladu na generovanie záväzkov leasingových splátok.

  • kontrolaZaokrouhleni — hodnotou false potlačíte kontrolu zaokrúhlenia DPH na typoch dokladov.

  • kurz[KOD_MENY] a kurzMnozstvi[KOD_MENY] — kurz meny pre precenenie.

Predvolené hodnoty všetkých booleovských parametrov sú false.

📝 Voľbu Potvrdzovať vynechanie karty, ktorú ponúka desktopová aplikácia, REST API nepodporuje.


Kontrola zaokrúhlenia

Ak majú niektoré typy dokladov neštandardne nastavené zaokrúhlenie, vráti sa chyba:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Následující typy dokladů mají nestandardně nastavené zaokrouhlení DPH (očekávané je zaokrouhlení na setiny nebo jednotky, viz § 37 ZDPH):\nFAKTURA: nastaveno \"0.1\"\nOBP: nastaveno \"0.1\"\nNásledující typy dokladů mají nestandardně nastavený způsob zaokrouhlení DPH (očekávané je zaokrouhlení matematicky, viz § 37 ZDPH):\nFAKTURA: nastaveno \"nahoru\"\nOBP: nastaveno \"nahoru\"\nZÁLOHA: nastaveno \"nahoru\""
}
}

Chybu je možné potlačiť parametrom kontrolaZaokrouhleni=false (obdoba tlačidla Áno v desktopovej aplikácii), alebo zaokrúhlenie na typoch dokladov opraviť.


Kontrola typu dokladu

Ak existujú záväzky pre nasledujúce účtovné obdobie, je parameter typDokl povinný. Ak nie je v takom prípade uvedený, vráti sa chyba:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "K provedení operace je vyžadován parametr 'typDokl'"
}
}

Vybraný typ dokladu musí mať uloženú radu dokladu:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Vyplněný typ dokladu nemá zadanou řadu dokladu a žádná není specifikovaná."
}
}

Rada typu dokladu potom musí mať uloženú ročnú položku číselnej rady k nasledujúcemu účtovnému obdobiu:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Vybraná řada typu dokladu nemá zadanou roční položku číselné řady k následujícímu účetnímu období."
}
}


Kontrola kurzov pre precenenie

Ak je parametrom preceneni=true zapnuté precenenie dokladov, nasleduje kontrola kurzov pre precenenie. Pred volaním inicializácie je možné zavolať subresource, ktorý vráti zoznam mien s kurzom, ktorý bude pre precenenie použitý:

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/meny-pro-preceneni.json

Voliteľne je možné doplniť parameter ?ucetniObdobi=IDENTIFIKÁTOR_OBDOBÍ. Ak pri niektorej mene kurz alebo kurzové množstvo chýba (je 0.0), je potrebné ho pri inicializácii obdobia zadať.

Príklad odpovede

{
"meny-pro-preceneni": {
"datumPreceneni": "2024-12-31T00:00:00+01:00",
"meny": {
"mena": [
{
"symbol": "",
"kod": "DEM",
"kurz": "0.0",
"kurzMnozstvi": "1.0"
},
{
"symbol": "€",
"kod": "EUR",
"kurz": "24.725",
"kurzMnozstvi": "1.0"
},
{
"symbol": "",
"kod": "THB",
"kurz": "65.107",
"kurzMnozstvi": "100.0"
}
]
}
}
}

Pri inicializácii sa systém pokúsi kurzy pre precenenie stiahnuť z centrálnej banky. Kurz je tiež možné definovať pomocou URL parametrov v tvare ?kurz[KOD_MENY]=HODNOTA_KURZU&kurzMnozstvi[KOD_MENY]=HODNOTA_KURZOVEHO_MNOZSTVI:

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/inicializace-noveho-obdobi.json?…&preceneni=true&kurz[EUR]=24.52&kurzMnozstvi[EUR]=1.0&kurz[HUF]=6.12&kurzMnozstvi[HUF]=100.0

Pre každú menu je nutné uviesť obe hodnoty — kurz aj kurzové množstvo. Uložené hodnoty potom nájdete v evidencii /c/{firma}/kurz-pro-preceneni podľa kombinácie platiOdData a mena.

Ak pri inicializácii niektoré kurzy chýbajú, vráti sa chyba s výpočtom chýbajúcich mien:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Nebyly zadány všechny potřebné kurzy platné k poslednímu dni účetního období,\nkteré jsou nutné pro přecenění neuhrazených pohledávek/závazků:\nEUR: Euro, USD: Americký dolar"
}
}


Pohyby v chybnej mene

Ak je parametrom preceneni=true alebo preceneniBankAPokladen=true zapnuté precenenie bankových účtov a pokladní, nasleduje kontrola všetkých pohybov v precenených bankových účtoch a pokladniach. Ak sa nájde pohyb v inej ako tuzemskej mene alebo v mene, v ktorej je banka či pokladňa vedená, vráti sa chyba:

{
"winstrom": {
"@version": 1,
"success": false,
"message": "Následující bankovní účty a pokladny nelze přecenit:\n• <seznam všech chybných bank nebo pokladen>\nPřeceňovány mohou být pouze bankovní účty a pokladny, které mají pohyb v měně, ve které jsou vedeny nebo v tuzemské měně."
}
}

Chybu je možné potlačiť parametrom preceneniVynechatBanAPokSChybnouMenou=true — všetky chybné banky a pokladne budú potom z výpočtu precenenia vylúčené.


Príklad volania č. 1

1. Najprv zavoláme meny pre precenenie

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/meny-pro-preceneni.json?ucetniObdobi=2024

2. Ak dopyt vráti meny bez kurzu, kurz uložíme

POST https://demo.flexibee.eu/c/demo/kurz.json

Telo požiadavky pre evidenciu /kurz môže vyzerať takto:

{
"winstrom": {
"kurz": {
"platiOdData": "2024-12-31",
"nbStred": "25.75",
"kurzMnozstvi": 1,
"mena": "code:EUR"
}
}
}

3. Potom vykonáme inicializáciu

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/inicializace-noveho-obdobi.json?ucetniObdobi=2024&ucetOtv=701000&ucetZav=702000&ucetPre=710000&ucetVys=431001


Príklad volania č. 2

Inicializáciu je možné vykonať rovno aj s vyplnením kurzu:

GET https://demo.flexibee.eu/c/demo/ucetni-obdobi/inicializace-noveho-obdobi.json?ucetniObdobi=2024&ucetOtv=701000&ucetZav=702000&ucetPre=710000&ucetVys=431001&preceneni=true&kurz[EUR]=25&kurzMnozstvi[EUR]=1


Výsledok

Ak má inicializácia všetky potrebné dáta, spustí proces na pozadí a vráti status 202 Accepted. Na resource /c/{firma}/ucetni-obdobi je možné kontrolovať, či už inicializácia skončila — aktualizuje sa položka lastUpdate aktuálneho účtovného obdobia.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?