ISDOC neboli Information System Document je formát elektronické fakturace v ČR. ABRA Flexi podporuje import i export faktur v tomto formátu. Přes REST API lze importovat přijaté faktury a s použitím pokročilého parametru i vydané faktury.
Způsob volání
Import se volá metodou PUT nebo POST na evidenci přijatých faktur; tělem požadavku je samotný soubor:
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čit dvěma způsoby, které lze i kombinovat:
Vstupní soubor | Přípona v URL | Hlavička Content-Type |
ISDOC |
|
|
PDF s vloženou fakturou ISDOC |
|
|
Stačí uvést jedno z obou — PUT /c/{firma}/faktura-prijata bez přípony funguje, pokud pošlete správnou hlavičku Content-Type.
⚠️ U PDF musí být elektronická faktura vložená v souboru jako příloha invoice.isdoc — takový soubor vzniká například exportem z ABRA Flexi. Obyčejné PDF bez vložených dat import odmítne chybou isDocImportNepodariloSeNajitInvoiceIsdoc.
Import vydané faktury
Je-li ve firmě aktivovaný pokročilý parametr paramImportIsdocFav s hodnotou true, lze stejným způsobem importovat i vydané faktury:
PUT https://demo.flexibee.eu/c/demo/faktura-vydana.isdoc?typDokl=code:FAKTURA
Content-Type: application/x-isdoc
Jak parametr zapnout, popisuje návod k tomuto doplňku.
URL parametry
Parametr | Povinný | Význam |
| ano | Typ dokladu, pod kterým bude faktura importována. Uvádí se jako identifikátor. |
| ne | Předpis zaúčtování, opět jako identifikátor. |
| ne | Automatický odpočet záloh a ZDD. Výchozí hodnota je |
| ne | Účetní období, do kterého se doklad naimportuje — zkratka období, například |
| ne | Název souboru přiloženého k faktuře. API ukládá soubor, ze kterého faktura vznikla, jako přílohu. Bez tohoto parametru se příloha jmenuje |
Neznámé parametry API tiše ignoruje, takže překlep v názvu nepovinného parametru se neprojeví chybou — pouze se nepoužije.
Příklady použití
Import vydané faktury do minulého účetního období:
PUT https://demo.flexibee.eu/c/demo/faktura-vydana.isdoc?typDokl=code:FAKTURA&ucetniObdobi=2025
Content-Type: application/x-isdoc
Import přijaté faktury bez automatického odpočtu záloh a s vlastním názvem pří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
Úspěšný import vrací 201 a v results ID i číslo vzniklé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"
}
]
}
}
ℹ️ Naimportujete-li doklad do jiného než aktuálního účetního období, odpověď obvykle obsahuje varování dokladDuzpMimoAktualniUcetniObdobi. Doklad přitom vznikne. Legislativní pravidla ale mohou import do starších období odmítnout úplně — například když datum uskutečnění zdanitelného plnění přesahuje zákonnou lhůtu.
Odpočet záloh a zálohových daňových dokladů
Pokud ISDOC faktura obsahuje odpočty záloh nebo ZDD, je možné je při importu automaticky odečíst.
S parametrem odpocetZaloh=false bude faktura vytvořena bez odpočtů. Odpověď je i tak 201 Created, obsahuje ale varování o pří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 nebo bez uvedení parametru se systém pokusí k uvedeným odpočtům najít zálohové doklady a odečíst je. Pokud se to nezdaří, volání skončí chybou 400 a v odpovědi je výčet odpočtů a zálohových dokladů, které se podařilo najít.
Aby mohl být doklad odpočtený, musí splňovat tyto požadavky:
Musí souhlasit firma dokladu, měna a částka — stejná nebo větší. Firma musí být předem uložená v adresáři.
Číslo dokladu odpočtu musí být stejné jako číslo došlé nebo interní číslo dokladu zálohy, nebo musí souhlasit variabilní symbol odpočtu a zálohy.
Pokud existuje více shod, odpočet nebude proveden.
Příklad odpovědi neúspěšného automatického odpočtu se stavem 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>
Selže-li automatické odpočtení záloh, buď připravte doklady tak, aby odpočet proběhl, nebo použijte odpocetZaloh=false a odpočet dokončete samostatným voláním.
Výchozí sklad pro skladové položky
Obsahuje-li importovaný ISDOC skladové položky, vytvoří ABRA Flexi k faktuře skladový doklad. Sklad, na který se zásoba naskladní, určuje pokročilý parametr paramImportIsdocVychoziSklad, jehož hodnotou je kód skladu.
⚠️ Pokud evidujete více než jeden sklad, je nastavení tohoto parametru nutné. Na rozdíl od průvodce importem v desktopové aplikaci nelze při volání přes API cílový sklad vybrat interaktivně.
Parametr se do firmy nahrává importem XML stejně jako ostatní pokročilé parametry:
<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 | Příčina |
— | Chybí nebo je neplatný parametr |
| V poslaném PDF se nenašla vložená faktura |
| Datum uskutečnění zdanitelného plnění přesahuje zákonnou lhůtu — typicky při importu do výrazně staršího účetního období. |
Všechny uvedené případy vracejí 400 a doklad nevznikne.
FAQ
