vasdoklad.cz

1 Úvod

HTTP REST API služby VášDoklad.cz je založeno na výměně JSON dokumentu mezi klientem a serverem, s výjimkou operací uploadu souborů obrázků, certifikátů a klíčů. Server na základě takto předaných dat poskytuje odpověď. Pro testování lze použít nástroj stejnojmenné knihovny: curl.

2 Uživatel

Operace spojené s uživatelským účtem řeší samostatná specifikace REST API služby https://cloud.4smart.cz. Uživatelský účet entita sdílená mezi službami VášDoklad.cz a cloud.4smart.cz spolu s veškerým nastavením.

HTTP REST API služby cloud.4smart.cz:

https://cloud.4smart.cz/specifikace_rest_api.pdf

Pro generování dokladů v e-shopu nebo jiné online službě není třeba odkazovaný dokument studovat. Postačí vytvoření účtu s pomocí aplikace.vasdoklad.cz a následně implementace vybraných níže uvedených funkcí podle tohoto dokumentu.

2.1 Získání informací o aktuálním tarifu uživatele

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/tariff-get.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo"
  } 

Příklad odpovědi:

{„tariff“: 3}

2.2 Přepnutí tarifu

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/tariff-switch.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     „tariff“: „3“
  } 

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

3 Operace s adresářem Dodavatele / Provozovny

O tom, zda jde o provozovnu nebo dodavatele rozhoduje kontext ukládaných dat.

3.1 Získání seznamu dodavatelů / provozoven

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/list-suppliers.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50"
  } 

Pozn.: Pokud není uveden atribut id spolu s hodnotou, je vrácen seznam všech provozoven / dodavatelů. Je-li uvedeno id, jsou vráceny pouze informace o konkrétní provozovně / dodavateli reprezentované tímto interním číslem.

Příklad odpovědi:

 {
 "50": {
 "logo": true,  
 "advertisement": true,  
 "company": "Spolecnost s.r.o.",  
 "addr_1": "Novákova 12",  
 "addr_2": "Vy\u0161kov",  
 "postal": "123 45",  
 "ic": "01234567",  
 "dic": "CZ01234567",  
 "phone": "+420 910 111 426",  
 "web": "https://it-techcz.com",  
 "email": "kontakt@it-techcz.com",  
 "bank_name": "Komer\u010dn\u00ed banka a.s.",  
 "bank_account": "115-3474420297/0100",  
 "bank_iban": "CZ90 0100 0001 1534 7442 0297",  
 "bank_swift": "KOMBCZPP",  
 "tax_payer": 0,  
 "additional_comment_1": "Spolecnost s.r.o. 
 se s\u00eddlem Novákova 12, 123 45 Pustim\u011b\u0159, je zaps\u00e1na v obchodn\u00edm rejst\u0159\u00edku, veden\u00e9m u Krajsk\u00e9ho soudu v Brn\u011b, odd\u00
 edl C, vlo\u017eka 95878.",  
 "additional_comment_2": "Dovolujeme si V\u00e1s upozornit, \u017ee v p\u0159\u00edpad\u011b nedodr\u017een\u00ed data splatnosti uveden\u
 00e9ho na faktu\u0159e V\u00e1m budeme \u00fa\u010dtovat \u00farok z prodlen\u00ed v dohodnut\u00e9, resp. z\u00e1konn\u00e9 v\u00fd\u0161i",  
 "additional_comment_3": "a smluvn\u00ed pokutu (byla-li ujedn\u00e1na)"
 }
 }
 
 

3.2 Odstranění dodavatele / provozovny

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-supplier.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50"
  } 

Pozn.: Parametr id je povinný.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

3.3 Import dodavatele / provozovny

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/import-supplier.json

Metoda: POST

Odesílaný dotaz v JSON:

