Developer's Guide - Faktury Web API

Guide of Faktury Web API usage and samples of source code

Předtím než začnete...

Inicializace sezení (session)

Faktury:

Vytvoření nové faktury

Zobrazení faktury

Úhrada faktury

Status a detail faktury

Seznam faktur

Cenové nabídky:

Vytvoření nové cenové nabídky

Zobrazení cenové nabídky

Status a detail cenové nabídky

Seznam cenových nabídek

Předtím než začnete...

Je potřebné, aby jste měli definovaný svůj API klíč. API klíč je 32 znakový řetězec nutný pro používání API. Svůj API klíč nikomu nedávejte. Unikátní API klíč najdete ve Vašem profilu hned po přihlášení na uvítací stránce.

Inicializace sezení (session)

Inicializace sezení je nutná pro manipulaci s dokumenty, například zobrazení faktury, úhradu faktury, detail cenové nabídky a podobně. Volání API pro vytvoření inicializace sezení:
https://www.fakturyweb.cz/api/init?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), kterým se přihlašujete do Faktury webu.
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku, inicializace session byla vytvořena
102 Chyba Parametr data nebyl odeslán metodou GET.
103 Chyba API klíč není zadaný nebo není platný počet řetězců.
104 Chyba API klíč není zadaný správně.
105 Chyba Parametr email není zadaný.
106 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
107 Chyba Uživatel neexistuje.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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);
$result = json_decode($output, true);

// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Sezení bylo vytvořeno";
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}

Odpověď:
Array
(
    [status] => 1
)

Vytvoření nové faktury

Volání API pro vytvoření nové faktury:
https://www.fakturyweb.cz/api/nf?data={JSON}
Nasledující tabulky uvádějí seznam parametrů, pomocí kterých můžete vytvořit novou fakturu.

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
apitest nepovinný parametr Parameter apitest určuje, zda vytvořená faktura slouží pro testovací účely. Tento parametr by měli použít pouze vývojáři, kteří implementují Faktury web API. Systém bude brát vytvořenou fakturu jako testovací a v rozmezí 5 – 10 minut ji odstraní. Doporučujeme mít tuto hodnotu zapnutou při testovaní implementace API. V produkčním prostředí tuto hodnotu vypněte, jinak se faktury odstraní automaticky.
Možné hodnoty: 1 nebo 0
Předvolená hodnota: 0
Parametry dodavatele:
Dodavatele můžeme vybrat buď pomocí parametru d_id, ID dodavatele máme uloženo v seznamu Moje společnosti (možnost 1) nebo všechny potřebné údaje vyplníme v parametrech (možnost 2).
Parametr Atribut Popis
d_id možnost 1 / povinný parametr ID dodavatele (ID najdete v seznamu Moje společnosti).
d_name možnost 2 / povinný parametr Obchodní název dodavatele.
d_street možnost 2 / nepovinný parametr Ulice dodavatele.
d_city možnost 2 / nepovinný parametr Město dodavatele.
d_state možnosť 2 / nepovinný parametr Stát dodavatele.
d_zip možnost 2 / nepovinný parametr PSČ dodavatele.
d_ico možnost 2 / nepovinný parametr IČO dodávatele.
d_dic možnost 2 / nepovinný parametr DIČ dodavatele.
d_vatpayer možnost 2 / nepovinný parametr Plátce DPH.
Možné hodnoty:
Plátce DPH: 1
Neplátce DPH: 0
Předvolená hodnota: 0
d_viewpayer možnost 2 / nepovinný parametr Zobrazit na faktuře informaci, zda je/není dodavatel plátcem DPH.
Možné hodnoty:
Ano: 1
Ne: 0
Předvolená hodnota: 1
d_info možnost 2 / nepovinný parametr Info o dodavateli.
d_bankaccount možnost 2 / nepovinný parametr Číslo účtu dodavatele.
d_bank možnost 2 / nepovinný parametr Název banky dodavatele.
d_iban možnost 2 / nepovinný parametr IBAN dodavatele.
d_swift možnost 2 / nepovinný parametr SWIFT dodavatele.
d_email možnost 2 / nepovinný parametr Email dodávatele.
d_web možnost 2 / nepovinný parametr Web dodavatele.
d_phone možnost 2 / nepovinný parametr Telefon dodavatele.
d_custom_key_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - klíč
d_custom_value_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - hodnota
d_custom_key_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - klíč
d_custom_value_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - hodnota
Parametry odberatele:
Parametr Atribut Popis
o_name povinný parametr Obchodní název odběratele.
o_street nepovinný parametr Ulice odběratele.
o_city nepovinný parametr Město odběratele.
o_state nepovinný parametr Stát odběratele.
o_zip nepovinný parametr PSČ odběratele.
o_ico nepovinný parametr IČO odběratele.
o_dic nepovinný parametr DIČ odběratele.
o_email nepovinný parametr Email odběratele.
o_name_d nepovinný parametr Adresa dodání - Obchodní název.
o_street_d nepovinný parametr Adresa dodání - Ulice.
o_city_d nepovinný parametr Adresa dodání - Město.
o_state_d nepovinný parametr Adresa dodání - Stát.
o_zip_d nepovinný parametr Adresa dodání - PSČ.
o_custom_key_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - klíč
o_custom_value_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - hodnota
o_custom_key_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - klíč
o_custom_value_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - hodnota
Parametry faktury:
parametr Atribut Popis
f_number nepovinný parametr Číslo faktury. Pokud není vyplněné, číslo se automaticky zvýší o 1 podle poslední vytvořené faktury (rozhodující je datum vystavení, číslo faktury musí mít numerický formát).
f_vs nepovinný parametr Variabilní symbol.
f_ks nepovinný parametr Konstantní symbol.
f_date_issue nepovinný parametr Datum vystavení. Vo formáte RRRR-MM-DD.
Předvolená hodnota: Aktuální datum
f_date_delivery nepovinný parametr Datum dodání. Vo formátě RRRR-MM-DD.
Předvolená hodnota: Aktuální datum
f_date_due nepovinný parametr Datum splatnosti. Ve formátu RRRR-MM-DD.
Předvolená hodnota: 14 dní od aktuálního datumu
f_issued_by nepovinný parametr Faktúru vystavil.
f_order nepovinný parametr Číslo objednávky.
f_payment nepovinný parametr Typ úhrady. Možné hodnoty:
Peněžní převod: prevod
Poštovní poukázka: poukazka
Hotovost: hotovost
Dobírka: dobirka
Registrační pokladna: pokladna
Internetový platební poskytovatel: eprovider
Zápočet: zapocet
Platební karta: karta
Jiná: jina
Předvolená hodnota: prevod
f_note_above nepovinný parametr Poznámka ve faktuře. Zobrazení poznámky nad fakturačními položkami.
f_note nepovinný parametr Poznámka ve faktuře. Zobrazení poznámky pod fakturačními položkami. V případě, že je dodávatel vybraný pomocí parametru d_id a f_note je prázdné, zobrazí se příslušná uložená poznámka k tomuto dodavateli.
f_logo nepovinný parametr Zobrazení loga. Možné hodnoty:
Nezobrazí se: 0
Zobrazí se: 1 (pouze v případě, že dodávatel byl načtený pomocí d_id a logo má uloženo)
f_stamp nepovinný parametr Zobrazení razítka. Možné hodnoty:
Nezobrazí se: 0
Zobrazí se: 1 (pouze v případě, že dodávatel byl načtený pomocí d_id a razítko má uloženo)
f_currency nepovinný parametr Měna na faktuře. Označení měny. Předvolená hodnota je Kč.
Předvolená hodnota: Kč
f_proforma nepovinný parametr Zálohová faktura. V případě, že se jedná o zálohovu fakturu, je potřebné vložit hodnotu 1.
Předvolená hodnota: 0
f_paid nepovinný parametr Již uhrazeno. Suma.
Předvolená hodnota: 0
f_style nepovinný parametr Vizuální styl faktury. Možné hodnoty:
styl_1
styl_2
styl_3
styl_4
styl_5
styl_6
Předvolená hodnota: styl_1
f_language nepovinný parametr Jazyk faktury. Možné hodnoty:
CZ, SK, EN, DE, ES, FR, IT, PL, HU, RU, NO, DK
Předvolená hodnota: CZ
f_qr nepovinný parametr Zobrazit QR kód platby:
1
0
Předvolená hodnota: 1
f_omit_stats nepovinný parametr Vynechat hodnotu ze statistiky. Možné hodnoty:
0
1
Předvolená hodnota: 0
f_custom nepovinný parametr Libovolná textová informace zaslána přes API. Zobrazí se jako samostatný sloupec v excelovské exportu.
text, max. 50 znaků
Parametre položiek faktúry:
Parameter Atribút Popis
p_text povinný parametr Text fakturační položky.
p_quantity povinný parametr Množství. Číslo.
p_unit povinný parametr Měrná jednotka. Například kg, ks,...
p_price povinný parametr Částka za jednu měrnou jednotku bez daně.
p_vat nepovinný parametr Daň v procentech. Vyplní se pouze, když je dodavatel plátce DPH.
p_pricevat nepovinný parametr Částka za jednu měrnou jednotku včetně daně. Vyplní se pouze, když je dodavatel plátce DPH.
p_custom nepovinný parametr Libovolná textová informace zaslána přes API pro položku faktury. Zobrazí se jako samostatný sloupec v excelovské exportu.
text, max. 50 znaků
Formát dat před odesláním:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [apitest] => 1
    [d] => Array
        (
            [d_name] => Moje společnost, s.r.o.
            [d_street] => Táborská 231/10
            [d_city] => Praha 4 - Nusle
            [d_zip] => 140 00
            [d_state] => Česká republika
            [d_ico] => 60991234
            [d_dic] => CZ60991234
            [d_vatpayer] => 1
            [d_viewpayer] => 0
            [d_info] => Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B, vložka 12345 
            [d_bankaccount] => 12345678/0100
            [d_bank] => Komerční banka
            [d_iban] => CZ620100000000012345678
            [d_swift] => KOMBCZPP
            [d_email] => info@example.com
            [d_web] => www.example.com
            [d_phone] => +420 601 111 111
        )

    [o] => Array
        (
            [o_name] => Petr Novák
            [o_street] => Pod kaštany 2299/10
            [o_city] => Brno - Žabovřesky
            [o_zip] => 616 00
            [o_state] => 
            [o_ico] => 
            [o_dic] => 
            [o_email] => client@example.com
        )

    [f] => Array
        (
            [f_number] => 2014099
            [f_vs] => 2014099
            [f_ks] => 308
            [f_date_issue] => 2014-12-14
            [f_date_delivery] => 2014-12-14
            [f_date_due] => 2014-12-28
            [f_issued_by] => Ing. Zbyněk Tuček
            [f_payment] => prevod
            [f_logo] => 0
            [f_stamp] => 1
            [f_currency] => Kč
            [f_proforma] => 0
            [f_paid] => 
            [f_style] => standard
            [f_language] => CZ
            [f_qr] => 0
            [f_order] => OBJ-2019-514
        )

    [p] => Array
        (
            [0] => Array
                (
                    [p_text] => Malířské práce
                    [p_quantity] => 3
                    [p_unit] => hod
                    [p_price] => 200
                    [p_vat] => 21
                    [p_pricevat] => 242
                )

            [1] => Array
                (
                    [p_text] => Natěračské a lakýrnické práce
                    [p_quantity] => 2
                    [p_unit] => hod
                    [p_price] => 350
                    [p_vat] => 21
                    [p_pricevat] => 423,50
                )

        )

)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku, faktura byla vytvořena
2 Chyba Parametr data nebyl odeslán metodou GET.
3 Chyba API klíč není zadaný nebo není platný počet znaků.
4 Chyba API klič není zadaný správně.
5 Chyba Parametr email není zadaný.
6 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
7 Chyba Uživatel neexistuje.
8 Chyba Potřebné zadat ID dodavatele nebo jeho název.
9 Chyba Zrušeno
10 Chyba Vložené ID dodavatele není správné.
11 Chyba Není zadané jméno dodavatele.
12 Chyba Není zadané jméno odběratele.
13 Chyba Chybí fakturační údaje.
14 Chyba Chybí položky faktury nebo nejsou zadané správně.
15 Chyba Chyba ve fakturační položce.
16 Chyba Množství ve fakturační položce není číslo.
17 Chyba Částka bez daně ve fakturační položce není číslo.
18 Chyba Daň v procentách není zadaná správně.
19 Chyba V položce není vložena částka bez daně nebo částka včetně daně.
20 Chyba Nepovolený jazyk ve faktuře.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// V případě, že budeme testovat API, zvolíme hodnotu 1
// Znamená to, že všechny vytvořené faktury se automaticky smažou o 5 - 10 minut
$data['apitest'] = 1; //hodnota může být 1 nebo 0


