Podpis k úhradě přes REST API

Jak podepsat fakturu k úhradě pomocí REST API

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

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:
POST https://demo.flexibee.eu/c/demo/faktura-prijata.xml (.json)

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

případně zápis

<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/demo141020_v26/faktura-prijata/910.json"
} ] } }

Filtrování faktur k podpisu

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

Akci lze vyvolat i dávkově nad skupinou dokladů pomocí filtru:

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

Obdobně lze request zaslat ve formátu JSON a pomocí filtrace:

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

Neúspěšné requesty

1. zadaný/filtrovaný objekt (faktura) neexistuje

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

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


2. 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, sign-for-payment, uhrad-zapoctem] [PF0013/2223]</error>

3. š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>

4. objekt (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]"
Dostali jste odpověď na svou otázku?