Manuál pre vývojárov - Faktúry online API, verzia 2

Odporúčaný spôsob volania API pre nové integrácie

Čo je nové vo verzii 2

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áta sa posielajú metódou POST v tele požiadavky vo formáte JSON, nie v adrese URL,
  • API kľúč sa posiela v hlavičke Authorization, nie v dátach.

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

Predtým ako začnete...

Je potrebné, aby ste poznali svoj API kľúč. API kľúč je 32 znakový reťazec nutný pre používanie API. Svoj API kľúč nikomu nedávajte a nikdy ho neposielajte v adrese URL. Unikátny API kľúč si nájdete vo Vašom profile hneď po prihlásení sa na uvítacej stránke.

Formát volania

Každé volanie API je požiadavka metódou POST na adresu endpointu. Požiadavka musí obsahovať:

  • hlavičku Content-Type: application/json,
  • hlavičku Authorization: Bearer VAS_API_KLUC,
  • telo požiadavky: parametre volania vo formáte JSON.

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.

Príklad volania (curl):
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"}'

Inicializácia sedenia

Inicializácia sedenia je potrebná pre manipuláciu s dokumentami, napríklad zobrazenie faktúry, úhradu faktúry, detail cenovej ponuky a podobne. Volanie API pre vytvorenie inicializácie sedenia:
POST https://www.faktury-online.com/api/init
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email povinný parameter Email (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online.
Základné parametre:
Array
(
    [email] => name@example.com
)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}

Odpoveď:
Array
(
    [status] => 1
)

Vytvorenie novej faktúry

Volanie API pre vytvorenie novej faktúry:
POST https://www.faktury-online.com/api/nf
(telo požiadavky: JSON s parametrami nižšie)
Nasledujúce tabuľky uvádzajú zoznam parametrov, pomocou ktorých môžete vytvoriť novú faktúru.

Základné parametre:
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.
email 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
Parametre dodávateľa:
Dodávateľa môžeme vybrať buď pomocou parametra d_id, ktorého máme uloženého v zozname Moje spoločnosti (možnosť 1) alebo všetky potrebné údaje vyplníme v parametroch (možnosť 2).
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
Parametre odberateľa:
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
Parametre faktúry:
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
)
Parametre položiek faktúry:
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
Formát dát pred odoslaním:
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
                )

        )

)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}

Odpoveď:
Array
(
    [status] => 1
    [code] => 1a35b89cd48eaf8940a6409ff45a0cc5
    [number] => 2024099
    [created] => 2024-02-15 17:45:12
)

Zobrazenie faktúry

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Volanie API pre zobrazenie faktúry:
POST https://www.faktury-online.com/api/zf
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email 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)
Základné parametre:
Array
(
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
)


Zoznam návratových kódov:
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
Ukážka zdrojového kódu:
<?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);
*/

Odpoveď:
Array
(
    [status] => 1
    [url] => https://www.faktury-online.com/faktury/detail-subor?f=26915945a67c8b7ba74dac59c5badfbf
    [number] => FA2019015
)

Úhrada faktúry

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Volanie API pre zobrazenie faktúry:
POST https://www.faktury-online.com/api/uf
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email 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'
Základné parametre:
Array
(
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
    [date] => 2019-06-01
)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}



Odpoveď:
Array
(
    [status] => 1
)

Status a detail faktúry

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Volanie API pre zobrazenie statusu a detailu faktúry:
POST https://www.faktury-online.com/api/status
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email 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)
Základné parametre:
Array
(
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
)


Zoznam návratových kódov:
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
Ukážka zdrojového kódu:
<?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'];
}



Odpoveď:
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
        )

)

Zoznam faktúr

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Nasledujúce URL vrátia zoznamy faktúr.
Všetky faktúry vytvorené v období:
POST https://www.faktury-online.com/api/list/created
(telo požiadavky: JSON s parametrami nižšie)
Všetky faktúry s dátumom vystavenia v období:
POST https://www.faktury-online.com/api/list/issued
(telo požiadavky: JSON s parametrami nižšie)
Všetky faktúry s dátumom dodania v období:
POST https://www.faktury-online.com/api/list/delivered
(telo požiadavky: JSON s parametrami nižšie)
Všetky faktúry s dátumom úhrady v období:
POST https://www.faktury-online.com/api/list/paid
(telo požiadavky: JSON s parametrami nižšie)
Základné parametre:
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.
email 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
Základné parametre:
Array
(
    [email] => name@example.com
    [from] => 2021-01-01
)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}