// Příprava dat dodavatele
$dodavatel = array();

// Dodavatele můžeme použít již existujícího (uloženého v seznamu Moje společnosti)
// nebo dodavatele vytvoříme ručně vložením dat.
// Pokud použijeme stávajícího dodavatele, vložíme pouze jeho ID:
// $dodavatel['d_id'] = 123; // ID dodavatele najdeme v seznamu Moje společnosti

//nebo (ne obě) :
$dodavatel['d_name'] = "Moje společnost, s.r.o."; // Obchodní jméno dodavatele
$dodavatel['d_street'] = "Táborská 231/10"; // Ulice
$dodavatel['d_city'] = "Praha 4 - Nusle"; // Město
$dodavatel['d_zip'] = "140 00"; // PSČ
$dodavatel['d_state'] = "Česká republika"; // Stát
$dodavatel['d_ico'] = "60991234"; // IČO
$dodavatel['d_dic'] = "CZ60991234"; // DIČ
$dodavatel['d_vatpayer'] = "1"; // Plátce DPH. Pokud je dodavatel plátce DPH ponechte hodnotu 1, 
// pokud není plátce DPH, napište 0.
$dodavatel['d_viewpayer'] = "1"; // Pokud chcete zobrazit informaci na faktuře,
// že dodavatel je plátcem/neplátcem DPH.
$dodavatel['d_info'] = "Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B";
//Info o dodavateli
$dodavatel['d_bankaccount'] = "12345678/0100"; // Číslo účtu
$dodavatel['d_bank'] = "Komerční banka"; // Název banky
$dodavatel['d_iban'] = "CZ620100000000012345678"; // IBAN
$dodavatel['d_swift'] = "KOMBCZPP"; // SWIFT
$dodavatel['d_email'] = "info@example.com"; // E-mail
$dodavatel['d_web'] = "www.example.com"; // WEB
$dodavatel['d_phone'] = "+420 601 111 111"; // Telefon

