Přeskočit na hlavní obsah

Import faktury ve formátu ISDOC přes REST API

Jak naimportovat ISDOC pomocí API Flexi

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než 2 lety

ISDOC neboli Information System Document je formát elektronické fakturace v ČR. ABRA Flexi podporuje import i export faktur v tomto formátu. API umožňuje importovat přijaté faktury a s použitím pokročilého parametru i vydané faktury.

Způsob volání

Lze využít HTTP metodu: PUT nebo POST.

Endpoint pro import ISDOC je https://localhost:5434/c/firma/faktura-prijata.isdoc.

Pokud je aktivovaný pokročilý parametr paramImportIsdocFav = true, lze importovat vydané faktury na adrese https://localhost:5434/c/firma/faktura-vydana.isdoc.

Pro ukázku využijeme program curl. cURL má vlastní dokumentaci.

curl -H "Content-Type: application/x-isdoc" -k -u xxx:xxx -X PUT https://localhost:5434/c/firma/faktura-prijata.isdoc?typDokl=code:ZBOZI-FAKTURA" -T "/cesta/soubor.isdoc"
  • -u určuje autorizační údaje do Flexi.

  • -H hlavička určující typ soubor

  • -k pokud používáte vlastní instalaci a automaticky generovaný certifikát, je nutné ignorovat nedůvěryhodnou certifikační autoritu.

  • -T zasílaný soubor (tělo požadavku)

V příkladu je uveden URL parametr typDokl, který reprezentuje typ dokladu, pod kterým bude doklad importován do ABRA Flexi. Nyní si ukážeme jaké další parametry je možné využít.

URL parametry

  • odpocetZaloh - Automatický odpočet záloh a ZDD (výchozí: true), typ: boolean

  • ucetniObdobi - Hodnotou tohoto parametru lze určit, do jakého účetního období se má doklad naimportovat, typ: zkratka (např. ucetniObdobi=2022)

Příklady použití

curl -H "Content-Type: application/x-isdoc" -k -u xxx:xxx -X PUT https://localhost:5434/c/firma/faktura-vydana.isdoc?typDokl=code:FAKTURA&ucetniObdobi=2020" -T "/cesta/soubor.isdoc"

V tomto příkladě je importována faktura do evidence vydané faktury a zároveň do minulého období 2020. Pro funkčnost je nutné zapnout pokročilý parametr, který naleznete v našich doplňcích - Jak importovat ISDOC faktury vydané?

curl -H "Content-Type: application/x-isdoc" -k -u xxx:xxx -X PUT https://localhost:5434/c/firma/faktura-prijata.isdoc?typDokl=code:FAKTURA&odpocetZaloh=false" -T "/cesta/soubor.isdoc"

V příkladě výše je nastaven parametr odpocetZaloh na hodnotu false, nebude tedy dostupný odpočet automaticky zpracován. Více níže.

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. Pokud je URL parametr odpocetZaloh=false, faktura bude vytvořena bez odpočtů, odpověď serveru bude obsahovat varování o přítomnosti záloh.

Odpověď serveru bude přesto RESPONSE: status=HTTP/1.1 201 Created. Dále odpověď obsahuje warning, který popisuje skutečnost, že existují odpočty záloh nebo ZDD.

<?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

Pokud je URL parametr odpocetZaloh=true nebo není uveden, systém se pokusí k uvedeným odpočtům najít zálohové doklady a odpočíst je. Pokud se to nezdaří API volání skončí chybou (kód 400) a je vrácena chybová hláška s výčtem odpočtů a zálohových dokladů, které se podařilo najít.

Aby mohl být doklad odpočtený, musí splňovat následující požadavky:

  • Musí souhlasit firma dokladu, měna a částka (stejná nebo větší). Firma musí být předem uložena 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

RESPONSE: status=HTTP/1.1 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>
</result>
</results>
</winstrom>

Pokud automatické odpočtení záloh selže, je možné buď připravit doklady tak, aby bylo možné odpočet provést nebo použít parametr odpocetZaloh=false a odpočet dokončit v samostatném volání.

FAQ

Potřebujete poradit?

V případě dotazů k aplikaci nás kontaktujte na podporaflexi@abra.eu případně prostřednictvím chat okna v pravém dolním rohu.

Dostali jste odpověď na svou otázku?