Přeskočit na hlavní obsah

Inicializace účetního období přes REST API

Jak uzavřít období a iniciovat následující pomocí REST API Flexi?

Autor: Petr Pech

REST API ABRA Flexi nabízí obdobu vyvolání menu Účetnictví → Inicializace následujícího období. Inicializaci je možné volat opakovaně, stejně jako v desktopové aplikaci.


Způsob volání

Služba je dostupná metodou GET na adrese /c/{firma}/ucetni-obdobi/inicializace-noveho-obdobi.{přípona}, podporovanými formáty jsou json a xml.

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

Pokud neexistuje následující účetní období, vrací se 400 s kódem uzaverkaNeexistujeNasledujici:

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

Po založení účetního období lze inicializaci volat opakovaně.


Povinné parametry

Parametr

Význam

Vyžadovaný druh účtu

ucetOtv

Účet otevření účetní knihy

druhUctu.otevknih

ucetZav

Účet uzavření účetní knihy

druhUctu.uzavknih

ucetPre

Účet převodu hospodářského výsledku

druhUctu.prhosvys

ucetVys

Účet výsledku hospodaření ve schvalovacím řízení

druhUctu.pasivhvy

Očekávanými hodnotami jsou kódy účtů z účtového rozvrhu, které mají odpovídající hodnotu druhUctuK — například ucetZav=702000. Uvést lze i tvar s prefixem, tedy ucetZav=code:702000. Více informací o druhu účtu naleznete v evidenci /ucet.

ℹ️ V případě firmy typu daňová evidence nejsou parametry účtů podvojného účetnictví vyžadovány.

Pokud některý z povinných parametrů chybí, vrátí se 400 s kódem missing_param_exception:

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

Pokud byl vybrán nesprávný účet (například ucetZav=701000), vrátí se tato 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']"
}
}


Volitelné parametry

  • ucetniObdobi — identifikátor období, které se má uzavřít. Pokud není uvedeno, uzavírá se aktuální období.

  • preceneni — provést přecenění bankovních účtů a pokladen i přecenění neuhrazených dokladů (true/false).

  • preceneniNeuhrazenychDokladu — provést přecenění pouze neuhrazených dokladů (true/false).

  • preceneniBankAPokladen — provést přecenění pouze bankovních účtů a pokladen (true/false).

  • preceneniVynechatBanAPokSChybnouMenou — vyloučit z přecenění banky a pokladny s pohybem v nepodporované měně (true/false).

  • prevodSkladu — provést převod skladu (true/false).

  • vynechatNulove — vynechat karty s nulovým zůstatkem (true/false).

  • dnyBezPohybu — počet dnů bez pohybu pro vynechání (celé číslo).

  • zrusitStare — v novém účetním období zrušit nepoužívané staré karty (true/false).

  • typDokl — typ dokladu pro generování závazků leasingových splátek.

  • kontrolaZaokrouhleni — hodnotou false potlačíte kontrolu zaokrouhlení DPH na typech dokladů.

  • kurz[KOD_MENY] a kurzMnozstvi[KOD_MENY]kurz měny pro přecenění.

Výchozí hodnoty všech booleanových parametrů jsou false.

📝 Volbu Potvrzovat vynechání karty, kterou nabízí desktopová aplikace, REST API nepodporuje.


Kontrola zaokrouhlení

Pokud mají některé typy dokladů nestandardně nastavené zaokrouhlení, vrátí se 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 lze potlačit parametrem kontrolaZaokrouhleni=false (obdoba tlačítka Ano v desktopové aplikaci), nebo zaokrouhlení na typech dokladů opravit.


Kontrola typu dokladu

Pokud existují závazky pro následující účetní období, je parametr typDokl povinný. Není-li v takovém případě uveden, vrátí se chyba:

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

Vybraný typ dokladu musí mít uloženou řadu dokladu:

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

Řada typu dokladu pak musí mít uloženou roční položku číselné řady k následujícímu účetnímu období:

{
"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 kurzů pro přecenění

Pokud je parametrem preceneni=true zapnuto přeceňování dokladů, následuje kontrola kurzů pro přecenění. Před voláním inicializace je možné zavolat subresource, který vrátí seznam měn s kurzem, jenž bude pro přecenění použit:

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

Volitelně lze doplnit parametr ?ucetniObdobi=IDENTIFIKÁTOR_OBDOBÍ. Pokud u některé měny kurz nebo kurzové množství chybí (je 0.0), je potřeba jej při inicializaci období zadat.

Příklad odpovědi

{
"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"
}
]
}
}
}

Při inicializaci se systém pokusí kurzy pro přecenění stáhnout z centrální banky. Kurz je také možné definovat pomocí URL parametrů ve tvaru ?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

Pro každou měnu je nutné uvést obě hodnoty — kurz i kurzové množství. Uložené hodnoty pak najdete v evidenci /c/{firma}/kurz-pro-preceneni podle kombinace platiOdData a mena.

Pokud při inicializaci některé kurzy chybí, vrátí se chyba s výčtem chybějících měn:

{
"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 chybné měně

Pokud je parametrem preceneni=true nebo preceneniBankAPokladen=true zapnuto přeceňování bankovních účtů a pokladen, následuje kontrola všech pohybů v přeceňovaných bankovních účtech a pokladnách. Pokud se nalezne pohyb v jiné než tuzemské měně nebo v měně, ve které je banka či pokladna vedena, vrátí se 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 lze potlačit parametrem preceneniVynechatBanAPokSChybnouMenou=true — všechny chybné banky a pokladny pak budou z výpočtu přecenění vyloučeny.


Příklad volání č. 1

1. Nejprve zavoláme měny pro přecenění

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

2. Pokud dotaz vrátí měny bez kurzu, kurz uložíme

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

Tělo požadavku pro evidenci /kurz může vypadat takto:

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

3. Poté provedeme inicializaci

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


Příklad volání č. 2

Inicializaci lze provést rovnou i s vyplnění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ýsledek

Pokud má inicializace všechna potřebná data, spustí proces na pozadí a vrátí status 202 Accepted. Na resource /c/{firma}/ucetni-obdobi je možné kontrolovat, jestli už inicializace skončila — aktualizuje se položka lastUpdate aktuálního účetního období.


Související

Dostali jste odpověď na svou otázku?