Verzia 2 nemení adresy endpointov, parametre ani návratové kódy. Mení len spôsob, akým sa dáta a API kľúč posielajú na server:
Dôvod je bezpečnosť: obsah adresy URL sa bežne zapisuje do logov serverov, proxy a hostingu, telo požiadavky a hlavičky nie. Pôvodný spôsob volania (metóda GET s parametrom data) zostáva funkčný pre existujúce integrácie a je popísaný v manuáli verzie 1. Pre nové integrácie odporúčame výhradne verziu 2. Obe verzie je možné kombinovať, server ich rozlišuje automaticky pri každom volaní.
Každé volanie API je požiadavka metódou POST na adresu endpointu. Požiadavka musí obsahovať:
Content-Type: application/json,Authorization: Bearer VAS_API_KLUC,Odpoveď je vždy vo formáte JSON a obsahuje pole status (1 = v poriadku, inak číslo chyby podľa tabuľky pri danom endpointe). Volania po inicializácii sedenia musia posielať cookie sedenia, ktorú server vrátil pri volaní /api/init.
curl -X POST https://www.faktury-online.com/api/init \
-H "Content-Type: application/json" \
-H "Authorization: Bearer VAS_API_KLUC" \
-c cookies.txt \
-d '{"email":"name@example.com"}'
POST https://www.faktury-online.com/api/init(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. |
Array
(
[email] => name@example.com
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku, inicializácia sedenia bola vytvorená |
| 102 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 103 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 104 | Chyba | API kľúč nie je zadaný správne. |
| 105 | Chyba | Parameter email nie je zadaný. |
| 106 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 107 | Chyba | Používateľ neexistuje. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
$result = json_decode($output, true);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Sedenie bolo vytvorené";
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
)
POST https://www.faktury-online.com/api/nf(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| apitest | nepovinný parameter | Parameter apitest určuje, či vytvorená faktúra slúži na testovacie účely. Tento parameter by mali použiť iba vývojári, ktorí implementujú Faktúry online API. Systém bude brať vytvorenú faktúru ako testovaciu a v rozmedzí 5 až 10 minút ju odstráni. Odporúčame mať túto hodnotu zapnutú pri testovaní implementácie API. V produkčnej prevádzke túto hodnotu vypnite, inak sa faktúry odstránia automaticky. Možné hodnoty: 1 alebo 0 Predvolená hodnota: 0 |
| Parameter | Atribút | Popis |
|---|---|---|
| d_id | možnosť 1 / povinný paramater | ID dodávateľa (ID nájdete v zozname Moje spoločnosti). |
| d_name | možnosť 2 / povinný paramater | Obchodný názov dodávateľa. |
| d_street | možnosť 2 / nepovinný paramater | Ulica dodávateľa. |
| d_city | možnosť 2 / nepovinný paramater | Mesto dodávateľa. |
| d_state | možnosť 2 / nepovinný paramater | Štát dodávateľa. |
| d_zip | možnosť 2 / nepovinný paramater | PSČ dodávateľa. |
| d_ico | možnosť 2 / nepovinný paramater | IČO dodávateľa. |
| d_dic | možnosť 2 / nepovinný paramater | DIČ dodávateľa. |
| d_icdph | možnosť 2 / nepovinný paramater | IČDPH dodávateľa. |
| d_vatpayer | možnosť 2 / nepovinný paramater | Platiteľ DPH. Možné hodnoty: Platiteľ DPH: 1 Nelatiteľ DPH: 0 Predvolená hodnota: 0 |
| d_viewpayer | možnosť 2 / nepovinný paramater | Zobraziť na faktúre informáciu, či je dodávateľ platiteľom DPH. Možné hodnoty: Áno: 1 Nie: 0 Predvolená hodnota: 1 |
| d_info | možnosť 2 / nepovinný paramater | Info o dodávateľovi. |
| d_bankaccount | možnosť 2 / nepovinný paramater | Číslo účtu dodávateľa. |
| d_bank | možnosť 2 / nepovinný paramater | Názov banky dodávateľa. |
| d_iban | možnosť 2 / nepovinný paramater | IBAN dodávateľa. |
| d_swift | možnosť 2 / nepovinný paramater | SWIFT dodávateľa. |
| d_email | možnosť 2 / nepovinný paramater | Email dodávateľa. |
| d_web | možnosť 2 / nepovinný paramater | Web dodávateľa. |
| d_phone | možnosť 2 / nepovinný paramater | Telefón dodávateľa. |
| d_custom_key_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - kľúč |
| d_custom_value_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - hodnota |
| d_custom_key_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - kľúč |
| d_custom_value_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - hodnota |
| Parameter | Atribút | Popis |
|---|---|---|
| o_name | povinný paramater | Obchodný názov odberateľa. |
| o_street | nepovinný paramater | Ulica odberateľa. |
| o_city | nepovinný paramater | Mesto odberateľa. |
| o_state | nepovinný paramater | Štát odberateľa. |
| o_zip | nepovinný paramater | PSČ odberateľa. |
| o_ico | nepovinný paramater | IČO odberateľa. |
| o_dic | nepovinný paramater | DIČ odberateľa. |
| o_icdph | nepovinný paramater | IČDPH odberateľa. |
| o_email | nepovinný paramater | Email odberateľa. |
| o_name_d | nepovinný paramater | Adresa dodania - Obchodný názov. |
| o_street_d | nepovinný paramater | Adresa dodania - Ulica. |
| o_city_d | nepovinný paramater | Adresa dodania - Mesto. |
| o_state_d | nepovinný paramater | Adresa dodania - Štát. |
| o_zip_d | nepovinný paramater | Adresa dodania - PSČ. |
| o_custom_key_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - kľúč |
| o_custom_value_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - hodnota |
| o_custom_key_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - kľúč |
| o_custom_value_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - hodnota |
| Parameter | Atribút | Popis |
|---|---|---|
| f_number | nepovinný paramater | Číslo faktúry. Ak nie je vyplnené, číslo sa automaticky zvýši o 1 z posledne vytvorenej faktúry (rozhodujúci je dátum vystavenia, číslo faktúry musí mať numerický formát). |
| f_vs | nepovinný paramater | Variabilný symbol. |
| f_ks | nepovinný paramater | Konštantný symbol. |
| f_date_issue | nepovinný paramater | Dátum vystavenia. Vo formáte RRRR-MM-DD. Predvolená hodnota: Aktuálny dátum |
| f_date_delivery | nepovinný paramater | Dátum dodania. Vo formáte RRRR-MM-DD. Predvolená hodnota: Aktuálny dátum |
| f_date_due | nepovinný paramater | Dátum splatnosti. Vo formáte RRRR-MM-DD. Predvolená hodnota: 14 dní od aktuálneho dátumu |
| f_date_payment | nepovinný paramater | Dátum prijatej platby pre typ faktúry č. 5 vo formáte RRRR-MM-DD. Predvolená hodnota: Aktuálny dátum |
| f_issued_by | nepovinný paramater | Faktúru vystavil. |
| f_order | nepovinný paramater | Číslo objednávky. |
| f_payment | nepovinný paramater | Typ úhrady. Možné hodnoty: Peňažný prevod: prevod Poštová poukážka: poukazka Hotovosť: hotovost Dobierka: dobierka Registračná pokladňa: pokladna Internetový platobný poskytovateľ: eprovider Platobná karta: karta Zápočet: zapocet Iná: ina Predvolená hodnota: prevod |
| f_note_above | nepovinný paramater | Poznámka vo faktúre. Zobrazenie poznámky nad fakturačnými položkami. |
| f_note | nepovinný paramater | Poznámka vo faktúre. Zobrazenie poznámky pod fakturačnými položkami. V prípade, že je dodávateľ vybraný pomocou parametra d_id a f_note je prázdne, zobrazí sa príslušná uložená poznámka k tomuto dodávateľovi. |
| f_internal_note | nepovinný paramater | Interná poznámka. Slúži len pre interné použitie. Nezobrazuje sa na vystavenej faktúre, ale je viditeľná iba v detaile dokumentu v systéme. |
| f_logo | nepovinný paramater | Zobrazenie loga. Možné hodnoty: Nezobrazí sa: 0 Zobrazí sa: 1 (iba v prípade, že dodávateľ bol načítaný pomocou d_id a logo má uložené) |
| f_stamp | nepovinný paramater | Zobrazenie pečiatky. Možné hodnoty: Nezobrazí sa: 0 Zobrazí sa: 1 (iba v prípade, že dodávateľ bol načítaný pomocou d_id a pečiatku má uloženú) |
| f_currency | nepovinný paramater | Mena na faktúre. Označenie meny. Predvolená hodnota je EUR. Predvolená hodnota: EUR |
| f_type | nepovinný paramater | Typ faktúry. Možné hodnoty: 1: faktúra 2: zálohová faktúra 3: dobropis 4: ťarchopis 5: doklad k prijatej platbe Predvolená hodnota: 1 |
| f_original_num | povinný pre typ faktúry 3 a 4 / nepovinný paramater | V dobropise alebo v ťarchopise je povinné uviesť referenciu na pôvodný doklad. Predvolená hodnota: 0 |
| f_paid | nepovinný paramater | Už uhradené nedaňovými zálohami. Hodnota sa neuvádza v doklade k prijatej platbe. Predvolená hodnota: 0 |
| f_fullpaid | nepovinný parameter | Vynúti v pätičke dokumentu hlášku „UŽ UHRADENÉ“ namiesto sumy k úhrade. Použite, keď je doklad v čase vystavenia už zaplatený (napr. platba vopred, e-shop). Nezávisí od parametra f_paid (suma uhradená zálohami) ani od stavu úhrady faktúry v systéme. Možné hodnoty: 0: nezobrazí (predvolené) 1: zobrazí hlášku „UŽ UHRADENÉ“ Predvolená hodnota: 0 |
| f_rounding | nepovinný paramater | Zaokrúhlenie celkovej sumy k úhrade Možné hodnoty: 0: žiadne zaokrúhlenie 1: zaokrúhlenie na celú časť hore 2: zaokrúhlenie na celú časť dole 3: zaokrúhlenie na 5 stotín (5 centov) Predvolená hodnota: 0 |
| f_style | nepovinný paramater | Vizuálny štýl faktúry. Možné hodnoty: styl_1 styl_2 styl_3 styl_4 styl_5 styl_6 styl_7 (predvolená šablóna dizajnéra) Predvolená hodnota: styl_1 |
| f_language | nepovinný paramater | Jazyk faktúry. Možné hodnoty: SK, CS, EN, DE, FR, ES, IT, HU, PL, RU, NO, DK Predvolená hodnota: SK |
| f_qr | nepovinný paramater | Zobraziť QR kód platby. Možné hodnoty: 0: nezobraziť 1: pay-by-square 2: SPD formát 3: EPC formát Predvolená hodnota: 1 |
| f_omit_stats | nepovinný paramater | Vynechať hodnotu zo štatistiky. Možné hodnoty: 0: nevynechať 1: vynechať Predvolená hodnota: 0 |
| f_custom | nepovinný paramater | Ľubovoľná textová informácia odoslaná cez API. Zobrazí sa ako samostatný stĺpec v excelovskom exporte. text, max. 50 znakov |
| f_vat_regime | nepovinný paramater | Režim DPH na celej faktúre. Možné hodnoty: 0: Bežný režim 1: Prenesená daňová povinnosť 2: Oslobodenie od dane 3: Dodanie tovaru do EÚ (§ 43) 4: Vývoz tovaru mimo EÚ (§ 47) 5: Mimo predmetu dane, prechodné položky (§ 22) 6: Služba mimo EÚ, miesto dodania v zahraničí (§ 15) 7: Prirážka: použitý tovar (§ 66) 8: Prirážka: umelecké diela (§ 66) 9: Prirážka: starožitnosti, zbierky (§ 66) 10: Prirážka: cestovné služby (§ 65) Hodnoty 1 až 10 sú dostupné len pre platiteľa DPH. Dokladový režim väčší než 0 platí pre všetky položky. Predvolená hodnota: 0 |
| f_tags | nepovinný paramater | Zoznam (pole) tagov, nachádzajúcich sa v zozname Moje označenia / tagy, ktoré sa majú priradiť k dokumentu. Formát: Array
(
[0] => Názov tagu 1
[1] => Názov tagu 2
)
|
| Parameter | Atribút | Popis |
|---|---|---|
| p_text | povinný paramater | Text fakturačnej položky. |
| p_quantity | povinný paramater | Množstvo. Číslo. |
| p_unit | povinný paramater | Merná jednotka. Napríklad kg, ks,... |
| p_price | možnosť 1 / nepovinný paramater | Cena za jednu mernú jednotku bez dane. Na základe tejto hodnoty sa vypočíta cena s DPH. V príde, že tento atribút nie je zadaný, musí byť zadaný atribút p_pricevat. Pre neplatiteľov DPH je tento parameter povinný. |
| p_vat | nepovinný paramater | Daň v percentách. Vypĺňa sa iba vtedy, ak je dodávateľ platiteľom DPH. |
| p_pricevat | možnosť 2 / nepovinný paramater | Cena za jednu mernú jednotku vrátane dane. V prípade, že je tento atribút zadaný, vypočíta sa cena bez dane bez ohľadu, či bol atribút p_price zadaný. |
| p_regime | nepovinný paramater | Režim DPH na položke. Ak je faktúra nastavená na bežný režim DPH, je možné určiť režim DPH aj samostatne pre jednotlivé položky. Možné hodnoty: 0: Bežný režim 1: Prenesená daňová povinnosť 2: Oslobodenie od dane 3: Dodanie tovaru do EÚ (§ 43) 4: Vývoz tovaru mimo EÚ (§ 47) 5: Mimo predmetu dane, prechodné položky (§ 22) 6: Služba mimo EÚ, miesto dodania v zahraničí (§ 15) 7: Prirážka: použitý tovar (§ 66) 8: Prirážka: umelecké diela (§ 66) 9: Prirážka: starožitnosti, zbierky (§ 66) 10: Prirážka: cestovné služby (§ 65) Hodnoty 1 až 10 sú dostupné len pre platiteľa DPH. Predvolená hodnota: 0 |
| p_custom | nepovinný paramater | Ľubovoľná textová informácia odoslaná cez API pre položku faktúry. Zobrazí sa ako samostatný stĺpec v excelovskom exporte. text, max. 50 znakov |
Array
(
[email] => name@example.com
[apitest] => 1
[d] => Array
(
[d_name] => Moja spoločnosť s.r.o.
[d_street] => Mostová 56
[d_city] => Trenčín
[d_zip] => 843 21
[d_state] => Slovensko
[d_ico] => 43226520
[d_dic] => 2165052345
[d_icdph] => SK2165052345
[d_vatpayer] => 1
[d_viewpayer] => 1
[d_info] => Zapísaný v OR Trenčín, oddiel: Sro, vl.č.1234/X
[d_bankaccount] => 1234567890/0200
[d_bank] => VÚB banka
[d_iban] => SK6702000000001234567890
[d_swift] => SUBASKBX
[d_email] => info@example.com
[d_web] => www.example.com
[d_phone] => +421 903 111 111
)
[o] => Array
(
[o_name] => Andrej Klačanský
[o_street] => Štefánikova 455/2
[o_city] => Martin
[o_zip] => 876 54
[o_state] => Slovensko
[o_ico] =>
[o_dic] =>
[o_icdph] =>
[o_email] => client@example.com
)
[f] => Array
(
[f_number] => 2024099
[f_vs] => 2024099
[f_ks] => 308
[f_date_issue] => 2024-02-14
[f_date_delivery] => 2024-02-14
[f_date_due] => 2024-02-28
[f_issued_by] => Moja spoločnosť s.r.o.
[f_payment] => prevod
[f_logo] => 1
[f_stamp] => 0
[f_currency] => EUR
[f_type] => 1
[f_paid] =>
[f_rounding] => 0
[f_style] => standard
[f_language] => SK
[f_qr] => 1
[f_order] => OBJ-2017-514
[f_tags] => Array
(
[0] => VIP klient
[1] => Doprava zdarma
)
)
[p] => Array
(
[0] => Array
(
[p_text] => Maliarske práce
[p_quantity] => 3
[p_unit] => hod
[p_price] => 15
[p_vat] => 20
)
[1] => Array
(
[p_text] => Upratovacie práce
[p_quantity] => 2
[p_unit] => hod
[p_vat] => 20
[p_pricevat] => 14.4
)
)
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku, faktúra bola vytvorená |
| 2 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 3 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 4 | Chyba | API kľúč nie je zadaný správne. |
| 5 | Chyba | Parameter email nie je zadaný. |
| 6 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 7 | Chyba | Používateľ neexistuje. |
| 8 | Chyba | Potrebné zadať ID dodávateľa alebo jeho názov.. |
| 9 | Chyba | Zrušené |
| 10 | Chyba | Vložené ID dodávateľa nie je správne. |
| 11 | Chyba | Nie je zadané meno dodávateľa. |
| 12 | Chyba | Nie je zadané meno odberateľa. |
| 13 | Chyba | Chýbajú fakturačné údaje. |
| 14 | Chyba | Chýbajú položky faktúry alebo nie sú zadané správne. |
| 15 | Chyba | Chyba vo fakturačnej položke chýba povinný údaj. |
| 16 | Chyba | Množstvo vo fakturačnej položke nie je číslo. |
| 17 | Chyba | Cena bez dane vo fakturačnej položke nie je číslo. |
| 18 | Chyba | Daň v percentách nie je zadaná správne. |
| 19 | Chyba | Vo fakturačnej položke nie je vložená cena bez dane alebo cena vrátane dane. |
| 20 | Chyba | Nepovolený jazyk vo faktúre. |
| 21 | Chyba | Vo fakturačnej položke nie je vložená cena bez dane, pričom dodávateľ nie je platiteľom DPH. |
| 22 | Chyba | Cena vrátane dane vo fakturačnej položke nie je číslo. |
| 23 | Chyba | Pri dobropise alebo ťarchopise musí byť uvedená referencia na originálny doklad f_original_num. |
| 24 | Chyba | Pri dobropise musí byť výsledná suma záporná. |
| 25 | Chyba | Dátum prijatej platby f_date_payment v daňovom doklade k prijatej platbe nie je zadaný správne. |
| 26 | Chyba | V daňovom doklade k prijatej platbe nesmie byť vložená hodnota prijatých záloh f_paid. |
| 27 | Chyba | Neplatný režim DPH, hodnota je mimo povoleného rozsahu. |
| 28 | Chyba | Pri zvolenom režime DPH musí byť dodávateľ platiteľom DPH. |
<?php
// Príprava základných dát
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// V prípade, že budeme testovať API, zvolíme hodnotu 1
// Znamená to, že všetky vytvorené faktúry sa automaticky odstránia o 5 - 10 minút od vytvorenia
$data['apitest'] = 1; //hodnota môže byť 1 alebo 0
// Príprava dát dodávateľa
$dodavatel = [];
// Údaje dodávateľa môžeme použiť buď z uložených záznamov v zozname Moje spoločnosti
// alebo údaje dodávateľa vložíme zadaním dát.
// Ak použijeme existujúceho dodávateľa, vložíme iba jeho ID.
// $dodavatel['d_id'] = 123; // ID dodávateľa nájdeme v zozname Moje spoločnosti
// alebo (nie obe):
$dodavatel['d_name'] = "Moja spoločnosť s.r.o."; // Obchodný názov dodávateľa
$dodavatel['d_street'] = "Mostová 56"; // Ulica
$dodavatel['d_city'] = "Trenčín"; // Mesto
$dodavatel['d_zip'] = "843 21"; // PSČ
$dodavatel['d_state'] = "Slovensko"; // Štát
$dodavatel['d_ico'] = "43226520"; // IČO
$dodavatel['d_dic'] = "2165052345"; // DIČ
$dodavatel['d_icdph'] = "SK2165052345"; // IČDPH
$dodavatel['d_vatpayer'] = "1"; // Platiteľ DPH. Pokiaľ je dodávateľ platiteľom DPH ponechajte
// hodnotu 1, ak nie je platiteľom DPH, napíšte 0.
$dodavatel['d_viewpayer'] = "1"; // Pokiaľ chcete zobraziť informáciu na faktúre,
// že dodávateľ je/nie je platiteľom DPH.
$dodavatel['d_info'] = "Zapísaný v OR Trenčín, oddiel: Sro, vl.č.1234/X"; //Info o dodávateľovi
$dodavatel['d_bankaccount'] = "1234567890/0200"; // Číslo účtu
$dodavatel['d_bank'] = "VÚB banka"; // Názov banky
$dodavatel['d_iban'] = "SK6702000000001234567890"; // IBAN
$dodavatel['d_swift'] = "SUBASKBX"; // SWIFT
$dodavatel['d_email'] = "info@example.com"; // E-mail
$dodavatel['d_web'] = "www.example.com"; // WEB
$dodavatel['d_phone'] = "+421 903 111 111"; // Telefón
// Pridanie dodávateľa k dátam:
$data['d'] = $dodavatel;
// Príprava dát odberateľa
$odberatel = [];
$odberatel['o_name'] = "Andrej Klačanský"; // Názov odberateľa
$odberatel['o_street'] = "Štefánikova 455/2"; // Ulica
$odberatel['o_city'] = "Martin"; // Mesto
$odberatel['o_zip'] = "876 54"; // PSČ
$odberatel['o_state'] = "Slovensko"; // Štát
$odberatel['o_ico'] = ""; // IČO
$odberatel['o_dic'] = ""; // DIČ
$odberatel['o_icdph'] = ""; // IČDPH
$odberatel['o_email'] = "client@example.com"; // Email odberateľa
// Pridanie odberateľa k dátam:
$data['o'] = $odberatel;
// Príprava fakturačných údajov
$faktura = [];
// Číslo faktúry môžeme zadať ručne:
$faktura['f_number'] = "2024099";
// Ak chceme vypočítať číslo faktúry automaticky, toto pole neuvedieme. Odporúča sa však
// mať zapnuté a nastavené automatické číslovanie faktúr pre vybraného dodávateľa.
$faktura['f_vs'] = "2024099"; // Variabilný symbol
$faktura['f_ks'] = "308"; // Konštantný symbol
$faktura['f_date_issue'] = '2024-02-14'; // Dátum vystavenia vo formáte RRRR-MM-DD
$faktura['f_date_delivery'] = '2024-02-14'; // Dátum dodania vo formáte RRRR-MM-DD
$faktura['f_date_due'] = '2024-02-28'; // Dátum splatnosti vo formáte RRRR-MM-DD
$faktura['f_issued_by'] = "Moja spoločnosť s.r.o."; //Faktúru vystavil
$faktura['f_payment'] = "prevod"; //Druh plaby. Na výber sú "prevod", "poukazka",
// "hotovost", "dobierka", "registracna_pokladna", "ina", "eprovider"
$faktura['f_logo'] = "1"; // Zobraziť logo dodávateľa. Iba v prípade, že bol
// dodávateľ vybraný pomocou ID a má uložené logo.
$faktura['f_stamp'] = "0"; // Nezobraziť pečiatku
$faktura['f_currency'] = "EUR"; //Mena faktúry
$faktura['f_type'] = "1"; // Faktúra
$faktura['f_paid'] = ""; // Už uhradená suma nedaňovými zálohami
$faktura['f_rounding'] = "0"; // Zaokrúhlenie - žiadne
$faktura['f_style'] = "standard"; // Štýl faktúry. Možnosti sú standard alebo classic
$faktura['f_language'] = "SK"; // Jazyk faktúry: SK, CZ, EN, DE, ES, IT, FR, HU, PL, NO, RU
$faktura['f_qr'] = "1"; // Zobraziť QR kód (PAY by square)
$faktura['f_order'] = "OBJ-2017-514"; //Číslo objednávky
$faktura['f_tags'] = ["VIP klient", "Doprava zdarma"]; //Priradiť označenia k faktúre
// Pridanie fakturačných údajov k dátam:
$data['f'] = $faktura;
// Príprava fakturačných položiek
$polozky = [];
// prvá položka:
$polozka = [];
$polozka['p_text'] = "Maliarske práce"; // Názov služby alebo tovaru
$polozka['p_quantity'] = "3"; // Množstvo
$polozka['p_unit'] = "hod"; // Merná jednotka
$polozka['p_price'] = "15"; // Cena za jednu jednotku bez DPH (Cena s DPH sa vypočíta)
$polozka['p_vat'] = "20"; // Daň v %
// priradenie k položkám:
$polozky[] = $polozka;
// druhá položka:
$polozka = [];
$polozka['p_text'] = "Upratovacie práce"; // Názov služby alebo tovaru
$polozka['p_quantity'] = "2"; // Množstvo
$polozka['p_unit'] = "hod"; // Merná jednotka
$polozka['p_vat'] = "20"; // Daň v %
$polozka['p_pricevat'] = "14.4"; // Cena za jednu jednotku vrátane DPH (Cena bez DPH sa vypočíta)
// priradenie k položkám:
$polozky[] = $polozka;
// priradenie fakturačných položiek k dátam:
$data['p'] = $polozky;
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/nf';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Uložené, nová faktúra má kód: " . $result['code'] . " <br />";
echo "Číslo faktúry: " . $result['number'] . " <br />";
echo "Faktúra vytvorená: " . $result['created'] . " <br />";
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[code] => 1a35b89cd48eaf8940a6409ff45a0cc5
[number] => 2024099
[created] => 2024-02-15 17:45:12
)
POST https://www.faktury-online.com/api/zf(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód faktúry (získaný z odpovede API pri vytvorení faktúry) |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 202 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 203 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 204 | Chyba | API kľúč nie je zadaný správne. |
| 205 | Chyba | Parameter email nie je zadaný. |
| 206 | Chyba | Nie je vytvorené sedenie |
| 207 | Chyba | Vytvorené sedenie nie je správne |
| 208 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 209 | Chyba | Používateľ neexistuje. |
| 210 | Chyba | Nie je zadaný kód faktúry. |
| 211 | Chyba | Kód faktúry nie je zadaný správne. |
| 212 | Chyba | Chyba pri výbere faktúry |
| 213 | Chyba | Chyba pri zobrazení šablóny faktúry |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
// vytvori subor cookie.txt, pozor na prava na zapis
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
$result = json_decode($output, true);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód faktúry:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/zf';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
$result = json_decode($output, true);
$url = $result['url'];
$cislo = $result['number'];
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// pre zobrazenie faktúry:
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . $cislo . '.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
/*
// pre download faktúry:
header('Content-Type: application/download');
header('Content-Disposition: inline; filename="'.$cislo.'.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/
Array
(
[status] => 1
[url] => https://www.faktury-online.com/faktury/detail-subor?f=26915945a67c8b7ba74dac59c5badfbf
[number] => FA2019015
)
POST https://www.faktury-online.com/api/uf(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód faktúry (získaný z odpovede API pri vytvorení faktúry) |
| date | nepovinný parameter | Dátum úhrady faktúry Predvolená hodnota: 'Aktuálny dátum' |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
[date] => 2019-06-01
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 302 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 303 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 304 | Chyba | API kľúč nie je zadaný správne. |
| 305 | Chyba | Parameter email nie je zadaný. |
| 306 | Chyba | Nie je vytvorené sedenie |
| 307 | Chyba | Vytvorené sedenie nie je správne |
| 308 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 309 | Chyba | Používateľ neexistuje. |
| 310 | Chyba | Nie je zadaný kód faktúry. |
| 311 | Chyba | Kód faktúry nie je zadaný správne. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
$result = json_decode($output, true);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód faktúry:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Dátum úhrady
$data['date'] = "2017-06-01"; // prípadne žiadny záznam pre nastavenie dnešného dňa úhrady
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/uf';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
$result = json_decode($output, true);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Faktúra bola uhradená";
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
)
POST https://www.faktury-online.com/api/status(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód faktúry (získaný z odpovede API pri vytvorení faktúry) |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 402 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 403 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 404 | Chyba | API kľúč nie je zadaný správne. |
| 405 | Chyba | Parameter email nie je zadaný. |
| 406 | Chyba | Nie je vytvorené sedenie |
| 407 | Chyba | Vytvorené sedenie nie je správne |
| 408 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 409 | Chyba | Používateľ neexistuje. |
| 410 | Chyba | Nie je zadaný kód faktúry. |
| 411 | Chyba | Kód faktúry nie je zadaný správne. |
| 412 | Chyba | Chyba pri výbere faktúry |
| 413 | Chyba | Chyba pri zobrazení šablóny faktúry |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód faktúry:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/status';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Dodávateľ: {$result['supplier']} \n";
echo "Dodávateľ IČO: {$result['supplier_ico']} \n";
echo "Odberateľ / Zákazník: {$result['customer']} \n";
echo "Odberateľ / Zákazník IČO: {$result['customer_ico']} \n";
// Možnosti: faktura, zalohova_faktura, dobropis, danovy_doklad
echo "Typ faktúry: {$result['invoice_type']} \n";
echo "Číslo faktúry: {$result['invoice_number']} \n";
echo "Suma bez DPH: {$result['invoice_amount']} \n";
if (isset($result['invoice_amount_vat'])){
echo "Suma s DPH: {$result['invoice_amount_vat']} \n";
}
echo "Mena: {$result['invoice_currency']} \n";
echo "Dátum vystavenia: {$result['invoice_date_issue']} \n";
echo "Dátum dodania: {$result['invoice_date_delivery']} \n";
echo "Dátum splatnosti: {$result['invoice_date_due']} \n";
// Možnosti: ano, nie, ciastocne
echo "Faktúra uhradená: {$result['invoice_paid']} \n";
if ($result['invoice_paid'] != 'nie'){
echo "Uhradená suma: {$result['invoice_paid_amount']} \n";
echo "Dátum úhrady: {$result['invoice_date_payment']} \n";
}
echo "Vlastné dáta z API: {$result['invoice_api_custom']} \n";
if (isset($result['invoice_tags']) && is_array($result['invoice_tags'])){
echo "Tagy faktúry: ";
echo implode(", ",$result['invoice_tags']);
}
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[supplier] => Moja firma s.r.o.
[supplier_street] => Mostová 56
[supplier_city] => Trenčín
[supplier_zip] => 843 21
[supplier_state] => Slovenská republika
[supplier_ico] => 43226520
[supplier_dic] => 2165052345
[supplier_icdph] => SK2165052345
[supplier_info] => Zapísaný v OR Trenčín, oddiel:Sro, vl.č.1234/X
[supplier_bankaccount] =>
[supplier_bank] => VÚB
[supplier_iban] => SK1200000000001234567891
[supplier_swift] =>
[supplier_email] => info@example.com
[supplier_phone] => +421 903 111 111
[supplier_web] => www.example.com
[supplier_custom_key_1] => Číslo licencie
[supplier_custom_value_1] => LIC-6554/2022
[supplier_custom_key_2] =>
[supplier_custom_value_2] =>
[customer] => Andrej Klačanský
[customer_street] => Štefánikova 455/2
[customer_city] => Martin
[customer_zip] => 876 54
[customer_state] =>
[customer_ico] =>
[customer_dic] =>
[customer_icdph] =>
[customer_email] => client@example.com
[customer_info] =>
[customer_delivery_name] =>
[customer_delivery_street] =>
[customer_delivery_city] =>
[customer_delivery_zip] =>
[customer_delivery_state] =>
[customer_custom_key_1] => Telefón
[customer_custom_value_1] => 5641655465
[customer_custom_key_2] =>
[customer_custom_value_2] =>
[invoice_type] => faktura
[invoice_number] => 2022-003
[invoice_vs] => 2022003
[invoice_ks] => 0308
[invoice_payment_type] => prevod
[invoice_currency] => EUR
[invoice_date_issue] => 2022-01-01
[invoice_date_delivery] => 2022-03-29
[invoice_date_due] => 2022-04-12
[invoice_order] =>
[invoice_issued_by] => Martin Hrubý
[invoice_note] => Poznámka pod položkami
[invoice_note_above] => Poznámka nad položkami
[invoice_amount] => 198
[invoice_amount_vat] => 198
[invoice_vat_reverse_c] => ano
[invoice_paid_advanced] => 50
[invoice_total_discount_perc] => 10
[invoice_to_pay] => 148
[invoice_paid] => ano
[invoice_paid_amount] => 148
[invoice_date_payment] => 2022-04-27
[invoice_api_custom] => Test custom
[invoice_language] => sk
[items] => Array
(
[0] => Array
(
[item_name] => Maliarske práce
[item_unit] => hod
[item_quantity] => 8
[item_unit_price] => 20
[item_unit_price_total] => 24
[item_vat_rate] => 20
[item_vat_total] => 32
[item_unit_price_vat] => 24
[item_unit_price_totla_vat] => 192
[item_api_custom] =>
)
[1] => Array
(
[item_name] => Upratovacie práce
[item_unit] => hod
[item_quantity] => 4
[item_unit_price] => 15
[item_unit_price_total] => 18
[item_vat_rate] => 20
[item_vat_total] => 12
[item_unit_price_vat] => 18
[item_unit_price_totla_vat] => 72
[item_api_custom] =>
)
)
[invoice_tags] => Array
(
[0] => Tag 1
[1] => Tag 2
)
)
POST https://www.faktury-online.com/api/list/created(telo požiadavky: JSON s parametrami nižšie)
POST https://www.faktury-online.com/api/list/issued(telo požiadavky: JSON s parametrami nižšie)
POST https://www.faktury-online.com/api/list/delivered(telo požiadavky: JSON s parametrami nižšie)
POST https://www.faktury-online.com/api/list/paid(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| from | nepovinný parameter | Dátum hľadania 'Od' Formát: YYYY-MM-DD |
| to | nepovinný parameter | Dátum hľadania 'Do' Formát: YYYY-MM-DD |
Array
(
[email] => name@example.com
[from] => 2021-01-01
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 502 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 503 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 504 | Chyba | API kľúč nie je zadaný správne. |
| 505 | Chyba | Parameter email nie je zadaný. |
| 506 | Chyba | Nie je vytvorené sedenie |
| 507 | Chyba | Vytvorené sedenie nie je správne |
| 508 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 509 | Chyba | Používateľ neexistuje. |
| 510 | Chyba | Chybná URL. |
| 511 | Chyba | Dátum 'Od' je zadaný nesprávne. |
| 512 | Chyba | Dátum 'Do' je zadaný nesprávne. |
| 513 | Chyba | Nepodarilo sa identifikovať príslušný zoznam, zrejme chyba v URL. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Dáta v kalendárnom roku 2021
$data['from'] = '2021-01-01';
$data['to'] = '2021-12-31';
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/list/paid';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
$faktury = $result['invoices'];
foreach ($faktury as $faktura) {
echo "Kód: {$faktura['code']} \n";
echo "Dodávateľ: {$faktura['supplier']} \n";
echo "Dodávateľ IČO: {$faktura['supplier_ico']} \n";
echo "Odberateľ / Zákazník: {$faktura['customer']} \n";
echo "Odberateľ / Zákazník IČO: {$faktura['customer_ico']} \n";
// Možnosti: faktura, zalohova_faktura, dobropis, danovy_doklad
echo "Typ faktúry: {$faktura['invoice_type']} \n";
echo "Číslo faktúry: {$faktura['invoice_number']} \n";
echo "Suma bez DPH: {$faktura['invoice_amount']} \n";
if (isset($faktura['invoice_amount_vat'])) {
echo "Suma s DPH: {$faktura['invoice_amount_vat']} \n";
}
echo "Mena: {$faktura['invoice_currency']} \n";
echo "Dátum vystavenia: {$faktura['invoice_date_issue']} \n";
echo "Dátum dodania: {$faktura['invoice_date_delivery']} \n";
echo "Dátum splatnosti: {$faktura['invoice_date_due']} \n";
// Možnosti: ano, nie, ciastocne
echo "Faktúra uhradená: {$faktura['invoice_paid']} \n";
if ($faktura['invoice_paid'] != 'nie') {
echo "Uhradená suma: {$faktura['invoice_paid_amount']} \n";
echo "Dátum úhrady: {$faktura['invoice_date_payment']} \n";
}
echo "Vlastné dáta z API: {$faktura['invoice_api_custom']} \n";
echo "Tagy: {$faktura['tags']} \n";
}
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[invoices] => Array
(
[0] => Array
(
[code] => 1a35b89cd48eaf8940a6409ff45a0cc5
[supplier] => Moja spoločnosť s.r.o.
[supplier_ico] => 43226520
[customer] => Andrej Klačanský
[customer_ico] => 40436097
[invoice_type] => faktura
[invoice_number] => 20210400
[invoice_amount] => 200
[invoice_amount_vat] => 240
[invoice_currency] => EUR
[invoice_date_issue] => 2021-01-10
[invoice_date_delivery] => 2021-01-10
[invoice_date_due] => 2021-01-25
[invoice_paid] => ano
[invoice_paid_amount] => 240
[invoice_date_payment] => 2021-01-19
[invoice_api_custom] => data z API
[tags] => Tag1 ,Tag2
)
)
)
POST https://www.faktury-online.com/api/ncp(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| apitest | nepovinný parameter | Parameter apitest určuje, či vytvorená cenová ponuka slúži na testovacie účely. Tento parameter by mali použiť iba vývojári, ktorí implementujú Faktúry online API. Systém bude brať vytvorenú cenovú ponuku ako testovaciu a v rozmedzí 5 až 10 minút ju odstráni. Odporúčame mať túto hodnotu zapnutú pri testovaní implementácie API. V produkčnej prevádzke túto hodnotu vypnite, inak sa cenové ponuky odstránia automaticky. Možné hodnoty: 1 alebo 0 Predvolená hodnota: 0 |
| Parameter | Atribút | Popis |
|---|---|---|
| d_id | možnosť 1 / povinný paramater | ID dodávateľa (ID nájdete v zozname Moje spoločnosti). |
| d_name | možnosť 2 / povinný paramater | Obchodný názov dodávateľa. |
| d_street | možnosť 2 / nepovinný paramater | Ulica dodávateľa. |
| d_city | možnosť 2 / nepovinný paramater | Mesto dodávateľa. |
| d_state | možnosť 2 / nepovinný paramater | Štát dodávateľa. |
| d_zip | možnosť 2 / nepovinný paramater | PSČ dodávateľa. |
| d_ico | možnosť 2 / nepovinný paramater | IČO dodávateľa. |
| d_dic | možnosť 2 / nepovinný paramater | DIČ dodávateľa. |
| d_icdph | možnosť 2 / nepovinný paramater | IČDPH dodávateľa. |
| d_vatpayer | možnosť 2 / nepovinný paramater | Platiteľ DPH. Možné hodnoty: Platiteľ DPH: 1 Neplatiteľ DPH: 0 Predvolená hodnota: 0 |
| d_viewpayer | možnosť 2 / nepovinný paramater | Zobraziť v ponuke informáciu, či je dodávateľ platiteľom DPH. Možné hodnoty: Áno: 1 Nie: 0 Predvolená hodnota: 1 |
| d_info | možnosť 2 / nepovinný paramater | Info o dodávateľovi. |
| d_bankaccount | možnosť 2 / nepovinný paramater | Číslo účtu dodávateľa. |
| d_bank | možnosť 2 / nepovinný paramater | Názov banky dodávateľa. |
| d_iban | možnosť 2 / nepovinný paramater | IBAN dodávateľa. |
| d_swift | možnosť 2 / nepovinný paramater | SWIFT dodávateľa. |
| d_email | možnosť 2 / nepovinný paramater | Email dodávateľa. |
| d_web | možnosť 2 / nepovinný paramater | Web dodávateľa. |
| d_phone | možnosť 2 / nepovinný paramater | Telefón dodávateľa. |
| d_custom_key_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - kľúč |
| d_custom_value_1 | možnosť 2 / nepovinný paramater | Vlastné pole č.1 - hodnota |
| d_custom_key_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - kľúč |
| d_custom_value_2 | možnosť 2 / nepovinný paramater | Vlastné pole č.2 - hodnota |
| Parameter | Atribút | Popis |
|---|---|---|
| o_name | povinný paramater | Obchodný názov odberateľa. |
| o_street | nepovinný paramater | Ulica odberateľa. |
| o_city | nepovinný paramater | Mesto odberateľa. |
| o_state | nepovinný paramater | Štát odberateľa. |
| o_zip | nepovinný paramater | PSČ odberateľa. |
| o_ico | nepovinný paramater | IČO odberateľa. |
| o_dic | nepovinný paramater | DIČ odberateľa. |
| o_icdph | nepovinný paramater | IČDPH odberateľa. |
| o_email | nepovinný paramater | Email odberateľa. |
| o_name_d | nepovinný paramater | Adresa dodania - Obchodný názov. |
| o_street_d | nepovinný paramater | Adresa dodania - Ulica. |
| o_city_d | nepovinný paramater | Adresa dodania - Mesto. |
| o_state_d | nepovinný paramater | Adresa dodania - Štát. |
| o_zip_d | nepovinný paramater | Adresa dodania - PSČ. |
| o_custom_key_1 | nepovinný paramater | Vlastné pole č.1 - kľúč |
| o_custom_value_1 | nepovinný paramater | Vlastné pole č.1 - hodnota |
| o_custom_key_2 | nepovinný paramater | Vlastné pole č.2 - kľúč |
| o_custom_value_2 | nepovinný paramater | Vlastné pole č.2 - hodnota |
| Parameter | Atribút | Popis |
|---|---|---|
| po_rounding | nepovinný paramater | Zaokrúhlenie celkovej sumy k úhrade Možné hodnoty: 0: žiadne zaokrúhlenie 1: zaokrúhlenie na celú časť hore 2: zaokrúhlenie na celú časť dole 3: zaokrúhlenie na 5 stotín (5 centov) Predvolená hodnota: 0 |
| po_number | nepovinný paramater | Číslo cenovej ponuky. Ak nie je vyplnené, číslo sa automaticky zvýši o 1 z posledne vytvorenej ponuky (rozhodujúci je dátum vystavenia, číslo cenovej ponuky musí mať numerický formát). |
| po_date_issue | nepovinný paramater | Dátum vystavenia. Vo formáte RRRR-MM-DD. Predvolená hodnota: Aktuálny dátum |
| po_date_expiration | nepovinný paramater | Dátum platnosti cenovej ponuky. Vo formáte RRRR-MM-DD. |
| po_issued_by | nepovinný paramater | Cenovú ponuku vystavil. |
| po_note_above | nepovinný paramater | Poznámka v cenovej ponuke. Zobrazenie poznámky nad položkami. |
| po_note | nepovinný paramater | Poznámka v cenovej ponuke. Zobrazenie poznámky pod položkami. V prípade, že je dodávateľ vybraný pomocou parametra d_id a po_note je prázdne, zobrazí sa príslušná uložená poznámka k tomuto dodávateľovi. |
| po_internal_note | nepovinný paramater | Interná poznámka. Slúži len pre interné použitie. Nezobrazuje sa v cenovej ponuke, ale je viditeľná iba v detaile dokumentu v systéme. |
| po_logo | nepovinný paramater | Zobrazenie loga. Možné hodnoty: Nezobrazí sa: 0 Zobrazí sa: 1 (iba v prípade, že dodávateľ bol načítaný pomocou d_id a logo má uložené) |
| po_stamp | nepovinný paramater | Zobrazenie pečiatky. Možné hodnoty: Nezobrazí sa: 0 Zobrazí sa: 1 (iba v prípade, že dodávateľ bol načítaný pomocou d_id a pečiatku má uloženú) |
| po_currency | nepovinný paramater | Mena cenovej ponuky. Predvolená hodnota: EUR |
| po_language | nepovinný paramater | Jazyk cenovej ponuky. Možné hodnoty: SK, CS, EN, DE, FR, ES, IT, HU, PL, RU, NO, DK Predvolená hodnota: SK |
| po_custom | nepovinný paramater | Ľubovoľná textová informácia odoslaná cez API. Zobrazí sa ako samostatný stĺpec v excelovskom exporte. text, max. 50 znakov |
| po_tags | nepovinný paramater | Zoznam (pole) tagov, nachádzajúcich sa v zozname Moje označenia / tagy, ktoré sa majú priradiť k dokumentu. Formát: Array
(
[0] => Názov tagu 1
[1] => Názov tagu 2
)
|
| Parameter | Atribút | Popis |
|---|---|---|
| p_text | povinný paramater | Text položky cenovej ponuky. |
| p_quantity | povinný paramater | Množstvo. Číslo. |
| p_unit | povinný paramater | Merná jednotka. Napríklad kg, ks,... |
| p_price | možnosť 1 / nepovinný paramater | Cena za jednu mernú jednotku bez dane. Na základe tejto hodnoty sa vypočíta cena s DPH. V príde, že tento atribút nie je zadaný, musí byť zadaný atribút p_pricevat. Pre neplatiteľov DPH je tento parameter povinný. |
| p_vat | nepovinný paramater | Daň v percentách. Vypĺňa sa iba vtedy, ak je dodávateľ platiteľom DPH. |
| p_pricevat | možnosť 2 / nepovinný paramater | Cena za jednu mernú jednotku vrátane dane. V prípade, že je tento atribút zadaný, vypočíta sa cena bez dane bez ohľadu, či bol atribút p_price zadaný. |
| p_custom | nepovinný paramater | Ľubovoľná textová informácia odoslaná cez API pre položku cenovej ponuky. Zobrazí sa ako samostatný stĺpec v excelovskom exporte. text, max. 50 znakov |
Array
(
[email] => name@example.com
[apitest] => 1
[d] => Array
(
[d_name] => Moja spoločnosť s.r.o.
[d_street] => Mostová 56
[d_city] => Trenčín
[d_zip] => 843 21
[d_state] => Slovenská republika
[d_ico] => 43226520
[d_dic] => 2165052345
[d_icdph] => SK2165052345
[d_vatpayer] => 1
[d_viewpayer] => 0
[d_info] => Zapísaný v OR Trenčín,oddiel:Sro, vl.č.1234/X
[d_bankaccount] => 1234567890/0200
[d_bank] => VÚB
[d_iban] =>
[d_swift] =>
[d_email] => info@example.com
[d_web] => www.example.com
[d_phone] => +421 903 111 111
)
[o] => Array
(
[o_name] => Andrej Klačanský
[o_street] => Štefánikova 455/2
[o_city] => Martin
[o_zip] => 876 54
[o_state] =>
[o_ico] =>
[o_dic] =>
[o_icdph] =>
[o_email] => client@example.com
)
[po] => Array
(
[po_number] => 2022099
[po_date_issue] => 2022-01-01
[po_date_expiration] => 2022-01-15
[po_issued_by] => Martin Hrubý
[po_note] => Nezáväzná cenová ponuka platná 15 dní.
[po_currency] => EUR
[po_language] => SK
[po_tags] => Array
(
[0] => VIP klient
[1] => Doprava zdarma
)
)
[p] => Array
(
[0] => Array
(
[p_text] => Diamantový kotúč na obklady
[p_quantity] => 8
[p_unit] => ks
[p_price] => 15
[p_vat] => 20
[p_pricevat] => 20
)
[1] => Array
(
[p_text] => Sada nylónových drôtených kief
[p_quantity] => 10
[p_unit] => ks
[p_price] => 12.50
[p_vat] => 20
[p_pricevat] => 15
)
)
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku, cenová ponuka bola vytvorená |
| 602 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 603 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 604 | Chyba | API kľúč nie je zadaný správne. |
| 605 | Chyba | Parameter email nie je zadaný. |
| 606 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 607 | Chyba | Používateľ neexistuje. |
| 608 | Chyba | Potrebné zadať ID dodávateľa alebo jeho názov.. |
| 609 | Chyba | Vložené ID dodávateľa nie je správne. |
| 610 | Chyba | Nie je zadané meno dodávateľa. |
| 611 | Chyba | Nie je zadané meno odberateľa. |
| 612 | Chyba | Chýbajú údaje cenovej ponuky. |
| 613 | Chyba | Chýbajú položky ponuky alebo nie sú zadané správne. |
| 614 | Chyba | Chyba v položke, chýba povinný údaj. |
| 615 | Chyba | Množstvo v položke cenovej ponuky nie je číslo. |
| 616 | Chyba | Cena bez dane v položke nie je číslo. |
| 617 | Chyba | Daň v percentách nie je zadaná správne. |
| 618 | Chyba | V položke nie je vložená cena bez dane alebo cena vrátane dane. |
| 619 | Chyba | Nepovolený jazyk v cenovej ponuke. |
| 620 | Chyba | V položke nie je vložená cena bez dane, pričom dodávateľ nie je platiteľom DPH. |
| 621 | Chyba | Cena vrátane dane v položke nie je číslo. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// V prípade, že budeme testovať API, zvolíme hodnotu 1
// Znamená to, že všetky vytvorené cenové ponuky sa automaticky odstránia o 5 - 10 minút
$data['apitest'] = 1; //hodnota môže byť 1 alebo 0
// Príprava dát dodávateľa
$dodavatel = [];
// Dodávateľa môžeme použiť už existujúceho (uloženého v zozname Moje spoločnosti)
// alebo dodávateľa vytvoríme ručne vložením dát.
// Ak použijeme existujúceho dodávateľa, vložíme iba jeho ID:
// $dodavatel['d_id'] = 123; // ID dodávateľa nájdeme v zozname Moje spoločnosti
// alebo (nie obe):
$dodavatel['d_name'] = "Moja spoločnosť s.r.o."; // Obchodný názov dodávateľa
$dodavatel['d_street'] = "Mostová 56"; // Ulica
$dodavatel['d_city'] = "Trenčín"; // Mesto
$dodavatel['d_zip'] = "843 21"; // PSČ
$dodavatel['d_state'] = "Slovenská republika"; // Štát
$dodavatel['d_ico'] = "43226520"; // IČO
$dodavatel['d_dic'] = "2165052345"; // DIČ
$dodavatel['d_icdph'] = "SK2165052345"; // IČDPH
$dodavatel['d_vatpayer'] = "1"; // Platca DPH. Pokiaľ je dodávateľ platca DPH ponechajte hodnotu 1,
// ak nie je platca DPH, napíšte 0.
$dodavatel['d_viewpayer'] = "1"; // Pokiaľ chcete zobraziť informáciu v cenovej ponuke,
// že dodávateľ je platcom/neplatcom DPH.
$dodavatel['d_info'] = "Zapísaný v OR Trenčín, oddiel:Sro, vl.č.1234/X"; //Info o dodávateľovi
$dodavatel['d_bankaccount'] = ""; // Číslo účtu
$dodavatel['d_bank'] = "VÚB"; // Názov banky
$dodavatel['d_iban'] = "SK1200000000001234567891"; // IBAN
$dodavatel['d_swift'] = ""; // SWIFT
$dodavatel['d_email'] = "info@example.com"; // E-mail
$dodavatel['d_web'] = "www.example.com"; // WEB
$dodavatel['d_phone'] = "+421 903 111 111"; // Telefón
// Pridanie dodávateľa k dátam:
$data['d'] = $dodavatel;
// Príprava dát odberateľa
$odberatel = [];
$odberatel['o_name'] = "Andrej Klačanský"; // Názov odberateľa
$odberatel['o_street'] = "Štefánikova 455/2"; // Ulica
$odberatel['o_city'] = "Martin"; // Mesto
$odberatel['o_zip'] = "876 54"; // PSČ
$odberatel['o_state'] = ""; // Štát
$odberatel['o_ico'] = ""; // IČO
$odberatel['o_dic'] = ""; // DIČ
$odberatel['o_icdph'] = ""; // IČDPH
$odberatel['o_email'] = "client@example.com"; // Email odberateľa
// Pridanie odberateľa k dátam:
$data['o'] = $odberatel;
// Príprava údajov cenovej ponuky
$cenovaPonuka = [];
// Číslo cenovej ponuky môžeme zadať ručne:
$cenovaPonuka['po_number'] = "2022099";
// Ak chceme vypočítať číslo automaticky, toto pole neuvedieme
$cenovaPonuka['po_date_issue'] = '2022-01-01'; // Dátum vystavenia vo formáte RRRR-MM-DD
$cenovaPonuka['po_date_expiration'] = '2022-01-15'; // Dátum platnosti vo formáte RRRR-MM-DD
$cenovaPonuka['po_issued_by'] = "Martin Hrubý"; //Ponuku vystavil
$cenovaPonuka['po_logo'] = "1"; // Zobraziť logo dodávateľa. Iba v prípade, že bol dodávateľ
// vybraný pomocou ID a má priradené logo
$cenovaPonuka['po_stamp'] = "1"; // Zobraziť pečiatku dodávateľa. Iba v prípade, že bol
// dodávateľ vybraný pomocou ID a má priradenú pečiatku
$cenovaPonuka['po_currency'] = "EUR"; // Mena cenovej ponuky
$cenovaPonuka['po_language'] = "SK"; // Jazyk cenovej ponuky
$cenovaPonuka['po_tags'] = ["VIP klient", "Doprava zdarma"]; // Priradiť označenia k ponuke
// Pridanie údajov ponuky k dátam:
$data['po'] = $cenovaPonuka;
// Príprava položiek ponuky
$polozky = [];
// prvá položka:
$polozka = [];
$polozka['p_text'] = "Diamantový kotúč na obklady"; // Názov služby alebo tovaru
$polozka['p_quantity'] = "8"; // Množstvo
$polozka['p_unit'] = "ks"; // Merná jednotka
$polozka['p_price'] = "15"; // Cena za jednu jednotku bez DPH (Cena s DPH sa vypočíta)
$polozka['p_vat'] = "20"; // Daň v %
// priradenie k položkám:
$polozky[] = $polozka;
// druhá položka:
$polozka = [];
$polozka['p_text'] = "Sada nylónových drôtených kief"; // Názov služby alebo tovaru
$polozka['p_quantity'] = "10"; // Množstvo
$polozka['p_unit'] = "ks"; // Merná jednotka
$polozka['p_vat'] = "20"; // Daň v %
$polozka['p_pricevat'] = "15"; // Cena za jednu jednotku vrátane DPH (Cena bez DPH sa vypočíta)
// priradenie k položkám:
$polozky[] = $polozka;
// priradenie položiek k dátam:
$data['p'] = $polozky;
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/ncp';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Uložené, nová cenová má kód: " . $result['code'] . " <br />";
echo "Číslo cenovej ponuky: " . $result['number'] . " <br />";
echo "Cenová ponuka vytvorená: " . $result['created'] . " <br />";
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[code] => ca9658a5448a945059f44658bac985e5
[number] => 2022099
[created] => 2022-01-01 09:49:05
)
POST https://www.faktury-online.com/api/zcp(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód cenovej ponuky (získaný z odpovede API pri vytvorení ponuky) |
Array
(
[email] => name@example.com
[code] => aa9025bc0094c88445daa22b90eff3b
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 702 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 703 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 704 | Chyba | API kľúč nie je zadaný správne. |
| 705 | Chyba | Parameter email nie je zadaný. |
| 706 | Chyba | Nie je vytvorené sedenie |
| 707 | Chyba | Vytvorené sedenie nie je správne |
| 708 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 709 | Chyba | Používateľ neexistuje. |
| 710 | Chyba | Nie je zadaný kód cenovej ponuky. |
| 711 | Chyba | Kód cenovej ponuky nie je zadaný správne. |
| 712 | Chyba | Chyba pri výbere cenovej ponuky |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
// vytvori subor cookie.txt, pozor na prava na zapis
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
$result = json_decode($output, true);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód cenovej ponuky:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/zcp';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
$result = json_decode($output, true);
$url = $result['url'];
$cislo = $result['number'];
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// pre zobrazenie cenovej ponuky:
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . $cislo . '.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
/*
// pre download cenovej ponuky:
header('Content-Type: application/download');
header('Content-Disposition: inline; filename="'.$cislo.'.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/
Array
(
[status] => 1
[url] => https://www.faktury-online.com/cenove-ponuky/detail-subor?cp=26915945a67c8b7ba74dac59c5badfbf
[number] => 2022099
)
POST https://www.faktury-online.com/api/cp-status(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód cenovej ponuky (získaný z odpovede API pri vytvorení ponuky) |
Array
(
[email] => name@example.com
[code] => ae47ece062b0021144d768446b071fee
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 802 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 803 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 804 | Chyba | API kľúč nie je zadaný správne. |
| 805 | Chyba | Parameter email nie je zadaný. |
| 806 | Chyba | Nie je vytvorené sedenie |
| 807 | Chyba | Vytvorené sedenie nie je správne |
| 808 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 809 | Chyba | Používateľ neexistuje. |
| 810 | Chyba | Nie je zadaný kód cenovej ponuky. |
| 811 | Chyba | Kód cenovej ponuky nie je zadaný správne. |
| 812 | Chyba | Chyba pri výbere cenovej ponuky |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "vJyMc*4@2754*wGhofIWi!QDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód cenovej ponuky:
$data['code'] = "ae47ece062b0021144d768446b071fee";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/cp-status';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
echo "Dodávateľ: {$result['supplier']} \n";
echo "Dodávateľ IČO: {$result['supplier_ico']} \n";
echo "Odberateľ / Zákazník: {$result['customer']} \n";
echo "Odberateľ / Zákazník IČO: {$result['customer_ico']} \n";
echo "Číslo cenovej ponuky: {$result['offer_number']} \n";
echo "Suma bez DPH: {$result['offer_amount']} \n";
if (isset($result['offer_amount_vat'])){
echo "Suma s DPH: {$result['offer_amount_vat']} \n";
}
echo "Mena: {$result['offer_currency']} \n";
echo "Dátum vystavenia: {$result['offer_date_issue']} \n";
echo "Dátum platnosti: {$result['offer_date_expiration']} \n";
echo "Vlastné dáta z API: {$result['offer_api_custom']} \n";
if (isset($result['offer_tags']) && is_array($result['offer_tags'])){
echo "Tagy cenovej ponuky: ";
echo implode(", ",$result['offer_tags']);
}
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[supplier] => Moja firma s.r.o.
[supplier_street] => Uličná 123
[supplier_city] => Bratislava
[supplier_zip] => 811 05
[supplier_state] => Slovensko
[supplier_ico] => 12345678
[supplier_dic] => 2131154505
[supplier_icdph] =>
[supplier_info] => Spol. zapísaná v OR Okresného súdu Bratislava I, Oddiel: Sro, Vložka č. 11111/B
[supplier_bankaccount] => 2100501234/8330
[supplier_bank] => Fio banka, a.s.
[supplier_iban] => SK6583300000002100501234
[supplier_swift] => FIOZSKBAXXX
[supplier_email] => email@moja-spolocnost.sk
[supplier_phone] => 0911 111 222
[supplier_web] => www.moja-spolocnost.sk
[supplier_custom_key_1] =>
[supplier_custom_value_1] =>
[supplier_custom_key_2] =>
[supplier_custom_value_2] =>
[customer] => Môj klient, s.r.o.
[customer_street] => Krátka 123
[customer_city] => Trenčín
[customer_zip] => 911 01
[customer_state] =>
[customer_ico] => 12345678
[customer_dic] => 2020301111
[customer_icdph] => SK2020301111
[customer_email] => info@isset.sk
[customer_info] =>
[customer_custom_key_1] => ID klienta
[customer_custom_value_1] => 156516
[customer_custom_key_2] =>
[customer_custom_value_2] =>
[offer_number] => 2022002
[offer_amount] => 183.69
[offer_amount_vat] => 215.75
[offer_total_discount_perc] => 10
[offer_currency] => EUR
[offer_date_issue] => 2021-10-01
[offer_date_expiration] => 2021-10-25
[offer_note] => Poznámka pod položkami
[offer_note_above] => Poznámka nad položkami
[offer_api_custom] =>
[offer_language] => sk
[items] => Array
(
[0] => Array
(
[item_name] => Položka 1
[item_unit] => ks
[item_quantity] => 1
[item_unit_price] => 100.3
[item_unit_price_total] => 120.36
[item_vat_rate] => 20
[item_vat_total] => 20.06
[item_unit_price_vat] => 120.36
[item_unit_price_totla_vat] => 120.36
[item_api_custom] =>
)
[1] => Array
(
[item_name] => Popis druhej položky
[item_unit] => ks
[item_quantity] => 5
[item_unit_price] => 15.5645
[item_unit_price_total] => 18.67
[item_vat_rate] => 20
[item_vat_total] => 15.56
[item_unit_price_vat] => 18.67
[item_unit_price_totla_vat] => 93.38
[item_api_custom] =>
)
[2] => Array
(
[item_name] => Popis tretej položky
[item_unit] => ks
[item_quantity] => 2
[item_unit_price] => 12.99
[item_unit_price_total] => 12.99
[item_vat_rate] => 0
[item_vat_total] => 0
[item_unit_price_vat] => 12.99
[item_unit_price_totla_vat] => 25.98
[item_api_custom] =>
)
)
[offer_tags] => Array
(
[0] => Tag 1
[1] => Tag 2
)
)
POST https://www.faktury-online.com/api/cp-list/created(telo požiadavky: JSON s parametrami nižšie)
POST https://www.faktury-online.com/api/cp-list/issued(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| from | nepovinný parameter | Dátum hľadania 'Od' Formát: YYYY-MM-DD |
| to | nepovinný parameter | Dátum hľadania 'Do' Formát: YYYY-MM-DD |
Array
(
[email] => name@example.com
[from] => 2022-01-01
[to] => 2022-01-31
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku |
| 902 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 903 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 904 | Chyba | API kľúč nie je zadaný správne. |
| 905 | Chyba | Parameter email nie je zadaný. |
| 906 | Chyba | Nie je vytvorené sedenie |
| 907 | Chyba | Vytvorené sedenie nie je správne |
| 908 | Chyba | Používateľské meno alebo API kľúč nie sú uvedené správne. |
| 909 | Chyba | Používateľ neexistuje. |
| 910 | Chyba | Chybná URL. |
| 911 | Chyba | Dátum 'Od' je zadaný nesprávne. |
| 912 | Chyba | Dátum 'Do' je zadaný nesprávne. |
| 913 | Chyba | Nepodarilo sa identifikovať príslušný zoznam, zrejme chyba v URL. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Inicializácia sedenia
$url = 'https://www.faktury-online.com/api/init';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Dáta v kalendárnom roku 2022
$data['from'] = '2022-01-01';
$data['to'] = '2022-12-31';
// Dáta sa uložia do formátu JSON:
$data_json = json_encode($data);
// Dáta sa odošlú (POST, telo požiadavky = JSON):
$url = 'https://www.faktury-online.com/api/cp-list/issued';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$output = curl_exec($ch);
// Výsledok:
$result = json_decode($output, true);
if ($result['status'] == 1) {
$cenovePonuky = $result['offers'];
foreach ($cenovePonuky as $cenovaPonuka) {
echo "Kód: {$cenovaPonuka['code']} \n";
echo "Dodávateľ: {$cenovaPonuka['supplier']} \n";
echo "Dodávateľ IČO: {$cenovaPonuka['supplier_ico']} \n";
echo "Odberateľ / Zákazník: {$cenovaPonuka['customer']} \n";
echo "Odberateľ / Zákazník IČO: {$cenovaPonuka['customer_ico']} \n";
echo "Číslo cenovej ponuky: {$cenovaPonuka['offer_number']} \n";
echo "Suma bez DPH: {$cenovaPonuka['offer_amount']} \n";
if (isset($cenovaPonuka['offer_amount_vat'])) {
echo "Suma s DPH: {$cenovaPonuka['offer_amount_vat']} \n";
}
echo "Mena: {$cenovaPonuka['offer_currency']} \n";
echo "Dátum vystavenia: {$cenovaPonuka['offer_date_issue']} \n";
echo "Dátum platnosti: {$cenovaPonuka['offer_date_expiration']} \n";
echo "Vlastné dáta z API: {$cenovaPonuka['offer_api_custom']} \n";
echo "Tagy: {$cenovaPonuka['tags']} \n";
}
} else {
echo "Vyskytla sa chyba č." . $result['status'];
}
Array
(
[status] => 1
[offers] => Array
(
[0] => Array
(
[code] => ae47ece062b0021144d768446b071fee
[supplier] => Moja spoločnosť s.r.o.
[supplier_ico] => 43226520
[customer] => Andrej Klačanský
[customer_ico] => 40436097
[offer_number] => 20220123
[offer_amount] => 200
[offer_amount_vat] => 240
[offer_currency] => EUR
[offer_date_issue] => 2022-01-10
[offer_date_expiration] => 2021-01-25
[offer_api_custom] => data z API
[tags] => Tag1 ,Tag2
)
)
)
/api/peppol-send. Systém faktúru ihneď skontroluje (údaje dodávateľa a odberateľa, oprávnenie, kredit, režimy DPH) a zvaliduje vytvorenú e-faktúru (formát UBL, pravidlá EN 16931 a Peppol BIS). Ak niečo chýba, dostanete chybu hneď v odpovedi a nič sa neodošle. Ak faktúra obsahuje len upozornenia, neodošle sa, kým ju neopravíte alebo nepošlete s parametrom ignore_warnings=1. Ak je všetko v poriadku, faktúra sa zaradí do fronty a odpoveď má stav queued./api/peppol-status.Pozor na trvanie. Odoslanie e-faktúry nie je okamžité. Volanie /api/peppol-send trvá spravidla 1 až 5 sekúnd, pretože sa synchrónne generuje a validuje celá e-faktúra. Samotné odovzdanie poštárovi prebehne na pozadí zvyčajne do 1 až 2 minút od zaradenia (stav sent). Potvrdenie doručenia odberateľovi (stav accepted) môže trvať 10 až 20 minút. Nečakajte na výsledok v rámci jedného volania a neposielajte faktúru opakovane, ak stav ešte nie je konečný.
/api/peppol-status:
| peppol_status | Význam |
|---|---|
| not_sent | Faktúra ešte nebola zaradená na odoslanie. |
| queued | Čaká vo fronte na odoslanie (spracúva sa priebežne, poradie podľa zaradenia). Pri dočasnej nedostupnosti poštára systém odoslanie opakuje približne 30 minút, stav potom prejde na sent alebo failed. |
| sent | Digitálny poštár e-faktúru prevzal a odovzdáva ju do siete Peppol. |
| accepted | E-faktúra bola doručená na prístupový bod odberateľa. Konečný úspešný stav. |
| rejected | Poštár alebo sieť e-faktúru odmietli. Podrobnosti sú v peppol_error. |
| not_valid | E-faktúra neprešla validáciou v sieti. Opravte údaje a odošlite opravný doklad. |
| failed | Odoslanie zlyhalo (technická chyba alebo vyčerpané pokusy). Podrobnosti sú v peppol_error a error_code. Ak je error_code receiver_unregistered, faktúra bola odoslaná a nahlásená finančnej správe, znova ju neposielajte. |
accepted sa dopĺňa priebežne podľa informácií od poštára, spravidla 10 až 20 minút po odoslaní. Systém výsledok neposiela (žiadny webhook), stav si vyžiadate sami cez /api/peppol-status.
/api/init, rovnako ako pri ostatných volaniach API (pozri základný manuál API)./api/init). Volanie API pre odoslanie faktúry:
POST https://www.faktury-online.com/api/peppol-send(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód faktúry (získaný z odpovede API pri vytvorení faktúry). |
| validate_only | nepovinný parameter | Hodnota 1 faktúru len skontroluje a zvaliduje, nič neodošle a nespotrebuje kredit. Vhodné na overenie údajov pred ostrým odoslaním. Predvolená hodnota: 0 |
| ignore_warnings | nepovinný parameter | Hodnota 1 odošle faktúru aj vtedy, keď má upozornenia (pole warnings). Pri hodnote 0 sa faktúra s upozornením neodošle a vráti sa stav 1622. Chyby odoslanie blokujú vždy. Predvolená hodnota: 0 |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
[validate_only] => 0
[ignore_warnings] => 0
)
Array
(
[status] => 1
[type] => OK
[invoice_code] => 26915945a67c8b7ba74dac59c5badfbf
[receiver_registered] => 1
[warnings] => Array
(
)
[test_mode] => 0
[peppol_status] => queued
[queue_id] => 1024
[message] => Queued for sending. Poll /api/peppol-status for the result.
)
| Pole | Popis |
|---|---|
| peppol_status | queued = zaradené do fronty; pri validate_only je to not_sent a pole validated má hodnotu 1. |
| queue_id | Číslo záznamu vo fronte (pri opakovanom volaní tej istej faktúry sa vráti ten istý). |
| receiver_registered | true = odberateľ je v sieti Peppol registrovaný, false = nie je, null = registráciu sa nepodarilo overiť. Faktúra sa odošle vo všetkých prípadoch, výsledok ukáže /api/peppol-status. |
| warnings | Zoznam upozornení (code, message). Sieť Peppol takú e-faktúru prijme, ale údaje môžu byť chybné. Zoznam kódov je nižšie. |
| test_mode | 1 = spoločnosť odosiela cez testovacieho poštára (e-faktúra nejde do ostrej siete). |
Array
(
[status] => 1618
[type] => Error
[error_code] => rezim_k_bez_icdph
[message] => The e-invoice cannot be sent: the regime Intra-EU supply of goods requires the customer's VAT ID.
)
Odpoveď s upozorneniami (stav 1622):
Array
(
[status] => 1622
[type] => Error
[error_code] => warnings
[message] => The invoice has warnings. Check and fix the invoice, or send it again with ignore_warnings=1.
[invoice_code] => 26915945a67c8b7ba74dac59c5badfbf
[receiver_registered] => 1
[warnings] => Array
(
[0] => Array
(
[code] => issue_date_not_today
[message] => The issue date of an e-invoice should be the same as the day it is sent to the Peppol network. This invoice has the issue date 17.10.2026. We recommend changing the date.
)
[1] => Array
(
[code] => buyer_vat_id_missing
[message] => The customer is a VAT payer (VAT ID SK2020123456), but the VAT ID is missing on the invoice.
)
)
)
Pole error_code je strojový kód chyby (pozri zoznam nižšie), message je popis v angličtine. Pri chybe validácie e-faktúry obsahuje pole errors zoznam porušených pravidiel. Pri kóde 1615 (faktúra už bola odoslaná) je v odpovedi aj peppol_document_id pôvodného odoslania.| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Faktúra bola zaradená do fronty (alebo pri validate_only prešla kontrolou). |
| 1602 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 1603 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 1604 | Chyba | API kľúč nie je zadaný správne. |
| 1605 | Chyba | Nie je zadaný email alebo používateľské meno. |
| 1606 | Chyba | Sedenie nie je inicializované (najprv zavolajte /api/init). |
| 1607 | Chyba | Sedenie je neplatné. |
| 1608 | Chyba | Nesprávna kombinácia API kľúča a emailu. |
| 1609 | Chyba | Konto nie je aktívne alebo nezodpovedá sedeniu. |
| 1610 | Chyba | Nie je zadaný parameter code. |
| 1611 | Chyba | Faktúra so zadaným kódom neexistuje. |
| 1612 | Chyba | Tento typ dokladu sa do siete Peppol neodosiela (napríklad zálohová faktúra). |
| 1613 | Chyba | Nesprávne DPH údaje dodávateľa (platiteľ bez IČ DPH, rovnaké IČ DPH dodávateľa a odberateľa, chýbajúce alebo neplatné DIČ). |
| 1614 | Chyba | Spoločnosť nemá dokončenú aktiváciu e-faktúry, konto nemá oprávnenie odosielať alebo poštár nie je aktívny. |
| 1615 | Chyba | Faktúra už bola odoslaná, opakované odoslanie nie je možné. |
| 1616 | Chyba | Spoločnosť nemá aktívny balík alebo má vyčerpaný kredit transakcií. |
| 1617 | Chyba | Krajinu odberateľa sa nepodarilo rozpoznať. |
| 1618 | Chyba | Režim DPH na faktúre nie je pre e-faktúru prípustný (napríklad dodanie do EÚ bez IČ DPH odberateľa, kombinácia dodania do EÚ a vývozu). |
| 1619 | Chyba | E-faktúra neprešla validáciou (pole errors obsahuje porušené pravidlá). |
| 1620 | Chyba | Neočakávaná chyba. |
| 1621 | Chyba | Príliš veľa volaní, najviac 60 za minútu. |
| 1622 | Chyba | Faktúra má upozornenia a nebola odoslaná (pole warnings). Opravte ju alebo ju odošlite s ignore_warnings=1. |
/api/init). Volanie API pre zistenie stavu odoslania:
POST https://www.faktury-online.com/api/peppol-status(telo požiadavky: JSON s parametrami nižšie)
| Parameter | Atribút | Popis |
|---|---|---|
| key | nepovinný parameter | API kľúč. Vo verzii 2 sa posiela v hlavičke Authorization (viď Formát volania). Parameter key v tele požiadavky je prijatý len pre spätnú kompatibilitu. |
| povinný parameter | Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online. | |
| code | povinný parameter | Kód faktúry. |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
)
Array
(
[status] => 1
[type] => OK
[invoice_code] => 26915945a67c8b7ba74dac59c5badfbf
[invoice_number] => 2026099
[peppol_status] => accepted
[peppol_document_id] => doc_5b1c9a2e-7f40-4c8a-9d21-3e8f0a6b7c1d
[peppol_error] =>
[error_code] =>
[queue_attempts] => 1
[peppol_queued_at] => 2026-10-01 10:12:05
[peppol_sent_at] => 2026-10-01 10:13:02
[peppol_status_checked_at] => 2026-10-01 10:28:00
)
| Pole | Popis |
|---|---|
| peppol_status | Stav odoslania (pozri tabuľku stavov v prvej časti). |
| peppol_document_id | Identifikátor dokumentu pridelený digitálnym poštárom po prevzatí. |
| peppol_error | Popis chyby v angličtine pri stavoch rejected, not_valid a failed, inak null. |
| error_code | Strojový kód poslednej chyby (pozri zoznam nižšie), inak null. |
| queue_attempts | Počet pokusov o odoslanie (pri dočasnej chybe sa opakuje najviac trikrát). |
| peppol_queued_at | Čas zaradenia do fronty. |
| peppol_sent_at | Čas odovzdania poštárovi. |
| peppol_status_checked_at | Čas poslednej kontroly doručenia. |
accepted, rejected, not_valid alebo failed. Potvrdenie doručenia môže trvať 10 až 20 minút, častejšie dotazy nový stav neprinesú.| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Všetko prebehlo v poriadku. |
| 1702 | Chyba | Chýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data. |
| 1703 | Chyba | API kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov. |
| 1704 | Chyba | API kľúč nie je zadaný správne. |
| 1705 | Chyba | Nie je zadaný email alebo používateľské meno. |
| 1706 | Chyba | Sedenie nie je inicializované (najprv zavolajte /api/init). |
| 1707 | Chyba | Sedenie je neplatné. |
| 1708 | Chyba | Nesprávna kombinácia API kľúča a emailu. |
| 1709 | Chyba | Konto nie je aktívne alebo nezodpovedá sedeniu. |
| 1710 | Chyba | Nie je zadaný parameter code. |
| 1711 | Chyba | Faktúra so zadaným kódom neexistuje. |
| 1712 | Chyba | Príliš veľa volaní, najviac 60 za minútu. |
/api/peppol-status.failed a môžete ju zaradiť znova./api/peppol-send trvajú 2 až 4 sekundy, s tým počítajte pri časovom limite spojenia.error_code v odpovediach umožňuje chybu spracovať programovo. Najčastejšie hodnoty:
| error_code | Význam |
|---|---|
| fa_not_found | Faktúra so zadaným kódom neexistuje. |
| unsupported_type | Typ dokladu sa neodosiela (zálohová faktúra). |
| vat_mismatch_platca_bez_icdph | Dodávateľ je platiteľ DPH, ale nemá IČ DPH. |
| rovnake_icdph | Dodávateľ a odberateľ majú rovnaké IČ DPH. |
| missing_dic, invalid_sk_dic | Chýbajúce alebo neplatné DIČ dodávateľa. |
| no_postar | Spoločnosť nemá dokončenú aktiváciu e-faktúry. |
| no_permission | Konto nemá oprávnenie odosielať za túto spoločnosť. |
| resend_blocked | Faktúra už bola odoslaná. |
| no_credit, no_credit_delegate | Vyčerpaný kredit alebo chýbajúci balík. |
| err_country_buyer | Nerozpoznaná krajina odberateľa. |
| receiver_unregistered | Odberateľ nie je registrovaný v sieti Peppol a e-faktúru nebolo možné doručiť. Odoslanie je zaznamenané, faktúra bola nahlásená finančnej správe a zaúčtovala sa ako odoslaná. Znova ju neposielajte, odberateľovi ju môžete poslať e-mailom. |
| warnings | Faktúra má upozornenia a nebola odoslaná (pole warnings). Opravte ju alebo ju odošlite s ignore_warnings=1. |
| rezim_k_bez_icdph, rezim_k_bez_datumu, rezim_k_krajina, rezim_k_kombinacia, rezim_mimo_eu_krajina, rezim_ae_krajina | Neprípustná kombinácia režimu DPH a údajov odberateľa. |
| validation_failed | E-faktúra neprešla validáciou pred odoslaním (pole errors). |
| dp_rejected | Poštár e-faktúru odmietol (stav rejected). |
| pdf_render_failed | Nepodarilo sa vytvoriť PDF prílohu. |
| api_error, api_error_with_detail, api_error_with_rules | Chyba na strane poštára alebo siete; podrobnosti v message alebo errors. |
| too_many_requests | Prekročený limit volaní za minútu. |
| code | Význam |
|---|---|
| missing_supplier_street, missing_supplier_city, missing_supplier_zip | Chýba adresa dodávateľa (ulica, mesto, PSČ). |
| missing_buyer_street, missing_buyer_city, missing_buyer_zip | Chýba adresa odberateľa. |
| missing_delivery_date | Chýba dátum dodania. |
| issue_date_not_today | Dátum vystavenia nie je dnešný. |
| buyer_tax_id_not_found | DIČ odberateľa nie je v registri finančnej správy. |
| buyer_tax_id_other_company | DIČ odberateľa patrí firme s iným IČO. E-faktúra sa doručuje podľa DIČ. |
| buyer_vat_id_not_registered | IČ DPH odberateľa nie je v zozname platiteľov DPH. |
| buyer_vat_id_other_company | IČ DPH odberateľa patrí firme s iným IČO. |
| buyer_vat_id_tax_id_mismatch | IČ DPH nezodpovedá DIČ. |
| buyer_vat_id_missing | Odberateľ je platiteľ DPH, ale IČ DPH na faktúre chýba. |
<?php
// Príprava základných dát:
$data = [];
// Váš API kľúč (posiela sa v hlavičke Authorization, nie v dátach):
$api_key = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";
// Váš email (príp. používateľské meno):
$data['email'] = "name@example.com";
// Inicializácia sedenia (cookie.txt musí byť zapisovateľný). Všetky volania idú metódou POST,
// dáta sú v tele požiadavky ako JSON, kľúč v hlavičke Authorization:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.faktury-online.com/api/init');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json', 'Authorization: Bearer ' . $api_key]);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}
// Kód faktúry (z odpovede API pri jej vytvorení):
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Faktúru s upozorneniami (pole warnings) odoslať aj tak? 0 = nie (predvolené), 1 = áno:
$data['ignore_warnings'] = "0";
// Zaradenie na odoslanie do siete Peppol (kontroly a validácia prebehnú hneď):
curl_setopt($ch, CURLOPT_URL, 'https://www.faktury-online.com/api/peppol-send');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] != 1) {
// error_code = strojový kód chyby, message = popis
// Pri stave 1622 obsahuje $result['warnings'] zoznam upozornení (code, message)
throw new Exception("Odoslanie zamietnuté: " . $result['status'] . " " . $result['error_code'] . " (" . $result['message'] . ")");
}
// $result['peppol_status'] == 'queued'
// Stav odoslania (prvý dotaz asi po 2 minútach, potom najviac raz za 15 minút):
sleep(120);
curl_setopt($ch, CURLOPT_URL, 'https://www.faktury-online.com/api/peppol-status');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
// $result['peppol_status']: queued | sent | accepted | rejected | not_valid | failed
echo $result['peppol_status'], " ", $result['peppol_document_id'] ?? '', " ", $result['peppol_error'] ?? '';