Preskoči na glavno vsebino

Podpis k úhrade 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 k úhrade (viď nastavenie). Podpísaný doklad je potom možné zadať do príkazu k úhrade, 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ť filtrovanie a podpísať tak viacero faktúr.

Príklady použitia

Request zasielame metódou 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>

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

Filtrovanie faktúr na podpis

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

Akciu možno vyvolať aj dávkovo nad skupinou dokladov pomocou filtra:

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

Obdobne možno request zaslať vo formáte JSON a pomocou filtrovania:

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

Neúspešné requesty

1. zadaný/filtrovaný objekt (faktúra) neexistuje

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

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


2. akcia je zle zapísaná

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

<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. zle zapísaný filter

Filter nezodpovedá definovaným pravidlám filtrovania, 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>

4. objekt (faktúra) je zamknutý

V prípade, že sa pokúšate podpísať doklad, ktorý je zamknutý, odpoveďou je neúspech. Doklad je najskôr potrebné odomknúť akciou action ="unlock":

"message": "Záznam je zamčený. [PF0031/2021]"
Ste s tem dobili odgovor na svoje vprašanje?