Export dokladů do účetních formátů
/api/v2/export/invoicesVrací doklady firmy za zvolené období v jednom z formátů pro účetní programy a tabulky. Operace nic nemění. Je určená pro automatické stahování, například z plánovače úloh. Stačí API token z Nastavení → API přístupy (návod API přístupy).
Token předáte buď hlavičkou Authorization: Bearer (token typu Bearer), nebo v adrese parametrem ?api_token=publicId.secret. Druhý způsob se hodí tam, kde nejde nastavit hlavičku. Adresa s tokenem je přihlašovací údaj: neukládejte ji do veřejných skriptů ani logů. Podrobnosti najdete v Autentizaci.
Formáty a typy dokladů
Výstup se určuje dvojicí format a type. Doklady jsou omezené na sklady, ke kterým má vlastník tokenu přístup, smazané se nevrací, řadí se podle data vystavení.
format |
Povolené type |
Content-Type |
Obsah |
|---|---|---|---|
flexibee |
invoice, receipt, cash |
application/xml |
Element winstrom s fakturami (invoice, receipt) nebo pokladními pohyby (cash). |
pohoda |
invoice, receipt, cash |
application/xml; charset=utf-8 |
Kořen dat:dataPack ve schématu Stormware, IČ firmy v atributech. |
csv |
kterýkoli | text/csv; charset=utf-8 |
Příloha export.csv, hlavička a řádky popsané níže. |
excel |
kterýkoli | application/vnd.ms-excel |
Příloha export.xlsx ve formátu XLSX, tytéž sloupce jako CSV. |
json |
kterýkoli | application/json; charset=utf-8 |
Pole objektů se stejnými klíči jako sloupce CSV. |
Jiná kombinace, tedy flexibee nebo pohoda s jiným typem a každý neznámý format, vrací HTTP 200 s Content-Type: text/plain; charset=utf-8 a textem Chybne vyplnene parametry nebo nevyhovujici kombinace formatu a typu dokladu. Stav 200 sám tedy neznamená, že export proběhl: zkontrolujte Content-Type.
Chyby
Bez tokenu vrací operace HTTP 401 s hlavičkou WWW-Authenticate: Bearer. Neplatný API token vrací 401 bez této hlavičky, token z nepovolené IP adresy vrací 403. Tyto chyby mají tělo JSON se status a message. Když je přístup k datům firmy odmítnut, odpověď je 403 s textem Unauthorized. Viz Chybové stavy.
Řádky CSV, XLSX a JSON
Soubor má 33 sloupců: cislo, provozovna/sklad, varSym, datVyst, duzpUcto, duzpPuv, datSplat, nazFirmy, ulice, mesto, psc, ic, dic, mena, formaUhr, kurz, kurzMnozstvi, kod, nazev, mnozMj, sazbaDphMj, cenaMj, sumZklMj, sumDphMj, sumCelkemMj, sleva, sazbaDphDph, sumZklDph, sumDphDph, sumCelkemDph, sumZkl, sumDph, sumCelkem. Jeden doklad tvoří tři druhy řádků: řádek každé položky (sloupce kod až sumCelkemMj), řádek každé sazby DPH (sleva až sumCelkemDph) a závěrečný řádek hlavičky dokladu s adresou odběratele, daty a součty. Nepoužité sloupce jsou prázdné. Mezi doklady je jeden prázdný řádek. Znak & v názvech se nahrazuje textem and. Měna Kč se vypisuje jako CZK; u cizí měny se doplní kurz a množství kurzu platné před datem vystavení.
Období a sklady
Období zadejte buď month, nebo dvojicí from a to. Když pošlete obojí, uplatní se obě podmínky společně. Samotné from nebo to se ignoruje a export není omezen na období. Pole, podle kterého se období filtruje, určuje dateField. Parametr stock omezí export na vybrané sklady nebo provozovny. Adresu exportu s potřebnými parametry umí sestavit i aplikace na obrazovce Import / Export, viz návod Import / Export.
Autentizace a oprávnění
Vyžaduje API token: Bearer v hlavičce nebo URL token.
Parametry
Query parametry
| Název | Typ | Povinný | Popis | Příklad |
|---|---|---|---|---|
type | enum | ano | Typ dokladu: `cash` (prodej pokladnou, pokladní příjem), `invoice` (prodej fakturou, faktura vydaná), `receipt` (příjemka, faktura přijatá). | invoice |
format | enum | ano | Formát výstupu: `flexibee` a `pohoda` (XML), `csv`, `excel` (soubor XLSX) nebo `json`. Povolené kombinace s `type` jsou v textu níže. | csv |
month | integer | ne | Kolikátý měsíc zpět se exportuje, od 0 (aktuální měsíc) do -12. Používejte buď `month`, nebo `from` a `to`. | -1 |
from | string | ne | Začátek období ve tvaru RRRR-MM-DD. Uplatní se jen společně s `to`. | 2026-10-01 |
to | string | ne | Konec období ve tvaru RRRR-MM-DD (včetně). Uplatní se jen společně s `from`. | 2026-10-31 |
dateField | enum | ne | Datum, podle kterého se filtruje období: `issued` (vystavení) nebo `taxable` (DUZP). Bez hodnoty se pro `invoice` bere `taxable`, pro ostatní typy `issued`. | issued |
stock | string | ne | Kódy skladů nebo provozoven oddělené čárkou. Omezí výběr na sklady, ke kterým má vlastník tokenu přístup. Bez hodnoty se berou všechny jeho sklady. | HLAVNI |
Příklad požadavku
curl
curl -X GET 'https://www.elpokladny.cz/api/v2/export/invoices?type=invoice&format=csv&month=-1' \
-H 'Authorization: Bearer elp_live_example.example_secret'PHP
<?php
$ch = curl_init('https://www.elpokladny.cz/api/v2/export/invoices?type=invoice&format=csv&month=-1');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array (
0 => 'Authorization: Bearer elp_live_example.example_secret',
),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;javascript
const response = await fetch("https://www.elpokladny.cz/api/v2/export/invoices?type=invoice&format=csv&month=-1", {
"method": "GET",
"headers": {
"Authorization": "Bearer elp_live_example.example_secret"
}
});
const data = await response.json();Ukázkové odpovědi
CSV (format=csv) (HTTP 200)
text/csv; charset=utf-8
cislo,provozovna/sklad,varSym,datVyst,duzpUcto,duzpPuv,datSplat,nazFirmy,ulice,mesto,psc,ic,dic,mena,formaUhr,kurz,kurzMnozstvi,kod,nazev,mnozMj,sazbaDphMj,cenaMj,sumZklMj,sumDphMj,sumCelkemMj,sleva,sazbaDphDph,sumZklDph,sumDphDph,sumCelkemDph,sumZkl,sumDph,sumCelkem
,,,,,,,,,,,,,,,,,"KAVA","Káva",2,21%,49.5868,99.1736,20.8264,120.0000,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,"0%",21%,99.17,20.83,120.00,,,
"2026000012","HLAVNI","2026000012",2026-10-15,2026-10-15,2026-10-15,2026-10-29,"Jana Ukázková",Ukázková 1,Praha,11000,12345678,CZ12345678,CZK,prevod,,,,,,,,,,,"0%",,,,,99.17,20.83,120.00
JSON (format=json) (HTTP 200)
application/json; charset=utf-8
[
{
"cislo": "",
"provozovna/sklad": "",
"varSym": "",
"datVyst": "",
"duzpUcto": "",
"duzpPuv": "",
"datSplat": "",
"nazFirmy": "",
"ulice": "",
"mesto": "",
"psc": "",
"ic": "",
"dic": "",
"mena": "",
"formaUhr": "",
"kurz": "",
"kurzMnozstvi": "",
"kod": "KAVA",
"nazev": "Káva",
"mnozMj": "2",
"sazbaDphMj": "21%",
"cenaMj": "49.5868",
"sumZklMj": "99.1736",
"sumDphMj": "20.8264",
"sumCelkemMj": "120.0000",
"sleva": "",
"sazbaDphDph": "",
"sumZklDph": "",
"sumDphDph": "",
"sumCelkemDph": "",
"sumZkl": "",
"sumDph": "",
"sumCelkem": ""
},
{
"cislo": "",
"provozovna/sklad": "",
"varSym": "",
"datVyst": "",
"duzpUcto": "",
"duzpPuv": "",
"datSplat": "",
"nazFirmy": "",
"ulice": "",
"mesto": "",
"psc": "",
"ic": "",
"dic": "",
"mena": "",
"formaUhr": "",
"kurz": "",
"kurzMnozstvi": "",
"kod": "",
"nazev": "",
"mnozMj": "",
"sazbaDphMj": "",
"cenaMj": "",
"sumZklMj": "",
"sumDphMj": "",
"sumCelkemMj": "",
"sleva": "0%",
"sazbaDphDph": "21%",
"sumZklDph": "99.17",
"sumDphDph": "20.83",
"sumCelkemDph": "120.00",
"sumZkl": "",
"sumDph": "",
"sumCelkem": ""
},
{
"cislo": "2026000012",
"provozovna/sklad": "HLAVNI",
"varSym": "2026000012",
"datVyst": "2026-10-15",
"duzpUcto": "2026-10-15",
"duzpPuv": "2026-10-15",
"datSplat": "2026-10-29",
"nazFirmy": "Jana Ukázková",
"ulice": "Ukázková 1",
"mesto": "Praha",
"psc": "11000",
"ic": "12345678",
"dic": "CZ12345678",
"mena": "CZK",
"formaUhr": "prevod",
"kurz": "",
"kurzMnozstvi": "",
"kod": "",
"nazev": "",
"mnozMj": "",
"sazbaDphMj": "",
"cenaMj": "",
"sumZklMj": "",
"sumDphMj": "",
"sumCelkemMj": "",
"sleva": "0%",
"sazbaDphDph": "",
"sumZklDph": "",
"sumDphDph": "",
"sumCelkemDph": "",
"sumZkl": "99.17",
"sumDph": "20.83",
"sumCelkem": "120.00"
}
]
XML Flexibee (format=flexibee) (HTTP 200)
application/xml
<winstrom version="1.0">
<faktura-vydana>
<cisDosle>2026000012</cisDosle>
<typDokl>code:FAKTURA</typDokl>
<typUcOp>code:TRŽBA SLUŽBY</typUcOp>
<varSym>2026000012</varSym>
<datVyst>2026-10-15</datVyst>
<duzpUcto>2026-10-15</duzpUcto>
<duzpPuv>2026-10-15</duzpPuv>
<datSplat>2026-10-29</datSplat>
<nazFirmy>Jana Ukázková</nazFirmy>
<ulice>Ukázková 1</ulice>
<mesto>Praha</mesto>
<psc>11000</psc>
<ic>12345678</ic>
<dic>CZ12345678</dic>
<mena>code:CZK</mena>prevod
<polozkyFaktury>
<faktura-vydana-polozka>
<kod></kod>
<name>Káva</name>
<typPolozkyK>typPolozky.obecny</typPolozkyK>
<mnozMj>2</mnozMj>
<typSzbDphK>typSzbDph.dphZakl</typSzbDphK>
<typCenyDphK>typCeny.bezDph</typCenyDphK>
<cenaMj>49.5868</cenaMj>
<sumZkl>99.1736</sumZkl>
<sumDph>20.8264</sumDph>
<sumCelkem>120.0000</sumCelkem>
</faktura-vydana-polozka>
</polozkyFaktury>
</faktura-vydana>
</winstrom>
Soubor XLSX (format=excel) (HTTP 200)
application/vnd.ms-excel
Tělo je binární soubor XLSX (Content-Disposition: attachment; filename="export.xlsx"). Uložte ho do souboru, nezobrazuje se.
Chybí platné přihlášení (HTTP 401)
application/json
{
"status": "error",
"message": "Unauthorized"
}
Přístup k firmě odmítnut (HTTP 403)
text/plain
Unauthorized
Neplatná kombinace formátu a typu (HTTP 200)
text/plain; charset=utf-8
Chybne vyplnene parametry nebo nevyhovujici kombinace formatu a typu dokladu.
Možné chyby
| HTTP | Kdy | Podoba |
|---|---|---|
| 401 | Chybí API token. Odpověď má hlavičku WWW-Authenticate: Bearer. | status-message |
| 401 | Neplatný, odvolaný nebo expirovaný API token (Bearer, api_token). Odpověď nemá hlavičku WWW-Authenticate. | status-message |
| 403 | API token se použil z IP adresy, která není u přístupu povolená. | status-message |
| 403 | Přístup k datům firmy je odmítnut. Tělo je text `Unauthorized` (text/plain). | text |
| 200 | Neplatná kombinace `format` a `type`, například `flexibee` s jiným typem než `invoice`, `receipt` a `cash`, nebo neznámý `format`. Tělo je text `Chybne vyplnene parametry...`, ne JSON. | text |