Preskoči na glavno vsebino

Podpis na úhradu cez REST API

Ako podpísať faktúru na úhradu pomocou REST API

Avtor: Petr Pech

ABRA Flexi môže vyžadovať podpis faktúry pred vystavením príkazu na úhradu (pozri nastavenie). Podpísaný doklad je potom možné zadať do príkazu na úhradu, bez podpísania nie.

REST API umožňuje podpísať faktúru pomocou akcie sign-for-payment. Na zrušenie podpisu slúži akcia unsign-for-payment. Na vykonanie akcie musíme poznať konkrétne ID (kód) faktúry, alebo je možné využiť filtráciu a podpísať tak viacero faktúr.


Príklady použitia

Request zasielame metódou POST na URL https://demo.flexibee.eu/c/demo/faktura-prijata.xml (prípadne .json):

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

Prípadne zápis s identifikátorom v samostatnom elemente:

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

Obdobne je možné request zaslať vo formáte JSON a pomocou interného čísla dokladu. Pridanie podpisu k úhrade:

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

Zrušenie podpisu k úhrade:

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

Odpoveď ABRA Flexi je potom aktualizácia 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"
}
]
}
}


Filtrovanie faktúr na podpis

Akciu je možné vyvolať aj dávkovo nad skupinou dokladov pomocou filtra. Request opäť zasielame metódou 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>

Obdobne vo formáte JSON:

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


Neúspešné requesty

Zadaný alebo filtrovaný objekt neexistuje

V prípade, že sa objekt nepodarí nájsť, je odpoveď API:

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

Akcia je zapísaná nesprávne

V prípade, že voláte nesprávnu akciu (preklep či chyba v názve):

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

⚠️ Výpočet akcií v tejto chybovej správe nie je úplný — sign-for-payment a unsign-for-payment nad prijatou faktúrou fungujú, aj keď ich správa nevypisuje. Neberte teda zoznam v správe ako kompletný prehľad dostupných akcií.

Nesprávne zapísaný filter

Filter nezodpovedá definovaným pravidlám filtrácie; odpoveďou je približná pozícia chyby vo filtri:

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

Faktúra je uzamknutá

V prípade, že sa snažíte podpísať doklad, ktorý je uzamknutý, odpoveďou je neúspech. Doklad je najprv potrebné odomknúť akciou action="unlock":

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


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?