Export dokladů do účetních formátů

GET
/api/v2/export/invoices

Vrací 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ázevTypPovinnýPopisPříklad
typeenum anoTyp dokladu: `cash` (prodej pokladnou, pokladní příjem), `invoice` (prodej fakturou, faktura vydaná), `receipt` (příjemka, faktura přijatá). invoice
formatenum anoFormát výstupu: `flexibee` a `pohoda` (XML), `csv`, `excel` (soubor XLSX) nebo `json`. Povolené kombinace s `type` jsou v textu níže. csv
monthinteger neKoliká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
fromstring neZačátek období ve tvaru RRRR-MM-DD. Uplatní se jen společně s `to`. 2026-10-01
tostring neKonec období ve tvaru RRRR-MM-DD (včetně). Uplatní se jen společně s `from`. 2026-10-31
dateFieldenum neDatum, podle kterého se filtruje období: `issued` (vystavení) nebo `taxable` (DUZP). Bez hodnoty se pro `invoice` bere `taxable`, pro ostatní typy `issued`. issued
stockstring neKó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

Chybové stavy

HTTPKdyPodoba
401Chybí API token. Odpověď má hlavičku WWW-Authenticate: Bearer. status-message
401Neplatný, odvolaný nebo expirovaný API token (Bearer, api_token). Odpověď nemá hlavičku WWW-Authenticate. status-message
403API token se použil z IP adresy, která není u přístupu povolená. status-message
403Přístup k datům firmy je odmítnut. Tělo je text `Unauthorized` (text/plain). text
200Neplatná 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

Související návody