Odpoveď:
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
                )

        )

)

Vytvorenie novej cenovej ponuky

Volanie API pre vytvorenie novej cenovej ponuky:
POST https://www.faktury-online.com/api/ncp
(telo požiadavky: JSON s parametrami nižšie)
Nasledujúca tabuľka uvádza zoznam parametrov, pomocou ktorých môžete vytvoriť novú cenovú ponuku.

Základné parametre:
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.
email 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
Parametre dodávateľa:
Dodávateľa môžeme vybrať buď pomocou parametra d_id, ktorého máme uloženého v zozname Moje spoločnosti (možnosť 1) alebo všetky potrebné údaje vyplníme v parametroch (možnosť 2).
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
Parametre odberateľa:
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
Parametre cenovej ponuky:
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
)
Parametre položiek cenovej ponuky:
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
Formát dát pred odoslaním:
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
                )

        )

)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}

Odpoveď:
Array
(
    [status] => 1
    [code] => ca9658a5448a945059f44658bac985e5
    [number] => 2022099
    [created] => 2022-01-01 09:49:05
)

Zobrazenie cenovej ponuky

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Volanie API pre zobrazenie cenovej ponuky:
POST https://www.faktury-online.com/api/zcp
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email 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)
Základné parametre:
Array
(
    [email] => name@example.com
    [code] => aa9025bc0094c88445daa22b90eff3b
)


Zoznam návratových kódov:
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
Ukážka zdrojového kódu:
<?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);
*/

Odpoveď:
Array
(
    [status] => 1
    [url] => https://www.faktury-online.com/cenove-ponuky/detail-subor?cp=26915945a67c8b7ba74dac59c5badfbf
    [number] => 2022099
)

Status a detail cenovej ponuky

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Volanie API pre zobrazenie statusu a detailu cenovej ponuky:
POST https://www.faktury-online.com/api/cp-status
(telo požiadavky: JSON s parametrami nižšie)

Základné parametre:
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.
email 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)
Základné parametre:
Array
(
    [email] => name@example.com
    [code] => ae47ece062b0021144d768446b071fee
)


Zoznam návratových kódov:
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
Ukážka zdrojového kódu:
<?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'];
}



Odpoveď:
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
        )

)

Zoznam cenových ponúk

Pred týmto volaním je potrebné inicializovať sedenie (viď vyššie). Nasledujúce URL vrátia zoznamy cenových ponúk.
Všetky cenové ponuky vytvorené v období:
POST https://www.faktury-online.com/api/cp-list/created
(telo požiadavky: JSON s parametrami nižšie)
Všetky cenové ponuky s dátumom vystavenia v období:
POST https://www.faktury-online.com/api/cp-list/issued
(telo požiadavky: JSON s parametrami nižšie)
Základné parametre:
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.
email 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
Základné parametre:
Array
(
    [email] => name@example.com
    [from] => 2022-01-01
    [to] => 2022-01-31
)


Zoznam návratových kódov:
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.
Ukážka zdrojového kódu:
<?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'];
}



Odpoveď:
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
                )

        )

)

Ako odosielanie cez API funguje

Faktúru vytvorenú vo Faktúrach online (cez API alebo ručne) môžete cez API odoslať do siete Peppol ako elektronickú faktúru. Odoslanie prebieha v dvoch krokoch:
  1. Zaradenie volaním /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.
  2. Odoslanie vykoná server na pozadí zvyčajne do jednej až dvoch minút: vytvorí PDF prílohu (ak ju má firma zapnutú) a odovzdá e-faktúru certifikovanému digitálnemu poštárovi. Výsledok zistíte volaním /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ý.

Stavy odoslania, ktoré vracia /api/peppol-status:
peppol_status Význam
not_sentFaktú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.
sentDigitálny poštár e-faktúru prevzal a odovzdáva ju do siete Peppol.
acceptedE-faktúra bola doručená na prístupový bod odberateľa. Konečný úspešný stav.
rejectedPoštár alebo sieť e-faktúru odmietli. Podrobnosti sú v peppol_error.
not_validE-faktúra neprešla validáciou v sieti. Opravte údaje a odošlite opravný doklad.
failedOdoslanie 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.
Stav 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.