{ 
     "login": "uzivatelsky-login", 
     "password": "uzivatelske-heslo", 
     "supplier": { 
         "company": "Spolecnost s.r.o.", 
         "addr_1": "Novákova 12", 
         "addr_2": "Vyškov", 
         "postal": "123 45", 
         "ic": "01234567", 
         "dic": "CZ1212121218", 
         "phone": "+420 910 111 426", 
         "web": "https://it-techcz.com", 
         "email": "kontakt@it-techcz.com", 
         "bank_name": "Komerční banka Kč", 
         "bank_account": "115-3474420297/0100",  
         "bank_iban": "cz90 0100 0001 1534 7442 0297", 
         "bank_swift": "KOMBCZPP", 
         "tax_payer": false, 
         "additional_comment_1": "Spolecnost s.r.o. se sídlem Novákova 12, 123 45 Pustiměř, je zapsána v obchodním rejstříku, vedeném u Krajského soudu v Brně, oddíl C
  , vložka 95878.", 
         "additional_comment_2": "Dovolujeme si Vás upozornit, že v případě nedodržení data splatnosti uvedeného na faktuře Vám budeme účtovat úrok z prodlení v dohod
  nuté, resp. zákonné výši", 
         "additional_comment_3": "a smluvní pokutu (byla-li ujednána)." 
     } 
  }

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

Povinné položky: login, password, supplier, company, addr_1, addr_2, postal, ic, dic, tax_payer.

3.4 Aktualizace existujícího dodavatele / provozovny

Aktualizace položky dodavatele / provozovny v adresáři se provádí stejným postupem jako její vytvoření. V JSON dokumentu, který klient odesílá na server musí být navíc uveden atribut id aktualizované položky.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/import-supplier.json

Metoda: POST

Odesílaný dotaz v JSON:

 { 
    "login": "uzivatelsky-login", 
    "password": "uzivatelské-heslo", 
    „ id“: „50“,
    "supplier": {  
             …
     }
 } 

Odpověď serveru: stavový kód 200 nebo jiný při neúspěchu.

Povinné položky: login, password, supplier, company, addr_1, addr_2, postal, ic, dic, tax_payer.

3.5 Upload souboru loga dodavatele / provozovny

Velikost souboru je omezena na 2MB. Doporučené rozměry obrázku jsou 547×240 px. Povolený formát obrázku je png, jpg. Kromě binárních dat obrázku se neodesílá žádný JSON dokument.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/upload-logo.json

Metoda: PUT

Povinné parametry: login, heslo, id (provozovny).

Příklad akce:

curl -F’login=uzivatelsky-login‘ -F’password=uzivatelske-heslo‘ -F’id=50′ -F’file=@./soubor.png‘ -X PUT https://aplikace.vasdoklad.cz/v1/vasdoklad.cz/upload-logo.json


3.6 Upload reklamního banneru dodavatele / provozovny

Velikost souboru je omezena na 2MB. Doporučené rozměry obrázku jsou 420×120 px. Povolený formát obrázku je png, jpg. Kromě binárních dat se neodesílá žádný JSON dokument.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/upload-ad.json

Metoda: PUT

Povinné parametry: login, heslo, id (provozovny).

Příklad akce:

curl -F’login=uzivatelsky-login‘ -F’password=uzivatelske-heslo‘ -F’id=50′ -F’file=@./soubor.png‘ -X PUT https://aplikace.vasdoklad.cz/v1/vasdoklad.cz/upload-ad.json

4 Operace s adresářem Pokladen

Platí, že dodavatel / provozovna může disponovat 0 – n pokladnami (podle platného tarifu).

4.1 Získání seznamu pokladen

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/list-cashdesks.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50",
     „cdid“: „58“
 } 

Pozn.: Atribut id reprezentuje provozovnu/dodavatele. Atribut cdid reprezentuje pokladnu. Pokud není uveden atribut cdid spolu s hodnotou, je vrácen seznam všech pokladen dodavatele/provozovny. Je-li uvedeno cdid, jsou vráceny pouze informace o konkrétní pokladně reprezentované tímto interním číslem.

Příklad odpovědi:

 {
 "58": {
   "est_id": 50,  
   "eet_do": 0,  
   "eet_cert_path": "defined",  
   "eet_cert_pass": "defined",  
   "eet_provozovna": 14,  
   "eet_pokladna": "Vasdoklad.cz",  
   "eet_playground": 1,
   "signing_cert_path": "defined",  
   "signing_key_path": "defined",  
   "signing_passwd": "defined"
   } 
 }
 
 
 

