Preskoči na glavno vsebino

Import faktúry vo formáte ISDOC cez REST API

Ako naimportovať ISDOC pomocou API Flexi

Avtor: Petr Pech

ISDOC čiže Information System Document je formát elektronickej fakturácie v ČR. ABRA Flexi podporuje import aj export faktúr v tomto formáte. Cez REST API je možné importovať prijaté faktúry a pri použití pokročilého parametra aj vydané faktúry.


Spôsob volania

Import sa volá metódou PUT alebo POST na evidenciu prijatých faktúr; telom požiadavky je samotný súbor:

PUT https://demo.flexibee.eu/c/demo/faktura-prijata.isdoc?typDokl=code:ZBOZI-FAKTURA
Content-Type: application/x-isdoc

<obsah souboru .isdoc>

Formát vstupu môžete určiť dvoma spôsobmi, ktoré je možné aj kombinovať:

Vstupný súbor

Prípona v URL

Hlavička Content-Type

ISDOC

.isdoc

application/x-isdoc

PDF s vloženou faktúrou ISDOC

.pdf

application/pdf

Stačí uviesť jeden z oboch — PUT /c/{firma}/faktura-prijata bez prípony funguje, ak pošlete správnu hlavičku Content-Type.

⚠️ Pri PDF musí byť elektronická faktúra vložená v súbore ako príloha invoice.isdoc — takýto súbor vzniká napríklad exportom z ABRA Flexi. Obyčajné PDF bez vložených dát import odmietne chybou isDocImportNepodariloSeNajitInvoiceIsdoc.

Import vydanej faktúry

Ak je vo firme aktivovaný pokročilý parameter paramImportIsdocFav s hodnotou true, je možné rovnakým spôsobom importovať aj vydané faktúry:

PUT https://demo.flexibee.eu/c/demo/faktura-vydana.isdoc?typDokl=code:FAKTURA
Content-Type: application/x-isdoc

Ako parameter zapnúť, popisuje návod k tomuto doplnku.


URL parametre

Parameter

Povinný

Význam

typDokl

áno

Typ dokladu, pod ktorým bude faktúra importovaná. Uvádza sa ako identifikátor.

typUcOp

nie

Predpis zaúčtovania, opäť ako identifikátor.

odpocetZaloh

nie

Automatický odpočet záloh a ZDD. Predvolená hodnota je true.

ucetniObdobi

nie

Účtovné obdobie, do ktorého sa doklad naimportuje — skratka obdobia, napríklad ucetniObdobi=2025.

fileName

nie

Názov súboru priloženého k faktúre. API ukladá súbor, z ktorého faktúra vznikla, ako prílohu. Bez tohto parametra sa príloha volá import_{kod-faktury}.isdoc, resp. import_{kod-faktury}.pdf.

Neznáme parametre API ticho ignoruje, takže preklep v názve nepovinného parametra sa neprejaví chybou — iba sa nepoužije.

Príklady použitia

Import vydanej faktúry do minulého účtovného obdobia:

PUT https://demo.flexibee.eu/c/demo/faktura-vydana.isdoc?typDokl=code:FAKTURA&ucetniObdobi=2025
Content-Type: application/x-isdoc

Import prijatej faktúry bez automatického odpočtu záloh a s vlastným názvom prílohy:

PUT https://demo.flexibee.eu/c/demo/faktura-prijata.isdoc?typDokl=code:FAKTURA&odpocetZaloh=false&fileName=faktura_dodavatele.isdoc
Content-Type: application/x-isdoc

Úspešný import vracia 201 a v results ID aj číslo vzniknutého dokladu:

{
"winstrom": {
"@version": "1.0",
"success": "true",
"stats": {
"created": "1",
"updated": "0",
"deleted": "0",
"skipped": "0",
"failed": "0"
},
"results": [
{
"id": "2853",
"code": "PF0006/2026",
"ref": "/c/demo/faktura-prijata/2853"
}
]
}
}

ℹ️ Ak naimportujete doklad do iného než aktuálneho účtovného obdobia, odpoveď obvykle obsahuje varovanie dokladDuzpMimoAktualniUcetniObdobi. Doklad pritom vznikne. Legislatívne pravidlá však môžu import do starších období úplne odmietnuť — napríklad keď dátum uskutočnenia zdaniteľného plnenia presahuje zákonnú lehotu.


Odpočet záloh a zálohových daňových dokladov

Ak ISDOC faktúra obsahuje odpočty záloh alebo ZDD, je možné ich pri importe automaticky odpočítať.

