Přeskočit na hlavní obsah

Podpis k úhradě přes REST API

Jak podepsat fakturu k úhradě pomocí REST API

Autor: Petr Pech

ABRA Flexi může vyžadovat podpis faktury před vystavením příkazu k úhradě (viz nastavení). Podepsaný doklad je pak možné zadat do příkazu k úhradě, bez podepsání nikoliv.

REST API umožňuje podepsat fakturu pomocí akce sign-for-payment. Ke zrušení podpisu slouží akce unsign-for-payment. K provedení akce musíme znát konkrétní ID (kód) faktury, nebo je možné využít filtrace a podepsat tak více faktur.


Příklady použití

Request zasíláme metodou POST na URL https://demo.flexibee.eu/c/demo/faktura-prijata.xml (případně .json):

<winstrom version="1.0">
<faktura-prijata id="123" action="sign-for-payment"/>
</winstrom>

Případně zápis s identifikátorem v samostatném elementu:

<winstrom version="1.0">
<faktura-prijata action="sign-for-payment">
<id>123</id>
</faktura-prijata>
</winstrom>

Obdobně lze request zaslat ve formátu JSON a pomocí interního čísla dokladu. Přidání podpisu k úhradě:

{
"winstrom": {
"faktura-prijata": {
"id": "code:PF0015/2022",
"@action": "sign-for-payment"
}
}
}

Zrušení podpisu k úhradě:

{
"winstrom": {
"faktura-prijata": {
"id": "code:PF0015/2022",
"@action": "unsign-for-payment"
}
}
}

Odpověď ABRA Flexi je pak aktualizace vybraného záznamu:

{
"winstrom": {
"@version": "1.0",
"success": "true",
"stats": {
"created": "0",
"updated": "1",
"deleted": "0",
"skipped": "0",
"failed": "0"
},
"results": [
{
"id": "910",
"request-id": "code:PF0015/2022",
"ref": "/c/demo/faktura-prijata/910.json"
}
]
}
}


Filtrování faktur k podpisu

Akci lze vyvolat i dávkově nad skupinou dokladů pomocí filtru. Request opět zasíláme metodou POST na https://demo.flexibee.eu/c/demo/faktura-prijata.xml:

<winstrom version="1.0">
<faktura-prijata filter="datSplat gt now()"
action="sign-for-payment"/>
</winstrom>

Obdobně ve formátu JSON:

{
"winstrom": {
"faktura-prijata": {
"@filter": "sumCelkem lt 100",
"@action": "unsign-for-payment"
}
}
}


Neúspěšné requesty

Zadaný nebo filtrovaný objekt neexistuje

V případě, že se objekt nepodaří nalézt, je odpověď API:

"message": "Objekt bude teprve vytvořen, žádnou akci nelze provést."

Akce je špatně zapsána

V případě, že voláte špatnou akci (překlep či chyba v názvu):

<error>Atribut 'action' obsahuje špatnou hodnotu. Pro daný objekt smí obsahovat jen:
[delete, lock, lock-for-ucetni, storno, uhrad-zapoctem] [PF0013/2223]</error>

⚠️ Výčet akcí v této chybové zprávě není úplný — sign-for-payment a unsign-for-payment nad přijatou fakturou fungují, i když je zpráva nevypisuje. Neberte tedy seznam ve zprávě jako kompletní přehled dostupných akcí.

Špatně zapsaný filtr

Filtr neodpovídá definovaným pravidlům filtrace; odpovědí je přibližná pozice chyby ve filtru:

<error>Špatný formát WQL dotazu, problém na pozici 11 poblíž textu 'now()'
org.antlr.v4.runtime.misc.ParseCancellationException
org.antlr.v4.runtime.NoViableAltException</error>

Faktura je zamčená

V případě, že se snažíte podepsat doklad, který je zamčený, odpovědí je neúspěch. Doklad je nutné nejprve odemknout akcí action="unlock":

"message": "Záznam je zamčený. [PF0031/2021]"


Související

Dostali jste odpověď na svou otázku?