4.2 Odstranění pokladny

Odstraněním pokladny dochází ke smazání všech přiřazených souborů.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-cashdesk.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "58"
 } 

Atribut id reprezentuje interní číslo pokladny.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

4.3 Vytvoření nové pokladny

Operace vytvoření pokladny vytváří novou neinicializovanou entitu.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/import-cashdesk.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50"
 } 

Atribut id reprezentuje interní číslo provozovny / dodavatele ve které má být nová pokladna vytvořena.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

4.4 Změna nastavení existující pokladny

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/update-cashdesk.json

Metoda: POST

Odesílaný dotaz v JSON:

{ 
     "login": "uzivatelsky-login", 
     "password": "uzivatelske-heslo", 
     "id": "58", 
     "cashdesk":{ 
        "eet_cert_pass": "heslo-certifikatu-eet", 
        "eet_provozovna": "14", 
        "eet_pokladna": "vasdoklad.cz", 
        "eet_playground": true, 
        "eet_do": false, 
        "signing_passwd": "heslo-kvalifikovaneho-certifikatu" 
     } 
  }

Atribut id reprezentuje interní číslo pokladny.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

4.5 Upload EET certifikátu pokladny

Touto akcí dojde k nahrání certifikátu pro elektronickou evidenci tržeb do nastavení existující pokladny. Velikost souboru je omezena na 2MB. Povolený formát souboru je p12. Kromě binárních dat se neodesílá žádný JSON dokument.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/upload-eetcert.json

Metoda: PUT

Povinné parametry: login, heslo, id (pokladny).

Příklad akce:

curl -F’login=uzivatelsky-login‘ -F’password=uzivatelske-heslo‘ -F’id=58′ -F’file=@./soubor.p12′ -X PUT https://aplikace.vasdoklad.cz/v1/vasdoklad.cz/upload-eetcert.json

4.6 Odstranění EET certifikátu pokladny

Touto akcí dojde ke smazání souboru s certifikátem, který je přiřazen k existující pokladně.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-eetcert.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "58"
 } 

Atribut id reprezentuje interní číslo pokladny.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

4.7 Upload kvalifikovaného certifikátu pokladny

Kvalifikovaný certifikát slouží k elektronickému podepisování vystavovaných dokladů. Touto akcí dojde k nahrání certifikátu do nastavení existující pokladny. Velikost souboru je omezena na 2MB. Povolený formát souboru je pem. Kromě binárních dat se neodesílá žádný JSON dokument.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/upload-qcert.json

Metoda: PUT

Povinné parametry: login, heslo, id (pokladny).

Příklad akce:

curl -F’login=uzivatelsky-login‘ -F’password=uzivatelske-heslo‘ -F’id=58′ -F’file=@./soubor.pem‘ -X PUT https://aplikace.vasdoklad.cz/v1/vasdoklad.cz/upload-qcert.json

4.8 Odstranění kvalifikovaného certifikátu pokladny

Touto akcí dojde ke smazání souboru s certifikátem, který je přiřazen k existující pokladně.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-qcert.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "58"
 } 

Atribut id reprezentuje interní číslo pokladny.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

4.9 Upload klíče kvalifikovaného certifikátu pokladny

Klíč ke kvalifikovanému certifikátu slouží k elektronickému podepisování vystavovaných dokladů. Touto akcí dojde k nahrání klíče do nastavení existující pokladny. Velikost souboru je omezena na 2MB. Povolený formát souboru je pem. Kromě binárních dat se neodesílá žádný JSON dokument.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/upload-qkey.json

Metoda: PUT

Povinné parametry: login, heslo, id (pokladny).

Příklad akce:

curl -F’login=uzivatelsky-login‘ -F’password=uzivatelske-heslo‘ -F’id=58′ -F’file=@./soubor.pem‘ -X PUT https://aplikace.vasdoklad.cz/v1/vasdoklad.cz/upload-qkey.json

