Preskoči na glavno vsebino

Zmluvy v API

Ako vytvárať odberateľské či dodávateľské zmluvy pomocou REST API Flexi?

Avtor: Petr Pech

Odberateľské a dodávateľské zmluvy slúžia na automatickú fakturáciu v pravidelných, príp. aj nepravidelných intervaloch na základe využívania alebo poskytovania služieb.

Zmluvy je možné pomocou REST API generovať alebo aj valorizovať. V tomto návode sa pozrieme, ako zmluvy pomocou REST API vytvárať. Pomocou REST API je možné vytvárať odberateľské aj dodávateľské zmluvy.

Spôsob volania

Tvorbu zmluvy je možné zabezpečiť HTTP metódou: PUT alebo POST.

Sú podporované výstupné formáty: XML alebo JSON.

Evidencia je dostupná na adresách:

/c/{firma}/smlouva/properties - pre odberateľské zmluvy

/c/{firma}/dodavatelska-smlouva/properties pre dodávateľské zmluvy, kde {firma} je databázový identifikátor firmy.

Príklad endpointov na demo firme:

Existujú ďalšie sprievodné evidencie, ktoré slúžia na sledovanie alebo import sprievodných informácií:

  • slúži na definíciu typu zmluvy, ide o predpis zmluvy obdobne ako typ dokladu, ktorý využijeme na tvorbu reálnej zmluvy.

  • slúži na evidenciu vlastných stavov zmlúv, napríklad ak je potrebné na prvý pohľad rozlíšiť podľa nejakého príznaku.

  • každá zmluva, aby došlo k vygenerovaniu faktúry, musí mať nadefinovanú položku, ktorá sa má generovať do faktúry, a ďalšie špecifiká týkajúce sa frekvencie a dátumu generovania faktúry. Upozornenie: táto evidencia je spoločná pre položky dodávateľských aj odberateľských zmlúv. Položky nie je možné importovať samostatne bez uvedenia hlavičky zmluvy.

  • slúži na sledovanie histórie generovania faktúr zo zmlúv. Obsahuje informácie o používateľovi, dátume generácie, spôsobe (manuálna/automatická), počtoch generovaných faktúr a prípadných chybách.

Telo požiadavky

V tele požiadavky je nutné uviesť hlavičku zmluvy, povinné vlastnosti a prípadne položky zmluvy. Položky zmluvy je možné importovať následne aktualizáciou danej zmluvy. Povinné polia pri tvorbe hlavičky zmluvy sú:

  • kod - číslo zmluvy, max. 20 znakov

  • nazev - názov zmluvy, max. 255 znakov

  • smlouvaOd - začiatok platnosti zmluvy, vo formáte podľa dokumentácie (všeobecne nastáva okamihom podpisu zmluvy), platnosť v položke zmluvy má prednosť.

  • typSml - odkaz na definovaný typ zmluvy

  • firma - odkaz na adresár firiem, firma, ku ktorej sa zmluva viaže.

Pre úplnosť uvádzame aj povinné polia položiek zmlúv:

  • kod - označenie položky zmluvy, max. 20 znakov

  • nazev - názov položky zmluvy, max. 255 znakov

Upozornenie: Ďalšie vlastnosti nie sú povinné, avšak pre správne generovanie faktúr je nutné polia nastaviť podľa špecifík, ako je potrebné faktúry generovať. Viac informácií o nastavení a príkladoch generovania nájdete v dokumentácii Odberateľské a dodávateľské zmluvy v praxi.

Výsledok

V prípade úspešnej tvorby zmluvy je možné skontrolovať HTTP status odpovede alebo vlastnosť success v získanom dokumente, ktorá má hodnotu true.

V prípade úspešného vykonania služby je vrátený HTTP status 201 Created a dokument zodpovedajúci štandardnému formátu, viď návratové hodnoty.

V prípade neúspechu je vrátený status 4xx/5xx a správa o dôvode neúspechu.

Ukážky volania

1. volanie v XML

POST https://demo.flexibee.eu/c/demo/smlouva.xml

Tělo:
<winstrom>
<smlouva>
<kod>INTERNETROK23</kod>
<nazev>Internet na rok výhodně</nazev>
<smlouvaOd>2023-03-01</smlouvaOd>
<typSml>code:SMLOUVA</typSml>
<firma>code:ABRA</firma>
</smlouva>
</winstrom>

V prípade tohto volania dôjde k vytvoreniu odberateľskej zmluvy „Internet na rok výhodne" s vopred definovaným typom SMLOUVA pre firmu ABRA, ktorá je platná od 1. 3. 2023.

2. volanie v JSON:

PUT https://demo.flexibee.eu/c/demo/dodavatelska-smlouva.json

Tělo:
{
"winstrom": {
"dodavatelska-smlouva": {
"kod": "INTERNETROK23",
"nazev": "Internet na rok výhodně",
"smlouvaOd": "2023-03-01",
"typSml": "code:SMLOUVA",
"firma": "code:ABRA",
"frekFakt": 12,
"den": 31,
"mesic": 1,
"zpusFaktK": "zpusobFakt.dopredu",
"typDoklFak": "code:FAKTURA",
"polozkySmlouvy": {
"smlouva-polozka": [
{
"kod": "INTERNET2023",
"nazev": "Internet výhodně 2023"
},
{
"cenik": "code:KONZULTACE"
}
]
}
}
}
}

V tomto prípade dôjde k tvorbe dodávateľskej zmluvy s dvoma položkami „Internet na rok výhodne" s vopred definovaným typom SMLOUVA pre firmu ABRA, ktorá je platná od 1. 3. 2023. Faktúry sa budú generovať s typom dokladu FAKTURA, frekvencia fakturácie je nastavená na 12 mesiacov, obrátkový deň a mesiac je 31/1, fakturované vopred. Položka KONZULTACE je riešená pomocou cenníkovej položky, na ktorú je odkazované jej kódom, odkiaľ sú automaticky prevzaté povinné polia kód a názov. Položka INTERNET2023 je vytvorená bez väzby na cenník.

Neúspešné requesty

1. V prípade, že chýba typ zmluvy, dôjde k chybe 400 Bad Request

<message>Pole 'Typ smlouvy' musí být vyplněno. </message>

2. POZOR: Flexi nijako nekontroluje hodnoty v nepovinných vlastnostiach, ako sú frekvencia fakturácie, obrátkový deň a mesiac a pod. Požiadavka prejde a výsledkom sú potom nezmyselné hodnoty, ktoré zabrania generácii:

"frekFakt": 121,
"den": 311,
"mesic": 13

3. V prípade, že je nesprávne zadaný číselníkový údaj, napríklad spôsob fakturácie, dôjde k chybe 400 Bad Request:

"message": "zpusobFakt.doprdu není platný kód lokalizovaného číselníku zpusobFakt. [INTERE23]",

FAQ

Príklady zadania zmlúv

Odberateľské zmluvy v praxi

Ako nájsť vygenerovanú faktúru zo zmluvy?

Väzba medzi faktúrou a zmluvou nevzniká. Z faktúry je možné danú zmluvu dohľadať iba podľa poľa cisSml.

Potrebujete poradiť?

V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu prípadne prostredníctvom okna chatu v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?