Faktúry web API - Manuál pro vývojáře

Faktury web API manuál

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

Vytvoření nové faktury

Inicializace sezení (session)

Zobrazení faktury

Úhrada faktury

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.

Vytvoření nové faktury

Volání API pro vytvoření nové faktury:
http://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/dokument slouží na testovací účely. Tento parametr by měl sloužit pouze vývojářům, 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í instalace API. V produkčním chodu 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, který máme uložený 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Č dodavateea.
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.
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Č.
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 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žené)
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žené)
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
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 pro položku faktury. 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 Cena 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 Cena 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 dát 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 dat nebyl odeslaný metodou GET.
3 Chyba API klíč není zadaný nebo není platný počet řetězců.
4 Chyba API klič není zadaný správně.
5 Chyba Parametr email není zadaný.
6 Chyba Uživatelské jméno nebo API klíč nejsou uvedené 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 Cena bez daně ve fakturační položce není číslo.
18 Chyba Daň v procentách není zadaná správně.
19 Chyba Cena započítané daně ve fakturační položce není číslo.
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
// a nebudou se započítávat ke skutečně vytvořeným fakturám.
$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

// alebo (nie obe):
$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'] = "0"; // Pokud nechcete zobrazit informaci na faktuře, že dodavatel není plátcem DPH.
// není plá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řazené 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_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, 1);
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
)

Inicializace sezení (session)

Inicialializace session je potřebná pro zobrazení faktury. Volaní API pro vytvoření inicializace session:
http://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 dat nebyl odeslaný 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 uvedené 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, 1);
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
)

Zobrazení faktury

Před tímto voláním je potřebné inicializovat session (viz výše). Volání API pro zobrazení faktury:
http://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 odpovedi 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
202 Chyba Parametr dat nebyl odeslaný 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 uvedené 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 výběru 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, 1);
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']);
}

// Fakturu chceme stáhnout
$data['download'] = "download";

// 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 odpovedi 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 dat nebyl odeslaný 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 uvedené 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, 1);
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 sa 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
)