4.10 Odstranění klíče kvalifikovaného certifikátu pokladny

Touto akcí dojde ke smazání souboru s klíčem, který je přiřazen k existující pokladně.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-qkey.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "58"
 } 

Atribut id reprezentuje interní číslo pokladny.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

5 Operace s adresářem Odběratelů

5.1 Získání seznamu odběratelů

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/list-customers.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50"
 } 

Pozn.: Pokud není uveden atribut id spolu s hodnotou, je vrácen seznam všech odběratelů. Je-li uvedeno id, jsou vráceny pouze informace o konkrétním odběrateli, kterého reprezentuje toto interní číslo.

Příklad odpovědi:

 {
   "50": {
   "company": "Spolecnost s.r.o.",  
   "addr_1": "Novákova 12", "addr_2": "Vy\u0161kov", 
   "country": "\u010cesk\u00e1 Republika",  
   "postal": "123 45",  
   "ic": "01234567", 
   "dic": "CZ1212121218", 
   "phone": "+420 910 111 426",  
   "email": "kontakt@it-techcz.com"
   }
 }
 
 

5.2 Odstranění odběratele

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/remove-customer.json

Metoda: POST

Odesílaný dotaz v JSON:

 {
     "login": "uzivatelsky-login",
     "password": "uzivatelske-heslo",
     "id": "50"
 }
  

Pozn.: Parametr id je povinný.

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

5.3 Vytvoření odběratele

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/import-customer.json

Metoda: POST

Odesílaný dotaz v JSON:

{ 
     "login": "uzivatelsky-login", 
     "password": "uzivatelske-heslo", 
     "customer": { 
         "company": "Spolecnost s.r.o.", 
         "addr_1": "Novákova 12", 
         "addr_2": "Vyškov", 
         "postal": "123 45", 
         "ic": "01234567", 
         "dic": "CZ1212121218", 
         "phone": "+420 910 111 426", 
         "email": "kontakt@it-techcz.com", 
         "country":"Česká Republika" 
     } 
  }
  

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

5.4 Aktualizace položky odběratele

Odběratele lze v adresáři aktualizovat stejným přístupem, jako je postup pro jeho vytvoření. Navíc je nutné uvádět v odesílaném JSON dokumentu atribut id, čímž se operace odliší od vytvoření nové položky v adresáři.

Url: https://aplikace.vasdoklad.cz/v1/basdoklad.cz/import-customer.json

Metoda: POST

Odesílaný dotaz v JSON:

 { 
    "login": "uzivatelsky-login", 
    "password": "uzivatelske-heslo", 
    „id“: „50“,
    "customer": { 
       ...
    } 
 }
 

Odpověď serveru: stavový kód 200 při úspěchu, nebo jiný.

6 Generování dokumentu dokladu

Při generování dokladu lze volitelně uplatnit adresáře dodavatelů / provozoven, pokladen a odběratelů. Použití adresáře dodavatelů/provozoven umožňuje uplatnit vlastní logo nebo reklamu. Použití adresáře pokladen dovoluje provádět elektronickou evidenci tržeb a podepisování dokladů kvalifikovaným certifikátem.

6.1 Ukázka generování dokladu bez použití adresářů

Tento přístup nedovoluje vkládat do generovaného dokladu grafické logo, reklamu, podepisovat doklad kvalifikovaným certifikátem a provádět EET.