Predtým ako začnete

  • Potrebujete API kľúč a inicializované sedenie volaním /api/init, rovnako ako pri ostatných volaniach API (pozri základný manuál API).
  • Spoločnosť (DIČ dodávateľa na faktúre) musí mať vo Faktúrach online dokončenú aktiváciu e-faktúry a aktívny balík alebo kredit transakcií. Aktiváciu urobíte v aplikácii v sekcii E-faktúra, cez API sa aktivovať nedá.
  • Konto, ktorým voláte API, musí byť vlastníkom aktivácie alebo mať od vlastníka povolené odosielanie (delegácia).
  • Odoslať sa dá riadna faktúra, dobropis, ťarchopis a daňový doklad k prijatej platbe. Zálohová faktúra sa do siete Peppol neodosiela.
  • Každá faktúra sa dá odoslať len raz. Opravu urobíte opravným dokladom (dobropis a nová faktúra).

Odoslanie faktúry do siete Peppol

Pred týmto volaním je potrebné inicializovať sedenie (/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)

Parametre:
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.
email 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
Príklad požiadavky:
Array
(
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
    [validate_only] => 0
    [ignore_warnings] => 0
)


Odpoveď pri úspešnom zaradení:
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_statusqueued = 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_registeredtrue = 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.
warningsZoznam upozornení (code, message). Sieť Peppol takú e-faktúru prijme, ale údaje môžu byť chybné. Zoznam kódov je nižšie.
test_mode1 = spoločnosť odosiela cez testovacieho poštára (e-faktúra nejde do ostrej siete).
Odpoveď pri chybe:
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.

Zoznam návratových kódov:
Status ID Význam Popis
1OKFaktúra bola zaradená do fronty (alebo pri validate_only prešla kontrolou).
1602ChybaChýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data.
1603ChybaAPI kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov.
1604ChybaAPI kľúč nie je zadaný správne.
1605ChybaNie je zadaný email alebo používateľské meno.
1606ChybaSedenie nie je inicializované (najprv zavolajte /api/init).
1607ChybaSedenie je neplatné.
1608ChybaNesprávna kombinácia API kľúča a emailu.
1609ChybaKonto nie je aktívne alebo nezodpovedá sedeniu.
1610ChybaNie je zadaný parameter code.
1611ChybaFaktúra so zadaným kódom neexistuje.
1612ChybaTento typ dokladu sa do siete Peppol neodosiela (napríklad zálohová faktúra).
1613ChybaNesprá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Č).
1614ChybaSpoločnosť nemá dokončenú aktiváciu e-faktúry, konto nemá oprávnenie odosielať alebo poštár nie je aktívny.
1615ChybaFaktúra už bola odoslaná, opakované odoslanie nie je možné.
1616ChybaSpoločnosť nemá aktívny balík alebo má vyčerpaný kredit transakcií.
1617ChybaKrajinu odberateľa sa nepodarilo rozpoznať.
1618ChybaRež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).
1619ChybaE-faktúra neprešla validáciou (pole errors obsahuje porušené pravidlá).
1620ChybaNeočakávaná chyba.
1621ChybaPríliš veľa volaní, najviac 60 za minútu.
1622ChybaFaktúra má upozornenia a nebola odoslaná (pole warnings). Opravte ju alebo ju odošlite s ignore_warnings=1.

Stav odoslania

Pred týmto volaním je potrebné inicializovať sedenie (/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)

Parametre:
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.
emailpovinný parameterEmail (alebo používateľské meno), ktorým sa prihlasujete do Faktúr online.
codepovinný parameterKód faktúry.
Príklad požiadavky:
Array
(
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
)


Odpoveď:
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_statusStav odoslania (pozri tabuľku stavov v prvej časti).
peppol_document_idIdentifikátor dokumentu pridelený digitálnym poštárom po prevzatí.
peppol_errorPopis chyby v angličtine pri stavoch rejected, not_valid a failed, inak null.
error_codeStrojový kód poslednej chyby (pozri zoznam nižšie), inak null.
queue_attemptsPoč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.
Odporúčaný postup zisťovania stavu: prvý dotaz pošlite asi 2 minúty po zaradení, potom sa pýtajte najviac raz za 10 minút, kým stav nie je accepted, rejected, not_valid alebo failed. Potvrdenie doručenia môže trvať 10 až 20 minút, častejšie dotazy nový stav neprinesú.

