Verze 2 nemění adresy endpointů, parametry ani návratové kódy. Mění jen způsob, jakým se data a API klíč posílají na server:
Důvodem je bezpečnost: obsah adresy URL se běžně zapisuje do logů serverů, proxy a hostingu, tělo požadavku a hlavičky ne. Původní způsob volání (metoda GET s parametrem data) zůstává funkční pro existující integrace a je popsán v manuálu verze 1. Pro nové integrace doporučujeme výhradně verzi 2. Obě verze lze kombinovat, server je rozlišuje automaticky při každém volání.
Každé volání API je požadavek metodou POST na adresu endpointu. Požadavek musí obsahovat:
Content-Type: application/json,Authorization: Bearer VAS_API_KLIC,Odpověď je vždy ve formátu JSON a obsahuje pole status (1 = v pořádku, jinak číslo chyby podle tabulky u daného endpointu). Volání po inicializaci sezení musí posílat cookie sezení, kterou server vrátil při volání /api/init.
curl -X POST https://www.fakturyweb.cz/api/init \\
-H "Content-Type: application/json" \\
-H "Authorization: Bearer VAS_API_KLIC" \\
-c cookies.txt \\
-d '{"email":"name@example.com"}'
POST https://www.fakturyweb.cz/api/init(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| povinný parametr | Email (nebo uživatelské jméno), kterým se přihlašujete do Faktury webu. |
Array
(
[email] => name@example.com
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku, inicializace session byla vytvořena |
| 102 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 103 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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);
$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'];
}
Array
(
[status] => 1
)
POST https://www.fakturyweb.cz/api/nf(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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 až 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 |
| 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 |
| 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 |
| 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_taxdoc | nepovinný parametr | Označení faktury, zda se jedná o daňový dokument. Možné hodnoty: Nezobrazí se: 0 Zobrazí se: 1 Předvolená hodnota: 0 |
| 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_date_payment | nepovinný paramater | Datum přijaté platby pro typ faktury č. 5 ve formátu RRRR-MM-DD. Předvolená hodnota: Aktuální datum |
| 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_internal_note | nepovinný parametr | Interní poznámka. Slouží pouze pro interní použití. Nezobrazuje se na vystavené faktuře, ale je viditelná pouze v detailu dokumentu v systému. |
| 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_type | nepovinný parametr | Typ faktury. Možné hodnoty: 1: faktura 2: zálohová faktura 3: dobropis 4: vrubopis 5: doklad k přijaté platbě Předvolená hodnota: 1 |
| f_original_num | povinný pro typ faktury 3 a 4 / nepovinný parametr | V dobropisu nebo vovrubopisu je povinné uvést referenci na původní doklad. Předvolená hodnota: 0 |
| f_paid | nepovinný parametr | Již uhrazeno nedaňovými zálohami. Hodnota se neuvádí v dokladu k přijaté platbě. Předvolená hodnota: 0 |
| f_fullpaid | nepovinný parametr | Vynutí v patičce dokumentu hlášku „JIŽ UHRAZENO“ místo částky k úhradě. Použijte, pokud je doklad v době vystavení již zaplacen (např. platba předem, e-shop). Nezávisí na parametru f_paid (částka uhrazená zálohami) ani na stavu úhrady faktury v systému. Možné hodnoty: 0: nezobrazí (výchozí) 1: zobrazí hlášku „JIŽ UHRAZENO“ Předvolená hodnota: 0 |
| f_rounding | nepovinný parametr | Zaokrouhlení celkové částky k úhradě Možné hodnoty: 0: žádné zaokrouhlení 1: zaokrouhlení na celou část nahoru 2: zaokrouhlení na celou část dolů 4: aritmetické zaokrouhlení na celou část 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 styl_7 (výchozí šablona designéra) Předvolená hodnota: styl_1 |
| f_language | nepovinný parametr | Jazyk faktury. Možné hodnoty: CS, SK, EN, DE, ES, FR, IT, PL, HU, RU, NO, DK Předvolená hodnota: CS |
| f_qr | nepovinný parametr | Zobrazit QR kód platby. Možné hodnoty: 0: nezobrazit 1: QR platba + F 2: QR platba 3: EPC formát Předvolená hodnota: 1 |
| f_omit_stats | nepovinný parametr | Vynechat hodnotu ze statistiky. Možné hodnoty: 0 1 Předvolená hodnota: 0 |
| f_vat_regime | nepovinný parametr | Režim DPH na celé faktuře. Možné hodnoty: 0: Běžný režim 1: Přenesená daňová povinnost 2: Osvobození od daně 3: Dodání zboží do EU (§ 64) 4: Vývoz zboží mimo EU (§ 66) 5: Průběžné položky (§ 36 odst. 14) 6: Služba mimo EU, místo plnění v zahraničí (§ 9 odst. 1) 7: Zvláštní režim: použité zboží (§ 90) 8: Zvláštní režim: umělecká díla (§ 90) 9: Zvláštní režim: starožitnosti, sbírky (§ 90) 10: Zvláštní režim: cestovní služba (§ 89) Hodnoty 1 až 10 jsou dostupné jen pro plátce DPH. Režim dokladu větší než 0 platí pro všechny položky. 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ů |
| f_tags | nepovinný parametr | Seznam (pole) tagů, nacházejících se v seznamu Moje označení / tagy, které mají být přiřazeny k dokumentu. Formát: Array
(
[0] => Název tagu 1
[1] => Název tagu 2
)
|
| 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_regime | nepovinný parametr |
Režim DPH na položce. Pokud je faktura nastavena na běžný režim DPH, je možné určit režim DPH také samostatně pro jednotlivé položky. Možné hodnoty: 0: Běžný režim 1: Přenesení daňové povinnosti 2: Osvobození od daně 3: Dodání zboží do EU (§ 64) 4: Vývoz zboží mimo EU (§ 66) 5: Průběžné položky (§ 36 odst. 14) 6: Služba mimo EU, místo plnění v zahraničí (§ 9 odst. 1) 7: Zvláštní režim: použité zboží (§ 90) 8: Zvláštní režim: umělecká díla (§ 90) 9: Zvláštní režim: starožitnosti, sbírky (§ 90) 10: Zvláštní režim: cestovní služba (§ 89) Hodnoty 1 až 10 jsou dostupné jen pro plátce DPH. Výchozí hodnota: 0 |
| 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ů |
Array
(
[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] => 1
[d_info] => Zapsaná v obchodním rejstříku u Městského soudu v Praze, oddíl B
[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] => 2024099
[f_vs] => 2024099
[f_ks] => 308
[f_date_issue] => 2014-02-14
[f_date_delivery] => 2024-02-14
[f_date_due] => 2024-04-28
[f_issued_by] => Ing. Zbyněk Tuček
[f_payment] => prevod
[f_logo] => 1
[f_stamp] => 0
[f_currency] => Kč
[f_type] => 1
[f_paid] =>
[f_rounding] => 0
[f_style] => standard
[f_language] => CS
[f_qr] => 1
[f_order] => OBJ-2017-514
[f_tags] => Array
(
[0] => VIP klient
[1] => Doprava zdarma
)
)
[p] => Array
(
[0] => Array
(
[p_text] => Malířské práce
[p_quantity] => 3
[p_unit] => hod
[p_price] => 300
[p_vat] => 21
)
[1] => Array
(
[p_text] => Natěračské a lakýrnické práce
[p_quantity] => 2
[p_unit] => hod
[p_vat] => 21
[p_pricevat] => 450
)
)
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku, faktura byla vytvořena |
| 2 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 3 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 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. |
| 21 | Chyba | Ve fakturační položce není vložena cena bez daně, přičemž dodavatel není plátcem DPH. |
| 22 | Chyba | Cena včetně daně ve fakturační položce není číslo. |
| 23 | Chyba | U dobropisu nebo vrubopisu musí být uvedena reference na originální doklad f_original_num. |
| 24 | Chyba | U dobropisu musí být výsledná částka záporná. |
| 25 | Chyba | Datum přijaté platby f_date_payment v daňovém dokladu k přijaté platbě není zadáno správně. |
| 26 | Chyba | V daňovém dokladu k přijaté platbě nesmí být vložena hodnota přijatých záloh f_paid. |
| 27 | Chyba | Neplatný režim DPH, hodnota je mimo povolený rozsah. |
| 28 | Chyba | Při zvoleném režimu DPH musí být dodavatel plátcem DPH. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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 odstraní o 5 - 10 minut od vytvoření
$data['apitest'] = 1; //hodnota může být 1 nebo 0
// Příprava dat dodavatele
$dodavatel = [];
// Údaje dodavatele můžeme použít buď z uložených záznamů v seznamu Moje společnosti
// nebo údaje dodavatele vložíme zadání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átcem DPH ponechte
// hodnotu 1, pokud není plátcem DPH, napište 0.
$dodavatel['d_viewpayer'] = "1"; // Pokud chcete zobrazit informaci na faktuře,
// že dodavatel je / 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 = [];
$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 = [];
// Číslo faktury můžeme zadat ručně:
$faktura['f_number'] = "2024099";
// Pokud chceme vypočítat číslo faktury automaticky, toto pole nevyplňte. Doporučuje se
// ovšem mít zapnuté a nastavené automatické číslování faktur pro vybraného dodavatele.
$faktura['f_vs'] = "2024099"; // Variabilní symbol
$faktura['f_ks'] = "308"; // Konstantní symbol
$faktura['f_date_issue'] = '2014-02-14'; // Datum vystavení ve formátu RRRR-MM-DD
$faktura['f_date_delivery'] = '2024-02-14'; // Datum dodaní ve formátu RRRR-MM-DD
$faktura['f_date_due'] = '2024-04-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'] = "1"; // Zobrazit logo dodavatele. Pouze v případě, že byl
// dodavatel vybrán pomocí ID a má uloženo logo.
$faktura['f_stamp'] = "0"; // Nezobrazit razítko
$faktura['f_currency'] = "Kč"; // Měna faktury
$faktura['f_type'] = "1"; // Faktura
$faktura['f_paid'] = ""; // Již uhrazená částka nedaňovými zálohami
$faktura['f_rounding'] = "0"; // Zaokrouhlení - žádné
$faktura['f_style'] = "standard"; // Styl faktury. Možnosti jsou standard nebo classic
$faktura['f_language'] = "CS"; // Jazyk faktury: CS - čeština
$faktura['f_qr'] = "1"; // Zobrazit QR kód na faktuře
$faktura['f_order'] = "OBJ-2017-514"; // Číslo objednávky
$faktura['f_tags'] = ["VIP klient", "Doprava zdarma"]; // Přiřadit označení k faktuře
// Přidání fakturačních údajů k datům:
$data['f'] = $faktura;
// Příprava fakturačních položek
$polozky = [];
// první položka:
$polozka = [];
$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'] = "300"; // Cena za jednu jednotku bez DPH
$polozka['p_vat'] = "21"; // Daň v %
// přiřazení k položkám:
$polozky[] = $polozka;
// druhá položka:
$polozka = [];
$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_vat'] = "21"; // Daň v %
$polozka['p_pricevat'] = "450"; // 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';
$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ý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'];
}
Array
(
[status] => 1
[code] => 1a35b89cd48eaf8940a6409ff45a0cc5
[number] => FA2024015
[created] => 2024-02-15 17:45:12
)
POST https://www.fakturyweb.cz/api/zf(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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) |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 202 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 203 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ý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';
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ý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');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
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');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/
Array
(
[status] => 1
[url] => http://www.fakturyweb.cz/faktury/detail-soubor?f=26915945a67c8b7ba74dac59c5badfbf
[number] => FA2019015
)
POST https://www.fakturyweb.cz/api/uf(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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' |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
[date] => 2019-02-15
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 302 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 303 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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ě. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ý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';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$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'];
}
Array
(
[status] => 1
)
POST https://www.fakturyweb.cz/api/status(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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) |
Array
(
[email] => name@example.com
[code] => 26915945a67c8b7ba74dac59c5badfbf
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 402 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 403 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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 |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ý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/status';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$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'];
}
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
)
)
POST https://www.fakturyweb.cz/api/list/created(tělo požadavku: JSON s parametry níže)
POST https://www.fakturyweb.cz/api/list/issued(tělo požadavku: JSON s parametry níže)
POST https://www.fakturyweb.cz/api/list/delivered(tělo požadavku: JSON s parametry níže)
POST https://www.fakturyweb.cz/api/list/paid(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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 |
Array
(
[email] => name@example.com
[from] => 2021-01-01
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 502 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 503 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ý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';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$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'];
}
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
)
)
)
POST https://www.fakturyweb.cz/api/ncn(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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 až 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 |
| 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 |
| 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 | nepovinný parametr | Vlastní pole č.1 - klíč |
| o_custom_value_1 | nepovinný parametr | Vlastní pole č.1 - hodnota |
| o_custom_key_2 | nepovinný parametr | Vlastní pole č.2 - klíč |
| o_custom_value_2 | nepovinný parametr | Vlastní pole č.2 - hodnota |
| Parametr | Atribut | Popis |
|---|---|---|
| po_rounding | nepovinný parametr | Zaokrouhlení celkové částky k úhradě Možné hodnoty: 0: žádné zaokrouhlení 1: zaokrouhlení na celou část nahoru 2: zaokrouhlení na celou část dolů 4: aritmetické zaokrouhlení na celou část Předvolená hodnota: 0 |
| 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_internal_note | nepovinný parametr | Interní poznámka. Slouží pouze pro interní použití. Nezobrazuje se v cenové nabídce, ale je viditelná pouze v detailu dokumentu v systému. |
| 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: CS, SK, EN, DE, ES, FR, IT, PL, HU, RU, NO, DK Předvolená hodnota: CS |
| po_custom | nepovinný parametr | Libovolná textová informace zaslána přes API. Zobrazí se jako samostatný sloupec v excelovské exportu. text, max. 50 znaků |
| po_tags | nepovinný parametr | Seznam (pole) tagů, nacházejících se v seznamu Moje označení / tagy, které mají být přiřazeny k dokumentu. Formát: Array
(
[0] => Název tagu 1
[1] => Název tagu 2
)
|
| 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ů |
Array
(
[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
[po_tags] => Array
(
[0] => VIP klient
[1] => Doprava zdarma
)
)
[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
)
)
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku, cenová nabídka byla vytvořena |
| 602 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 603 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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
$cenovaNabidka['po_tags'] = ["VIP klient", "Doprava zdarma"]; // Přiřadit označení k nabídce
// 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 = [];
$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';
$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ý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'];
}
Array
(
[status] => 1
[code] => ca9658a5448a945059f44658bac985e5
[number] => 2022099
[created] => 2022-01-01 09:49:05
)
POST https://www.fakturyweb.cz/api/zcn(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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) |
Array
(
[email] => name@example.com
[code] => aa9025bc0094c88445daa22b90eff3b
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 702 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 703 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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);
$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';
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ý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');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
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');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
echo curl_exec($ch);
*/
Array
(
[status] => 1
[url] => https://www.fakturyweb.cz/cenove-nabidky/detail-soubor?cp=26915945a67c8b7ba74dac59c5badfbf
[number] => 2022099
)
POST https://www.fakturyweb.cz/api/cn-status(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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) |
Array
(
[email] => name@example.com
[code] => ae47ece062b0021144d768446b071fee
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 802 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 803 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ýsledek:
$result = json_decode($output, true);
if ($result['status'] != 1) {
throw new Exception("Vyskytla se 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';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$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'];
}
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
)
)
POST https://www.fakturyweb.cz/api/cn-list/created(tělo požadavku: JSON s parametry níže)
POST https://www.fakturyweb.cz/api/cn-list/issued(tělo požadavku: JSON s parametry níže)
| Parametr | Atribut | Popis |
|---|---|---|
| key | nepovinný parametr | API klíč. Ve verzi 2 se posílá v hlavičce Authorization (viz Formát volání). Parametr key v těle požadavku je přijímán jen pro zpětnou kompatibilitu. |
| 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 |
Array
(
[email] => name@example.com
[from] => 2022-01-01
[to] => 2022-01-31
)
| Status ID | Význam | Popis |
|---|---|---|
| 1 | OK | Vše proběhlo v pořádku |
| 902 | Chyba | Chybí vstupní data: tělo požadavku není platný JSON a nebyl zadán ani parametr data. |
| 903 | Chyba | API klíč chybí (v hlavičce Authorization ani v datech) nebo nemá 32 znaků. |
| 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. |
<?php
// Příprava základních dat:
$data = [];
// Váš API klíč (posílá se v hlavičce Authorization, ne v datech):
$api_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';
$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ý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';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
$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'];
}
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
)
)
)