// Přidání dodavatele k datům:
$data['d'] = $dodavatel;


// Příprava dat odběratele
$odberatel = array();
$odberatel['o_name'] = "Petr Novák"; // Název odběratele
$odberatel['o_street'] = "Pod kaštany 2299/10"; // Ulice
$odberatel['o_city'] = "Brno - Žabovřesky"; // Město
$odberatel['o_zip'] = "616 00"; // PSČ
$odberatel['o_state'] = ""; // Stát
$odberatel['o_ico'] = ""; // IČO
$odberatel['o_dic'] = ""; // DIČ
$odberatel['o_email'] = "client@example.com"; // Email odběratele

// Přidání odběratele k datům:
$data['o'] = $odberatel;


// Příprava fakturačních údajů
$faktura = array();

// Číslo faktury můžeme zadat ručně:
$faktura['f_number'] = "2017099";
// Pokud chceme vypočítat číslo automaticky, toto pole nevyplníme
$faktura['f_vs'] = "2017099"; // Variabilní symbol
$faktura['f_ks'] = "308"; // Konstantní symbol
$faktura['f_date_issue'] = '2017-12-14'; // Datum vystavení ve formátu RRRR-MM-DD
$faktura['f_date_delivery'] = '2017-12-14'; // Datum dodaní ve formátu RRRR-MM-DD
$faktura['f_date_due'] = '2017-12-28'; // Datum splatnosti ve formátu RRRR-MM-DD
$faktura['f_issued_by'] = "Ing. Zbyněk Tuček";  // Fakturu vystavil
$faktura['f_payment'] = "prevod";   // Druh plaby. Na výběr jsou "prevod", "poukazka",
// "hotovost", "dobirka", "registracna_pokladna", "jina",
// "eprovider"
$faktura['f_logo'] = "0";   // Zobrazit logo dodavatele. Pouze v případě, že byl 
// dodavatel vybrán pomocí ID a má přiřazeno logo.
$faktura['f_stamp'] = "1";  // Zobrazit razítko dodavatele. Pouze v případě, 
// že byl dodavatel vybrán pomocí ID a má přiřazeno razítko
$faktura['f_currency'] = "Kč";  // Měna faktury
$faktura['f_proforma'] = "0";  // Zálohová faktura. Pokud je zálohová, pak hodnota 1
$faktura['f_paid'] = "";  // Již uhrazeno (suma)
$faktura['f_rounding'] = "0";  // Zaokrouhlení - žádné
$faktura['f_style'] = "standard";  // Styl faktury. Možnosti jsou standard nebo classic
$faktura['f_language'] = "CZ";   // Jazyk faktury: CZ, SK, EN, DE, ES, IT, FR, HU, PL, NO, RU
$faktura['f_qr'] = "0";   // Nezobrazit QR kód na faktuře
$faktura['f_order'] = "OBJ-2017-514";  //Číslo objednávky

// Přidání fakturačních údajů k datům:
$data['f'] = $faktura;


// Příprava fakturačních položek
$polozky = array();
// první položka:
$polozka = array();
$polozka['p_text'] = "Malířské práce"; // Název služby nebo zboží
$polozka['p_quantity'] = "3"; // Množství
$polozka['p_unit'] = "hod"; // Měrná jednotka
$polozka['p_price'] = "200"; // Cena za jednu jednotku bez DPH
$polozka['p_vat'] = "21"; // Daň v %
$polozka['p_pricevat'] = "242"; // Cena za jednu jednotku včetně DPH
// přiřazení k položkám:
$polozky[] = $polozka;
// druhá položka:
$polozka = array();
$polozka['p_text'] = "Natěračské a lakýrnické práce"; // Název služby nebo zboží
$polozka['p_quantity'] = "2"; // Množství
$polozka['p_unit'] = "hod"; // Měrná jednotka
$polozka['p_price'] = "350"; // Cena za jednu jednotku bez DPH
$polozka['p_vat'] = "21"; // Daň v %
$polozka['p_pricevat'] = "423,50"; // Cena za jednu jednotku včetně DPH
// přiřazení k položkám:
$polozky[] = $polozka;
// přiřazení fakturačních položek k datům:
$data['p'] = $polozky;

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/nf?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$output = curl_exec($ch);

// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Uloženo, nová faktura má kód: " . $result['code'] . "<br />";
    echo "Číslo faktury: " . $result['number'] . " <br />";
    echo "Faktura vytvořená: " . $result['created'] . " <br />";
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}

Odpověď:
Array
(
    [status] => 1
    [code] => 1a35b89cd48eaf8940a6409ff45a0cc5
    [number] => FA2019015
    [created] => 2019-02-15 17:45:12
)

Zobrazení faktury

Před tímto voláním je potřebné inicializovat session (viz výše). Volání API pro zobrazení faktury:
https://www.fakturyweb.cz/api/zf?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
code povinný parametr Kód faktury (získaný z odpovědi API při vytvoření faktury)
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
202 Chyba Parametr data nebyl odeslán metodou GET.
203 Chyba API klíč není zadaný nebo není platný počet řetězců.
204 Chyba API klíč není zadaný správně.
205 Chyba Parametr email není zadaný.
206 Chyba Není vytvořené sedění
207 Chyba Vytvořené sedění není správne
208 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
209 Chyba Uživatel neexistuje.
210 Chyba Není zadaný kód faktury.
211 Chyba Kód faktury není zadaný správně.
212 Chyba Chyba při výběru faktury.
213 Chyba Chyba při zobrazení šablony faktury.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}

// Kód faktury:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/zf?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);
$result = json_decode($output, true);
$url = $result['url'];
$cislo = $result['number'];


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}

// pro zobrazení faktury:
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . $cislo . '.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);