Zoznam návratových kódov:
Status ID Význam Popis
1OKVšetko prebehlo v poriadku.
1702ChybaChýbajú vstupné dáta: telo požiadavky nie je platný JSON a nebol zadaný ani parameter data.
1703ChybaAPI kľúč chýba (v hlavičke Authorization ani v dátach) alebo nemá 32 znakov.
1704ChybaAPI kľúč nie je zadaný správne.
1705ChybaNie je zadaný email alebo používateľské meno.
1706ChybaSedenie nie je inicializované (najprv zavolajte /api/init).
1707ChybaSedenie je neplatné.
1708ChybaNesprávna kombinácia API kľúča a emailu.
1709ChybaKonto nie je aktívne alebo nezodpovedá sedeniu.
1710ChybaNie je zadaný parameter code.
1711ChybaFaktúra so zadaným kódom neexistuje.
1712ChybaPríliš veľa volaní, najviac 60 za minútu.

Limity a poradie spracovania

  • Každý z endpointov prijme najviac 60 volaní za minútu na jedno konto, ďalšie volania dostanú kód 1621 alebo 1712.
  • Fronta sa spracúva každú minútu v poradí zaradenia. V jednom behu sa odošle najviac 20 faktúr a najviac 5 faktúr jedného konta, aby dávka jedného integrátora nezdržala ostatných. Pri väčšej dávke počítajte s tým, že posledné faktúry odídu o niekoľko minút neskôr; stav sledujte cez /api/peppol-status.
  • Faktúry v štýle Dizajnér PRO sa renderujú dlhšie (niekoľko sekúnd na faktúru), ich odoslanie preto môže trvať o niečo dlhšie.
  • Pri dočasnej chybe (nedostupný poštár, zlyhanie vytvorenia PDF) sa odoslanie automaticky zopakuje, najviac trikrát. Potom faktúra skončí v stave failed a môžete ju zaradiť znova.
  • Kontroly a validácia v /api/peppol-send trvajú 2 až 4 sekundy, s tým počítajte pri časovom limite spojenia.

Strojové kódy chýb (error_code)

Pole error_code v odpovediach umožňuje chybu spracovať programovo. Najčastejšie hodnoty:
error_code Význam
fa_not_foundFaktúra so zadaným kódom neexistuje.
unsupported_typeTyp dokladu sa neodosiela (zálohová faktúra).
vat_mismatch_platca_bez_icdphDodávateľ je platiteľ DPH, ale nemá IČ DPH.
rovnake_icdphDodávateľ a odberateľ majú rovnaké IČ DPH.
missing_dic, invalid_sk_dicChýbajúce alebo neplatné DIČ dodávateľa.
no_postarSpoločnosť nemá dokončenú aktiváciu e-faktúry.
no_permissionKonto nemá oprávnenie odosielať za túto spoločnosť.
resend_blockedFaktúra už bola odoslaná.
no_credit, no_credit_delegateVyčerpaný kredit alebo chýbajúci balík.
err_country_buyerNerozpoznaná krajina odberateľa.
receiver_unregisteredOdberateľ 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.
warningsFaktú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_krajinaNeprípustná kombinácia režimu DPH a údajov odberateľa.
validation_failedE-faktúra neprešla validáciou pred odoslaním (pole errors).
dp_rejectedPoštár e-faktúru odmietol (stav rejected).
pdf_render_failedNepodarilo sa vytvoriť PDF prílohu.
api_error, api_error_with_detail, api_error_with_rulesChyba na strane poštára alebo siete; podrobnosti v message alebo errors.
too_many_requestsPrekročený limit volaní za minútu.
Kódy upozornení (pole warnings):
code Význam
missing_supplier_street, missing_supplier_city, missing_supplier_zipChýba adresa dodávateľa (ulica, mesto, PSČ).
missing_buyer_street, missing_buyer_city, missing_buyer_zipChýba adresa odberateľa.
missing_delivery_dateChýba dátum dodania.
issue_date_not_todayDátum vystavenia nie je dnešný.
buyer_tax_id_not_foundDIČ odberateľa nie je v registri finančnej správy.
buyer_tax_id_other_companyDIČ odberateľa patrí firme s iným IČO. E-faktúra sa doručuje podľa DIČ.
buyer_vat_id_not_registeredIČ DPH odberateľa nie je v zozname platiteľov DPH.
buyer_vat_id_other_companyIČ DPH odberateľa patrí firme s iným IČO.
buyer_vat_id_tax_id_mismatchIČ DPH nezodpovedá DIČ.
buyer_vat_id_missingOdberateľ je platiteľ DPH, ale IČ DPH na faktúre chýba.
Kontroly DIČ a IČ DPH sa robia len pri odberateľovi zo Slovenska.

Ukážka zdrojového kódu (PHP)

Inicializácia sedenia, zaradenie faktúry na odoslanie a zistenie stavu:
<?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'] ?? '';