{ 
     "login": "uzivatelsky-login", 
     "password": "uzivatelske-heslo", 
     "archive": true, 
     "explicitHeader": "", 
     "invoice_id": "0200100021", 
     "varsymbol": "358857018", 
     "konstsymbol": "0308", 
     "ordernum": "", 
     "orderdate": "", 
     "date_issue": "20.1.2020", 
     "date_maturity": "20.1.2020", 
     "date_payment_realisation_tax": "20.1.2020", 
     "date_payment_received": "", 
     "paymethod": "Hotovost", 
     "revcharge": false, 
     "currency": "CZK", 
     "course": "", 
     "payed": false, 
     "overview": false, 
     "sign_by_certificate": "", 
     "eet": "", 
     "supplier": { 
         "company": "Spolecnost s.r.o.", 
         "addr_1": "Novákova 12", 
         "addr_2": "Vyškov", 
         "postal": "123 45", 
         "ic": "01234567", 
         "dic": "CZ1212121218", 
         "phone": "+420 910 111 426", 
         "web": "https://it-techcz.com", 
         "email": "kontakt@it-techcz.com", 
         "bank_name": "", 
         "bank_account": "",  
         "bank_iban": "", 
         "bank_swift": "", 
         "tax_payer": false 
     }, 
     "customer_login": "kontakt@it-techcz.com", 
     "customer": { 
         "company": "Fiktivní společnost a.s.",  
         "addr_1": "Na Tyršovce 13/30",  
         "addr_2": "Brno",  
         "postal": "533 51",  
         "country": "Czech Republic",  
         "ic": "05577987",  
         "dic": "CZ05522452",  
         "phone": "776351196",  
         "email": "" 
     }, 
     "invoice_comment": "Fakturujeme Vám níže uvedené služby za období 01/2020 dle smlouvy číslo 099/16-2016 (identifikace fakturace 157101):", 
     "additional_comment_1": "Spolecnost s.r.o. se sídlem Novákova 12, 123 45 Pustiměř, je zapsána v obchodním rejstříku, vedeném u Krajského soudu v Brně, oddíl C, vl
  ožka 95878.", 
     "additional_comment_2": "Dovolujeme si Vás upozornit, že v případě nedodržení data splatnosti uvedeného na faktuře Vám budeme účtovat úrok z prodlení v dohodnuté
  , resp. zákonné výši", 
     "additional_comment_3": "a smluvní pokutu (byla-li ujednána).", 
     "items": [ 
         {"subject": "Doučování českého jazyka, 1 hodina", "amount": "1", "unit_price": "300", "tax_percent": "21"}, 
         {"subject": "Doučování českého jazyka, 1 hodina", "amount": "1", "unit_price": "200", "tax_percent": "15"} 
      ] 
  }

6.2 Ukázka generování dokladu s použitím všech adresářů

Pro vystavení dokladu budou použit dodavatel id 50 z adresáře dodavatelů / provozoven a případně jeho grafické logo a reklama, dále pokladna id 8 a odběratel id 13. Je-li v adresáři pokladen u položky id 8 uvedeno platné nastavení pro EET nebo podepisování dokladů, bude použito při vystavení dokladu.

{ 
     "login": "uzivatelsky-login", 
     "password": "uzivatelske-heslo", 
     "archive": true, 
     "explicitHeader": "", 
     "invoice_id": "0200100021", 
     "varsymbol": "358857018", 
     "konstsymbol": "0308", 
     "ordernum": "", 
     "orderdate": "", 
     "date_issue": "20.1.2020", 
     "date_maturity": "20.1.2020", 
     "date_payment_realisation_tax": "20.1.2020", 
     "date_payment_received": "", 
     "paymethod": "Hotovost", 
     "revcharge": false, 
     "currency": "CZK", 
     "course": "", 
     "payed": false, 
     "overview": false, 
     "sign_by_certificate": "8", 
     "eet": "8", 
     "supplier": „50“,
     "customer_login": "kontakt@it-techcz.com", 
     "customer": „13“,
     "invoice_comment": "Fakturujeme Vám níže uvedené služby za období 01/2020 dle smlouvy číslo 099/16-2016 (identifikace fakturace 157101):", 
     "items": [ 
         {"subject": "Doučování českého jazyka, 1 hodina", "amount": "1", "unit_price": "300", "tax_percent": "21"}, 
         {"subject": "Doučování českého jazyka, 1 hodina", "amount": "1", "unit_price": "200", "tax_percent": "15"} 
      ] 
  }

7 Technická podpora

Ve věci implementace služby VášDoklad.cz do Vašich systémů (e-shopů a online služeb) jsme připraveni Vám poskytnout technický support. Kontaktujte nás na email kontakt@it-techcz.com nebo na telefonním čísle 910 111 426.