/*
// pro download faktury:
header('Content-Type: application/download');
header('Content-Disposition: inline; filename="'.$cislo.'.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/

Odpověď:
Array
(
    [status] => 1
    [url] => http://www.fakturyweb.cz/faktury/detail-soubor?f=26915945a67c8b7ba74dac59c5badfbf
    [number] => FA2019015
)

Úhrada faktury

Před tímto voláním je potřebné inicializovat session (viz výše). Volání API pro zobrazení faktury:
https://www.fakturyweb.cz/api/uf?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
code povinný parametr Kód faktury (získaný z odpovědi API vytvoření faktury)
date nepovinný parametr Datum úhrady faktury
Předvolená hodnota: 'Aktuální datum'
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
    [date] => 2019-02-15
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
302 Chyba Parametr data nebyl odeslán metodou GET.
303 Chyba API klíč není zadaný nebo není platný počet řetězců.
304 Chyba API klíč není zadaný správně.
305 Chyba Parametr email není zadaný.
306 Chyba Není vytvořené sedění
307 Chyba Vytvořené sedění není správne
308 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
309 Chyba Uživatel neexistuje.
310 Chyba Není zadaný kód faktury.
311 Chyba Kód faktury není zadaný správně.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}

// Kod faktury:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";
// Datum úhrady
$data['date'] = "2017-06-01"; // případně žádný záznam pro nastavení dnešního dne úhrady

// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/uf?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);
$result = json_decode($output, true);


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Faktura byla uhrazena";
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}


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

Status a detail faktury

Před tímto voláním je třeba inicializovat session (viz výše). Volání API pro zobrazení statusu a detailu faktury:
https://www.fakturyweb.cz/api/status?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
code povinný parametr Kód faktury (získaný z odpovědi API vytvoření faktury)
Základní parametry::
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [code] => 26915945a67c8b7ba74dac59c5badfbf
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
402 Chyba Parametr data nebyl odeslán metodou GET.
403 Chyba API klíč není zadaný nebo není platný počet řetězců.
404 Chyba API klíč není zadaný správně.
405 Chyba Parametr email není zadaný.
406 Chyba Není vytvořené sedění
407 Chyba Vytvořené sedění není správne
408 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
409 Chyba Uživatel neexistuje.
410 Chyba Není zadaný kód faktury.
411 Chyba Kód faktury není zadaný správně.
412 Chyba Chyba při výběru faktury
413 Chyba Chyba při zobrazení šablony faktury
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}


// Kód faktury:
$data['code'] = "14915945a66c8b7be74dac59c5badfbf";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/status?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Dodavatel: {$result['supplier']} \n";
    echo "Dodavatel IČO: {$result['supplier_ico']} \n";
    echo "Odběratel / Zákazník: {$result['customer']} \n";
    echo "Odběratel / Zákazník IČO: {$result['customer_ico']} \n";
    // Možnosti: faktura, zalohova_faktura, dobropis, danovy_doklad
    echo "Typ faktury: {$result['invoice_type']} \n";
    echo "Číslo faktury: {$result['invoice_number']} \n";
    echo "Částka bez DPH: {$result['invoice_amount']} \n";
    if (isset($result['invoice_amount_vat'])){
        echo "Částka s DPH: {$result['invoice_amount_vat']} \n";
    }
    echo "Měna: {$result['invoice_currency']} \n";
    echo "Datum vystavení: {$result['invoice_date_issue']} \n";
    echo "Datum dodání: {$result['invoice_date_delivery']} \n";
    echo "Datum splatnosti: {$result['invoice_date_due']} \n";
    // Možnosti: ano, ne, castecne
    echo "Faktura uhrazena: {$result['invoice_paid']} \n";
    if ($result['invoice_paid'] != 'ne'){
        echo "Uhrazena částka: {$result['invoice_paid_amount']} \n";
        echo "Datum úhrady: {$result['invoice_date_payment']} \n";
    }
    echo "Vlastní data z API: {$result['invoice_api_custom']} \n";
    if (isset($result['invoice_tags']) && is_array($result['invoice_tags'])){
        echo "Tagy faktury: ";
        echo implode(", ",$result['invoice_tags']);
    }
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}



Odpověď:
Array
(
    [status] => 1
    [supplier] => Moje společnost, s.r.o.
    [supplier_street] => Táborská 231/10
    [supplier_city] => Praha 4 - Nusle
    [supplier_zip] => 140 00
    [supplier_state] => Česká republika
    [supplier_ico] => 60991234
    [supplier_dic] => CZ60991234
    [supplier_info] => Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B, vložka 12345
    [supplier_bankaccount] => 12345678/0100
    [supplier_bank] => Komerční banka
    [supplier_iban] => CZ620100000000012345678
    [supplier_swift] => KOMBCZPP
    [supplier_email] => me@example.com
    [supplier_phone] => +420 601 111 111
    [supplier_web] => 
    [supplier_custom_key_1] => 
    [supplier_custom_value_1] => 
    [supplier_custom_key_2] => 
    [supplier_custom_value_2] => 
    [customer] =>  Petr Novák
    [customer_street] => Pod kaštany 2299/10
    [customer_city] => Brno - Žabovřesky
    [customer_zip] => 616 00
    [customer_state] => 
    [customer_ico] => 
    [customer_dic] => 
    [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] => 
    [customer_custom_value_1] => 
    [customer_custom_key_2] => 
    [customer_custom_value_2] => 
    [invoice_type] => faktura
    [invoice_number] => 2022099
    [invoice_vs] => 2022099
    [invoice_ks] => 
    [invoice_payment_type] => prevod
    [invoice_currency] => Kč
    [invoice_date_issue] => 2022-04-27
    [invoice_date_delivery] => 2022-04-27
    [invoice_date_due] => 2022-05-04
    [invoice_order] => 
    [invoice_issued_by] => Martin Hrubý
    [invoice_note] => Poznámka pod položkami
    [invoice_note_above] => Poznámka nad položkami
    [invoice_amount] => 5336.19
    [invoice_amount_vat] => 6456.79
    [invoice_vat_reverse_c] => ne
    [invoice_paid_advanced] => 500
    [invoice_total_discount_perc] => 10
    [invoice_to_pay] => 5956.79
    [invoice_paid] => ne
    [invoice_api_custom] => 
    [invoice_language] => cz
    [items] => Array
        (
            [0] => Array
                (
                    [item_name] => Diamantový kotouč na obklady 
                    [item_unit] => ks
                    [item_quantity] => 8
                    [item_unit_price] => 518
                    [item_unit_price_total] => 626.78
                    [item_vat_rate] => 21
                    [item_vat_total] => 870.24
                    [item_unit_price_vat] => 626.78
                    [item_unit_price_totla_vat] => 5014.24
                    [item_api_custom] => 
                )

            [1] => Array
                (
                    [item_name] => Sada nylonových drátěných kartáčů
                    [item_unit] => ks
                    [item_quantity] => 10
                    [item_unit_price] => 178.51
                    [item_unit_price_total] => 216
                    [item_vat_rate] => 21
                    [item_vat_total] => 374.88
                    [item_unit_price_vat] => 216
                    [item_unit_price_totla_vat] => 2160
                    [item_api_custom] => 
                )

        )

    [invoice_tags] => Array
        (
            [0] => Tag 1
            [1] => Tag 2
        )

)

Seznam faktur

Před tímto voláním je třeba inicializovat session (viz výše). Následující URL vrátí seznamy faktur.
Všechny faktury vytvořené v období:
https://www.fakturyweb.cz/api/list/created?data={JSON}
Všechny faktury s datem vystavení v období :
https://www.fakturyweb.cz/api/list/issued?data={JSON}
Všechny faktury s datem dodání v období:
https://www.fakturyweb.cz/api/list/delivered?data={JSON}
Všechny faktury s datem úhrady v období:
https://www.fakturyweb.cz/api/list/paid?data={JSON}
Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
from nepovinný parametr Datum hledání 'Od'
Formát: YYYY-MM-DD
to nepovinný parametr Datum hledání 'Do'
Formát: YYYY-MM-DD
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [from] => 2021-01-01
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
502 Chyba Parametr data nebyl odeslán metodou GET.
503 Chyba API klíč není zadaný nebo není platný počet řetězců.
504 Chyba API klíč není zadaný správně.
505 Chyba Parametr email není zadaný.
506 Chyba Není vytvořené sedění
507 Chyba Vytvořené sedění není správne
508 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
509 Chyba Uživatel neexistuje.
510 Chyba Chybná URL.
511 Chyba Datum 'Od' je zadán nesprávně.
512 Chyba Datum 'Do' je zadán nesprávně.
513 Chyba Nepodařilo se identifikovat příslušný seznam, zřejmě chyba v URL.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = array();

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}


// Data v kalendářním roce 2021
$data['from'] = '2021-01-01';
$data['to'] = '2021-12-31';
// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/list/paid?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    $faktury = $result['invoices'];
    foreach ($faktury as $faktura) {
        echo "Kód: {$faktura['code']} \n";
        echo "Dodavatel: {$faktura['supplier']} \n";
        echo "Dodavatel IČO: {$faktura['supplier_ico']} \n";
        echo "Odběratel  / Zákazník: {$faktura['customer']} \n";
        echo "Odběratel / Zákazník IČO: {$faktura['customer_ico']} \n";
        // Možnosti: faktura, zalohova_faktura, dobropis, danovy_doklad
        echo "Typ faktury: {$faktura['invoice_type']} \n";
        echo "Číslo faktury: {$faktura['invoice_number']} \n";
        echo "Částka bez DPH: {$faktura['invoice_amount']} \n";
        if (isset($faktura['invoice_amount_vat'])) {
            echo "Částka s DPH: {$faktura['invoice_amount_vat']} \n";
        }
        echo "Měna : {$faktura['invoice_currency']} \n";
        echo "Datum vystavení: {$faktura['invoice_date_issue']} \n";
        echo "Datum dodání: {$faktura['invoice_date_delivery']} \n";
        echo "Dátum splatnosti: {$faktura['invoice_date_due']} \n";
        // Možnosti: ano, ne, castecne
        echo "Faktura uhrazena: {$faktura['invoice_paid']} \n";
        if ($faktura['invoice_paid'] != 'ne') {
            echo "Uhrazena částka: {$faktura['invoice_paid_amount']} \n";
            echo "Datum úhrady: {$faktura['invoice_date_payment']} \n";
        }
        echo "Vlastní data z API: {$faktura['invoice_api_custom']} \n";
        echo "Tagy: {$faktura['tags']} \n";
    }
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}



Odpověď:
Array
(
    [status] => 1
    [invoices] => Array
        (
            [0] => Array
                (
                    [code] => 1a35b89cd48eaf8940a6409ff45a0cc5
                    [supplier] => Moje společnost, s.r.o.
                    [supplier_ico] => 60991234
                    [customer] => Petr Novák
                    [customer_ico] => 
                    [invoice_type] => faktura
                    [invoice_number] => 20210400
                    [invoice_amount] => 2000
                    [invoice_amount_vat] => 2420
                    [invoice_currency] => CZK
                    [invoice_date_issue] => 2021-01-10
                    [invoice_date_delivery] => 2021-01-10
                    [invoice_date_due] => 2021-01-25
                    [invoice_paid] => ano
                    [invoice_paid_amount] => 2420
                    [invoice_date_payment] => 2021-01-19
                    [invoice_api_custom] => data z API
                    [tags] => Tag1 ,Tag2
                )

        )

)

Vytvoření nové cenové nabídky

Volání API pro vytvoření nové cenové nabídky:
https://www.fakturyweb.cz/api/ncn?data={JSON}
Následující tabulka uvádí seznam parametrů, pomocí kterých můžete vytvořit novou cenovou nabídku.

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
apitest nepovinný parametr Parameter apitest určuje, zda vytvořená nabídka slouží pro testovací účely. Tento parametr by měli použít pouze vývojáři, kteří implementují Faktury web API. Systém bude brát vytvořenou cenovou nabídku jako testovací a v rozmezí 5 – 10 minut ji odstraní. Doporučujeme mít tuto hodnotu zapnutou při testovaní implementace API. V produkčním prostředí tuto hodnotu vypněte, jinak se nabídky odstraní automaticky.
Možné hodnoty: 1 nebo 0
Předvolená hodnota: 0
Parametry dodavatele:
Dodavatele můžeme vybrat buď pomocí parametru d_id, ID dodavatele máme uloženo v seznamu Moje společnosti (možnost 1) nebo všechny potřebné údaje vyplníme v parametrech (možnost 2).
Parametr Atribut Popis
d_id možnost 1 / povinný parametr ID dodavatele (ID najdete v seznamu Moje společnosti).
d_name možnost 2 / povinný parametr Obchodní název dodavatele.
d_street možnost 2 / nepovinný parametr Ulice dodavatele.
d_city možnost 2 / nepovinný parametr Město dodavatele.
d_state možnosť 2 / nepovinný parametr Stát dodavatele.
d_zip možnost 2 / nepovinný parametr PSČ dodavatele.
d_ico možnost 2 / nepovinný parametr IČO dodávatele.
d_dic možnost 2 / nepovinný parametr DIČ dodavatele.
d_vatpayer možnost 2 / nepovinný parametr Plátce DPH.
Možné hodnoty:
Plátce DPH: 1
Neplátce DPH: 0
Předvolená hodnota: 0
d_viewpayer možnost 2 / nepovinný parametr Zobrazit na faktuře informaci, zda je/není dodavatel plátcem DPH.
Možné hodnoty:
Ano: 1
Ne: 0
Předvolená hodnota: 1
d_info možnost 2 / nepovinný parametr Info o dodavateli.
d_bankaccount možnost 2 / nepovinný parametr Číslo účtu dodavatele.
d_bank možnost 2 / nepovinný parametr Název banky dodavatele.
d_iban možnost 2 / nepovinný parametr IBAN dodavatele.
d_swift možnost 2 / nepovinný parametr SWIFT dodavatele.
d_email možnost 2 / nepovinný parametr Email dodávatele.
d_web možnost 2 / nepovinný parametr Web dodavatele.
d_phone možnost 2 / nepovinný parametr Telefon dodavatele.
d_custom_key_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - klíč
d_custom_value_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - hodnota
d_custom_key_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - klíč
d_custom_value_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - hodnota
Parametry odberatele:
Parametr Atribut Popis
o_name povinný parametr Obchodní název odběratele.
o_street nepovinný parametr Ulice odběratele.
o_city nepovinný parametr Město odběratele.
o_state nepovinný parametr Stát odběratele.
o_zip nepovinný parametr PSČ odběratele.
o_ico nepovinný parametr IČO odběratele.
o_dic nepovinný parametr DIČ odběratele.
o_email nepovinný parametr Email odběratele.
o_name_d nepovinný parametr Adresa dodání - Obchodní název.
o_street_d nepovinný parametr Adresa dodání - Ulice.
o_city_d nepovinný parametr Adresa dodání - Město.
o_state_d nepovinný parametr Adresa dodání - Stát.
o_zip_d nepovinný parametr Adresa dodání - PSČ.
o_custom_key_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - klíč
o_custom_value_1 možnost 2 / nepovinný parametr Vlastní pole č.1 - hodnota
o_custom_key_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - klíč
o_custom_value_2 možnost 2 / nepovinný parametr Vlastní pole č.2 - hodnota
Parametry cenové nabídky:
Parametr Atribut Popis
po_number nepovinný parametr Číslo cenové nabídky. Pokud není vyplněno, číslo se automaticky zvýší o 1 z posledně vytvořené nabídky (rozhodující je datum vystavení, číslo cenové nabídky musí mít numerický formát).
po_date_issue nepovinný parametr Datum vystavení. Ve formátu RRRR-MM-DD.
Předvolená hodnota: Aktuálny dátum
po_date_expiration nepovinný parametr Datum platnosti cenové nabídky. Ve formátu RRRR-MM-DD.
po_issued_by nepovinný parametr Cenovou nabídku vystavil.
po_note_above nepovinný parametr >Poznámka v cenové nabídce. Zobrazení poznámky nad položkami.
po_note nepovinný parametr Poznámka v cenové nabídce. Zobrazení poznámky pod položkami. V případě, že je dodavatel vybrán pomocí parametru d_id a po_note je prázdné, zobrazí se příslušná uložená poznámka k tomuto dodavateli.
po_logo nepovinný parametr Zobrazení loga. Možné hodnoty:
Nezobrazí se: 0
Zobrazí se: 1 (pouze v případě, že dodávatel byl načtený pomocí d_id a logo má uloženo)
po_stamp nepovinný parametr Zobrazení razítka. Možné hodnoty:
Nezobrazí se: 0
Zobrazí se: 1 (pouze v případě, že dodávatel byl načtený pomocí d_id a razítko má uloženo)
po_currency nepovinný parametr Měna v nabídce. Označení měny. Předvolená hodnota je Kč.
Předvolená hodnota: Kč
po_language nepovinný parametr Jazyk cenové nabídky. Možné hodnoty:
CZ, SK, EN, DE, ES, FR, IT, PL, HU, RU, NO, DK
Předvolená hodnota: CZ
po_custom nepovinný parametr Libovolná textová informace zaslána přes API. Zobrazí se jako samostatný sloupec v excelovské exportu.
text, max. 50 znaků
Parametry položek cenové nabídky:
Parameter Atribút Popis
p_text povinný parametr Text fakturační položky.
p_quantity povinný parametr Množství. Číslo.
p_unit povinný parametr Měrná jednotka. Například kg, ks,...
p_price povinný parametr Částka za jednu měrnou jednotku bez daně.
p_vat nepovinný parametr Daň v procentech. Vyplní se pouze, když je dodavatel plátce DPH.
p_pricevat nepovinný parametr Částka za jednu měrnou jednotku včetně daně. Vyplní se pouze, když je dodavatel plátce DPH.
p_custom nepovinný parametr Libovolná textová informace zaslána přes API pro položku cenové nabídky. Zobrazí se jako samostatný sloupec v excelovské exportu.
text, max. 50 znaků
Formát dat před odesláním:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [apitest] => 1
    [d] => Array
        (
            [d_name] => Moje společnost, s.r.o.
            [d_street] => Táborská 231/10
            [d_city] => Praha 4 - Nusle
            [d_zip] => 140 00
            [d_state] => Česká republika
            [d_ico] => 60991234
            [d_dic] => CZ60991234
            [d_vatpayer] => 1
            [d_viewpayer] => 0
            [d_info] => Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B, vložka 12345 
            [d_bankaccount] => 12345678/0100
            [d_bank] => Komerční banka
            [d_iban] => CZ620100000000012345678
            [d_swift] => KOMBCZPP
            [d_email] => info@example.com
            [d_web] => www.example.com
            [d_phone] => +420 601 111 111
        )

    [o] => Array
        (
            [o_name] => Petr Novák
            [o_street] => Pod kaštany 2299/10
            [o_city] => Brno - Žabovřesky
            [o_zip] => 616 00
            [o_state] => 
            [o_ico] => 
            [o_dic] => 
            [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ávazná cenová nabídka platná 15 dní
            [po_currency] => Kč
            [po_language] => CZ
        )

    [p] => Array
        (
            [0] => Array
                (
                    [p_text] => Diamantový kotouč na obklady
                    [p_quantity] => 8
                    [p_unit] => ks
                    [p_price] => 518
                    [p_vat] => 21
                    [p_pricevat] => 626.78
                )

            [1] => Array
                (
                    [p_text] => Sada nylonových drátěných kartáčů
                    [p_quantity] => 10
                    [p_unit] => ks
                    [p_price] => 178.51
                    [p_vat] => 21
                    [p_pricevat] => 216
                )

        )

)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku, cenová nabídka byla vytvořena
602 Chyba Parametr data nebyl odeslán metodou GET.
603 Chyba API klíč není zadaný nebo není platný počet znaků.
604 Chyba API klič není zadaný správně.
605 Chyba Parametr email není zadaný.
606 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
607 Chyba Uživatel neexistuje.
608 Chyba Potřebné zadat ID dodavatele nebo jeho název.
609 Chyba Vložené ID dodavatele není správné.
610 Chyba Není zadané jméno dodavatele.
611 Chyba Není zadané jméno odběratele.
612 Chyba Chybí údaje cenové nabídky.
613 Chyba Chybí položky nabídky nebo nejsou zadány správně.
614 Chyba Chyba v položce, chybí povinný údaj.
615 Chyba Množství v položce cenové nabídky není číslo.
616 Chyba Částka bez daně v položce není číslo.
617 Chyba Daň v procentech není zadána správně.
618 Chyba V položce není vložena částka bez daně nebo částka včetně daně.
619 Chyba Nepovolený jazyk v cenové nabídce.
620 Chyba V položce není vložena částka bez daně, přičemž dodavatel není plátcem DPH.
621 Chyba Částka včetně daně v položce není číslo.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = [];

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// V případě, že budeme testovat API, zvolíme hodnotu 1
// Znamená to, že všechny vytvořené cenové nabídky se automaticky smažou o 5 - 10 minut
$data['apitest'] = 1; //hodnota může být 1 nebo 0


// Příprava dat dodavatele
$dodavatel = [];

// Dodavatele můžeme použít již existujícího (uloženého v seznamu Moje společnosti)
// nebo dodavatele vytvoříme ručně vložením dat.
// Pokud použijeme stávajícího dodavatele, vložíme pouze jeho ID:
// $dodavatel['d_id'] = 123; // ID dodavatele najdeme v seznamu Moje společnosti

//nebo (ne obě) :
$dodavatel['d_name'] = "Moje společnost, s.r.o."; // Obchodní jméno dodavatele
$dodavatel['d_street'] = "Táborská 231/10"; // Ulice
$dodavatel['d_city'] = "Praha 4 - Nusle"; // Město
$dodavatel['d_zip'] = "140 00"; // PSČ
$dodavatel['d_state'] = "Česká republika"; // Stát
$dodavatel['d_ico'] = "60991234"; // IČO
$dodavatel['d_dic'] = "CZ60991234"; // DIČ
$dodavatel['d_vatpayer'] = "1"; // Plátce DPH. Pokud je dodavatel plátce DPH ponechte hodnotu 1,
// pokud není plátce DPH, napište 0.
$dodavatel['d_viewpayer'] = "1"; // Pokud chcete zobrazit informaci v nabídce,
// že dodavatel je plátcem/neplátcem DPH.
$dodavatel['d_info'] = "Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B";
//Info o dodavateli
$dodavatel['d_bankaccount'] = "12345678/0100"; // Číslo účtu
$dodavatel['d_bank'] = "Komerční banka"; // Název banky
$dodavatel['d_iban'] = "CZ620100000000012345678"; // IBAN
$dodavatel['d_swift'] = "KOMBCZPP"; // SWIFT
$dodavatel['d_email'] = "info@example.com"; // E-mail
$dodavatel['d_web'] = "www.example.com"; // WEB
$dodavatel['d_phone'] = "+420 601 111 111"; // Telefon

// Přidání dodavatele k datům:
$data['d'] = $dodavatel;


// Příprava dat odběratele
$odberatel = [];
$odberatel['o_name'] = "Petr Novák"; // Název odběratele
$odberatel['o_street'] = "Pod kaštany 2299/10"; // Ulice
$odberatel['o_city'] = "Brno - Žabovřesky"; // Město
$odberatel['o_zip'] = "616 00"; // PSČ
$odberatel['o_state'] = ""; // Stát
$odberatel['o_ico'] = ""; // IČO
$odberatel['o_dic'] = ""; // DIČ
$odberatel['o_email'] = "client@example.com"; // Email odběratele

// Přidání odběratele k datům:
$data['o'] = $odberatel;


// Příprava údajů cenové nabídky 
$cenovaNabidka = [];

// Číslo cenové nabídky můžeme zadat ručně :
$cenovaNabidka['po_number'] = "2022099";
// Pokud chceme vypočítat číslo automaticky, toto pole nevyplníme
$cenovaNabidka['po_date_issue'] = '2022-01-01'; // Datum vystavení ve formátu RRRR-MM-DD
$cenovaNabidka['po_date_expiration'] = '2022-01-15'; // Datum platnosti ve formátu RRRR-MM-DD
$cenovaNabidka['po_issued_by'] = "Martin Hrubý";  // Nabídku vystavil
$cenovaNabidka['po_logo'] = "1";   // Zobrazit logo dodavatele. Pouze v případě, že byl
// dodavatel vybrán pomocí ID a má přiřazeno logo.
$cenovaNabidka['po_stamp'] = "1";  // Zobrazit razítko dodavatele. Pouze v případě, že byl
// dodavatel vybran pomocí ID a má přiřazeno razítko
$cenovaNabidka['po_currency'] = "Kč";  // Měna cenové nabídky
$cenovaNabidka['po_language'] = "EN";   // Jazyk cenové nabídky

// Přidání údajů nabídky k datům:
$data['po'] = $cenovaNabidka;


// Příprava položek nabídky
$polozky = [];
// první položka:
$polozka = [];
$polozka['p_text'] = "Diamantový kotouč na obklady "; // Název služby nebo zboží
$polozka['p_quantity'] = "8"; // Množství
$polozka['p_unit'] = "ks"; // Měrná jednotka
$polozka['p_price'] = "518"; // Částka za jednu jednotku bez DPH
$polozka['p_vat'] = "21"; // Daň v %
// přiřazení k položkám:
$polozky[] = $polozka;

// druhá položka:
$polozka = array();
$polozka['p_text'] = "Sada nylonových drátěných kartáčů"; // Název služby nebo zboží
$polozka['p_quantity'] = "10"; // Množství
$polozka['p_unit'] = "ks"; // Měrná jednotka
$polozka['p_vat'] = "21"; // Daň v %
$polozka['p_pricevat'] = "216"; // Částka za jednu jednotku včetně DPH (Částka bez DPH se vypočítá)
// přiřazení k položkám:
$polozky[] = $polozka;

// přiřazení položek k datům:
$data['p'] = $polozky;


// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/ncn?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Uloženo, nová cenová má kód: " . $result['code'] . " <br />";
    echo "Číslo cenové nabídky: " . $result['number'] . " <br />";
    echo "Cenová nabídka vytvořená: " . $result['created'] . " <br />";
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}

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

Zobrazení cenové nabídky

Před tímto voláním je potřebné inicializovat session (viz výše). Volání API pro zobrazení cenové nabídky:
https://www.fakturyweb.cz/api/zcn?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
code povinný parametr Kód cenové nabídky (získaný z odpovědi API při vytvoření nabídky)
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [code] => aa9025bc0094c88445daa22b90eff3b
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
702 Chyba Parametr data nebyl odeslán metodou GET.
703 Chyba API klíč není zadaný nebo není platný počet řetězců.
704 Chyba API klíč není zadaný správně.
705 Chyba Parametr email není zadaný.
706 Chyba Není vytvořené sedění (session)
707 Chyba Vytvořené sedění není správne
708 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
709 Chyba Uživatel neexistuje.
710 Chyba Není zadaný kód cenové nabídky.
711 Chyba Kód cenové nabídky není zadaný správně.
712 Chyba Chyba při výběru cennové nabídky.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = [];

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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);
$result = json_decode($output, true);

// Výsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}

// Kód cenovej nabídky:
$data['code'] = "aa9025bc0094c88445daa22b90eff3b";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/zcn?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);
$result = json_decode($output, true);
$url = $result['url'];
$cislo = $result['number'];


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}

// pro zobrazení cenové nabídky:
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . $cislo . '.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);



/*
// pro download cenové nabídky:
header('Content-Type: application/download');
header('Content-Disposition: inline; filename="'.$cislo.'.pdf"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/

Odpověď:
Array
(
    [status] => 1
    [url] => https://www.fakturyweb.cz/cenove-nabidky/detail-soubor?cp=26915945a67c8b7ba74dac59c5badfbf
    [number] => 2022099
)

Status a detail cenové nabídky

Před tímto voláním je potřebné inicializovat session (viz výše). Volání API pro zobrazení statusu a detailu cenové nabídky:
https://www.fakturyweb.cz/api/cn-status?data={JSON}

Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
code povinný parametr Kód cenové nabídky (získaný z odpovědi API při vytvoření nabídky)
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [code] => ae47ece062b0021144d768446b071fee
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
802 Chyba Parametr data nebyl odeslán metodou GET.
803 Chyba API klíč není zadaný nebo není platný počet znaků.
804 Chyba API klič není zadaný správně.
805 Chyba Parametr email není zadaný.
806 Chyba Není vytvořené sedění.
807 Chyba Vytvořené sedění není správne.
808 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
809 Chyba Uživatel neexistuje.
810 Chyba Není zadaný kód cenové nabídky.
811 Chyba Kód cenové nabídky není zadaný správně.
812 Chyba Chyba při výběru cenové nabídky.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = [];

// Váš API klíč:
$data['key'] = "vJyMc*4@2754*wGhofIWi!QDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla sa chyba č. " . $result['status']);
}

// Kód cenové nabídky:
$data['code'] = "ae47ece062b0021144d768446b071fee";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/cn-status?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);


// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    echo "Dodavatel: {$result['supplier']} \n";
    echo "Dodavatel IČO: {$result['supplier_ico']} \n";
    echo "Odběratel / Zákazník: {$result['customer']} \n";
    echo "Odběratel / Zákazník IČO: {$result['customer_ico']} \n";
    echo "Číslo cenové nabídky: {$result['offer_number']} \n";
    echo "Částka bez DPH: {$result['offer_amount']} \n";
    if (isset($result['offer_amount_vat'])){
        echo "Částka s DPH: {$result['offer_amount_vat']} \n";
    }
    echo "Měna: {$result['offer_currency']} \n";
    echo "Datum vystavení: {$result['offer_date_issue']} \n";
    echo "Datum platnosti: {$result['offer_date_expiration']} \n";
    echo "Vlastní data z API: {$result['offer_api_custom']} \n";
    if (isset($result['offer_tags']) && is_array($result['offer_tags'])){
        echo "Tagy cenové nabídky: ";
        echo implode(", ",$result['offer_tags']);
    }
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}



Odpověď:
Array
(
    [status] => 1
    [supplier] => Moje společnost, s.r.o.
    [supplier_street] => Táborská 231/10
    [supplier_city] => Praha 4 - Nusle
    [supplier_zip] => 140 00
    [supplier_state] => Česká republika
    [supplier_ico] => 60991234
    [supplier_dic] => CZ60991234
    [supplier_info] => Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B, vložka 12345
    [supplier_bankaccount] => 12345678/0100
    [supplier_bank] => Komerční banka
    [supplier_iban] => CZ620100000000012345678
    [supplier_swift] => KOMBCZPP
    [supplier_email] => me@example.com
    [supplier_phone] => +420 601 111 111
    [supplier_web] => 
    [supplier_custom_key_1] => 
    [supplier_custom_value_1] => 
    [supplier_custom_key_2] => 
    [supplier_custom_value_2] => 
    [customer] =>  Petr Novák
    [customer_street] => Pod kaštany 2299/10
    [customer_city] => Brno - Žabovřesky
    [customer_zip] => 616 00
    [customer_state] => 
    [customer_ico] => 
    [customer_dic] => 
    [customer_email] => client@example.com
    [customer_info] => 
    [customer_custom_key_1] => ID klienta
    [customer_custom_value_1] => 654
    [customer_custom_key_2] => 
    [customer_custom_value_2] => 
    [offer_number] => 2022003
    [offer_amount] => 5336.19
    [offer_amount_vat] => 6456.79
    [offer_total_discount_perc] => 10
    [offer_currency] => Kč
    [offer_date_issue] => 2022-03-01
    [offer_date_expiration] => 
    [offer_note] => Poznámka pod položkami
    [offer_note_above] => Poznámka nad položkami
    [offer_api_custom] => Test custom
    [offer_language] => cz
    [items] => Array
        (
            [0] => Array
                (
                    [item_name] => Diamantový kotouč na obklady 
                    [item_unit] => ks
                    [item_quantity] => 8
                    [item_unit_price] => 518
                    [item_unit_price_total] => 626.78
                    [item_vat_rate] => 21
                    [item_vat_total] => 870.24
                    [item_unit_price_vat] => 626.78
                    [item_unit_price_totla_vat] => 5014.24
                    [item_api_custom] => 
                )

            [1] => Array
                (
                    [item_name] => Sada nylonových drátěných kartáčů
                    [item_unit] => ks
                    [item_quantity] => 10
                    [item_unit_price] => 178.51
                    [item_unit_price_total] => 216
                    [item_vat_rate] => 21
                    [item_vat_total] => 374.88
                    [item_unit_price_vat] => 216
                    [item_unit_price_totla_vat] => 2160
                    [item_api_custom] => 
                )

        )

    [offer_tags] => Array
        (
            [0] => Tag 1
            [1] => Tag 2
        )

)

Seznam cenových nabídek

Před tímto voláním je třeba inicializovat session (viz výše). Následující URL vrátí seznamy cenových nabídek.
Všechny cenové nabídky vytvořené v období: :
https://www.fakturyweb.cz/api/cn-list/created?data={JSON}
Všechny cenové nabídky s datem vystavení v období:
https://www.fakturyweb.cz/api/cn-list/issued?data={JSON}
Základní parametry:
Parametr Atribut Popis
key povinný parametr API klíč.
email povinný parametr Email (nebo uživatelské jméno), jakým se přihlašujete do Faktury webu.
from nepovinný parametr Datum hledání 'Od'
Formát: YYYY-MM-DD
to nepovinný parametr Datum hledání 'Do'
Formát: YYYY-MM-DD
Základní parametry:
Array
(
    [key] => vJyMc*4@2754*wGhofIWi!QDcEEQUdmj
    [email] => name@example.com
    [from] => 2022-01-01
    [to] => 2022-01-31
)


Seznam návratových kódů:
Status ID Význam Popis
1 OK Vše proběhlo v pořádku
902 Chyba Parametr data nebyl odeslán metodou GET.
903 Chyba API klíč není zadaný nebo není platný počet řetězců.
904 Chyba API klíč není zadaný správně.
905 Chyba Parametr email není zadaný.
906 Chyba Není vytvořené sedění
907 Chyba Vytvořené sedění není správne
908 Chyba Uživatelské jméno nebo API klíč nejsou uvedeny správně.
909 Chyba Uživatel neexistuje.
910 Chyba Chybná URL.
911 Chyba Datum 'Od' je zadán nesprávně.
912 Chyba Datum 'Do' je zadán nesprávně.
913 Chyba Nepodařilo se identifikovat příslušný seznam, zřejmě chyba v URL.
Ukázka zdrojového kódu:
<?php

// Příprava základních dat:
$data = [];

// Váš API klíč:
$data['key'] = "dJyMc*53@687*wGhofIWi!WDcEEQUdmj";

// Váš email (příp. uživatelské jméno):
$data['email'] = "name@example.com";

// Data se uloží do formátu JSON:
$data_json = json_encode($data);

// Inicializace sezení
$url = 'https://www.fakturyweb.cz/api/init?data=' . urlencode($data_json);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
    throw new Exception("Vyskytla se chyba č. " . $result['status']);
}


// Data v kalendářním roce 2022
$data['from'] = '2022-01-01';
$data['to'] = '2022-12-31';
// Data se uloží do formátu JSON:
$data_json = json_encode($data);


// Data se odešlou:
$url = 'https://www.fakturyweb.cz/api/cn-list/issued?data=' . urlencode($data_json);
curl_setopt($ch, CURLOPT_URL, $url);
$output = curl_exec($ch);



// Výsledek:
$result = json_decode($output, true);
if ($result['status'] == 1) {
    $cenovePonuky = $result['offers'];
    foreach ($cenovePonuky as $cenovaPonuka) {
        echo "Kód: {$cenovaPonuka['code']} \n";
        echo "Dodavatel: {$cenovaPonuka['supplier']} \n";
        echo "Dodavatel IČO: {$cenovaPonuka['supplier_ico']} \n";
        echo "Odběratel / Zákazník: {$cenovaPonuka['customer']} \n";
        echo "Odběratel / Zákazník IČO: {$cenovaPonuka['customer_ico']} \n";
        echo "Číslo cenové nabídky: {$cenovaPonuka['offer_number']} \n";
        echo "Částka bez DPH: {$cenovaPonuka['offer_amount']} \n";
        if (isset($cenovaPonuka['offer_amount_vat'])) {
            echo "Částka s DPH: {$cenovaPonuka['offer_amount_vat']} \n";
        }
        echo "Měna: {$cenovaPonuka['offer_currency']} \n";
        echo "Datum vystavení: {$cenovaPonuka['offer_date_issue']} \n";
        echo "Datum platnosti: {$cenovaPonuka['offer_date_expiration']} \n";
        echo "Vlastní data z API: {$cenovaPonuka['offer_api_custom']} \n";
        echo "Tagy cenové nabídky: {$cenovaPonuka['tags']} \n";
    }
} else {
    echo "Vyskytla se chyba č." . $result['status'];
}



Odpověď:
Array
(
    [status] => 1
    [offers] => Array
        (
            [0] => Array
                (
                    [code] => ae47ece062b0021144d768446b071fee
                    [supplier] => Moje společnost, s.r.o.
                    [supplier_ico] => 60991234
                    [customer] => Petr Novák
                    [customer_ico] => 40436097
                    [offer_number] => 20220123
                    [offer_amount] => 2000
                    [offer_amount_vat] => 2420
                    [offer_currency] => CZK
                    [offer_date_issue] => 2022-01-10
                    [offer_date_expiration] => 2022-01-25
                    [offer_api_custom] => data z API
                    [tags] => Tag1 ,Tag2
                )

        )

)

Tato stránka používá soubory cookies. Více informací se dozvíte v Podmínkách užívání.   OK, I understand