S parametrom odpocetZaloh=false bude faktúra vytvorená bez odpočtov. Odpoveď je aj tak 201 Created, obsahuje ale varovanie o prítomnosti záloh:

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>1</created>
<updated>0</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result>
<id>109</id>
<code>PF0017/2022</code>
<warnings>
<warning>Doklad (PF023/2050) obsahuje odpočty záloh nebo zálohových daňových dokladů, doklad byl vytvořen bez odpočtů.

Zálohy:
Číslo dokladu | Variabilní symbol | Částka
----------------------------------------
ZALOHA_2 | 12345 | 100,00 Kč

Zálohové daňové doklady:
Číslo dokladu | Variabilní symbol | Částka
-------------------------------------
ZDD_1 | 98765432 | 200,00 Kč</warning>
</warnings>
</result>
</results>
</winstrom>

Automatický odpočet

S odpocetZaloh=true alebo bez uvedenia parametra sa systém pokúsi k uvedeným odpočtom nájsť zálohové doklady a odpočítať ich. Ak sa to nepodarí, volanie skončí chybou 400 a v odpovedi je výpočet odpočtov a zálohových dokladov, ktoré sa podarilo nájsť.

Aby mohol byť doklad odpočítaný, musí spĺňať tieto požiadavky:

  • Musí súhlasiť firma dokladu, mena a suma — rovnaká alebo väčšia. Firma musí byť vopred uložená v adresári.

  • Číslo dokladu odpočtu musí byť rovnaké ako došlé alebo interné číslo dokladu zálohy, alebo musí súhlasiť variabilný symbol odpočtu a zálohy.

  • Ak existuje viac zhôd, odpočet sa neuskutoční.

Príklad odpovede neúspešného automatického odpočtu so stavom 400 Bad Request:

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>false</success>
<stats>
<created>0</created>
<updated>0</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>1</failed>
</stats>
<results>
<result>
<errors>
<error>Doklad (PF023/2050) obsahuje odpočty záloh nebo zálohových daňových dokladů, které se nepodařilo automaticky odečíst.

Zálohy:
Číslo dokladu | Variabilní symbol | Částka | Nalezený doklad
----------------------------------------------------------
ZALOHA_1 | 123456 | 250,00 Kč | nenalezeno
ZALOHA_2 | 999999 | 100,00 Kč | nenalezeno
ZALOHA_2 | 999999 | 300,00 Kč | Z0001/2022

Zálohové daňové doklady:
Číslo dokladu | Variabilní symbol | Částka | Nalezený doklad
-------------------------------------------------------
ZDD_1 | 852585 | 200,00 Kč | PF0001/2022
ZDD_2 | 852586 | 200,00 Kč | PF0002/2022
ZDD_3 | 852587 | 200,00 Kč | nenalezeno
ZDD_4 | 852588 | 200,00 Kč | nenalezeno</error>
</errors>
</result>
</results>
</winstrom>

Ak automatické odpočítanie záloh zlyhá, buď pripravte doklady tak, aby odpočet prebehol, alebo použite odpocetZaloh=false a odpočet dokončite samostatným volaním.


Predvolený sklad pre skladové položky

Ak importovaný ISDOC obsahuje skladové položky, vytvorí ABRA Flexi k faktúre skladový doklad. Sklad, na ktorý sa zásoba naskladní, určuje pokročilý parameter paramImportIsdocVychoziSklad, ktorého hodnotou je kód skladu.

⚠️ Ak evidujete viac ako jeden sklad, nastavenie tohto parametra je nutné. Na rozdiel od sprievodcu importom v desktopovej aplikácii nie je možné pri volaní cez API cieľový sklad vybrať interaktívne.

Parameter sa do firmy nahráva importom XML rovnako ako ostatné pokročilé parametre:

<winstrom version="1.0">
<parametr>
<!-- kód parametru -->
<paramK>paramImportIsdocVychoziSklad</paramK>
<!-- kód skladu, hodnota parametru -->
<hodnota>SKLAD</hodnota>
</parametr>
</winstrom>


Chybové stavy

Kód chyby

Príčina

—

Chýba alebo je neplatný parameter typDokl — hlásenie znie Neplatna nebo chybejici hodnota povinneho parametru typDokl.

isDocImportNepodariloSeNajitInvoiceIsdoc

V poslanom PDF sa nenašla vložená faktúra invoice.isdoc.

dokladDuzpUctoPoDuzpPuvError2025

Dátum uskutočnenia zdaniteľného plnenia presahuje zákonnú lehotu — typicky pri importe do výrazne staršieho účtovného obdobia.

Všetky uvedené prípady vracajú 400 a doklad nevznikne.


FAQ


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?