Jak XML import do Pohody funguje
POHODA má pro výměnu dat obecné rozhraní XML API. Do programu přijde XML soubor s doklady, POHODA je naimportuje a ke každému souboru vytvoří odpověď, opět v XML, s výsledkem zpracování. Stejnou cestou jde o data i požádat a nechat si je vyexportovat.
Ruční import spustíš z nabídky Soubor / Datová komunikace / XML import/export…. V průvodci zvolíš, jestli zpracuješ jeden soubor, nebo celou složku, a výsledek najdeš v agendě XML log. Pro pravidelný import z e-shopu lze POHODU spouštět i z příkazové řádky nebo přes server mServer.
Obálka dataPack
Každý soubor pro import má kořenový element <dat:dataPack>. Uvnitř je jeden
nebo víc <dat:dataPackItem> a v každém právě jeden doklad. Do jednoho souboru
se tak vejde libovolný počet faktur.
<?xml version="1.0" encoding="Windows-1250"?>
<dat:dataPack xmlns:dat="http://www.stormware.cz/schema/version_2/data.xsd"
xmlns:inv="http://www.stormware.cz/schema/version_2/invoice.xsd"
xmlns:typ="http://www.stormware.cz/schema/version_2/type.xsd"
id="import-2026-09" ico="12345678" application="Můj e-shop"
version="2.0" note="Faktury ze září">
<dat:dataPackItem id="FV2026-042" version="2.0">
<inv:invoice version="2.0">
<inv:invoiceHeader>
<inv:invoiceType>issuedInvoice</inv:invoiceType>
<inv:date>2026-09-28</inv:date>
<inv:dateTax>2026-09-28</inv:dateTax>
<inv:dateDue>2026-10-12</inv:dateDue>
<inv:text>Fakturujeme vám zboží dle objednávky</inv:text>
<inv:partnerIdentity>
<typ:address>
<typ:company>Odběratel a.s.</typ:company>
<typ:city>Brno</typ:city>
<typ:street>Masarykova 1</typ:street>
<typ:zip>60200</typ:zip>
<typ:ico>87654321</typ:ico>
<typ:dic>CZ87654321</typ:dic>
</typ:address>
</inv:partnerIdentity>
</inv:invoiceHeader>
<inv:invoiceDetail>
<inv:invoiceItem>
<inv:text>Hrnek 0,3 l</inv:text>
<inv:quantity>2</inv:quantity>
<inv:unit>ks</inv:unit>
<inv:rateVAT>high</inv:rateVAT>
<inv:homeCurrency>
<typ:unitPrice>199</typ:unitPrice>
</inv:homeCurrency>
</inv:invoiceItem>
</inv:invoiceDetail>
</inv:invoice>
</dat:dataPackItem>
</dat:dataPack> | Atribut dataPack | Povinný | Význam |
|---|---|---|
| id | ano | identifikace souboru; spolu s id položek slouží ke kontrole duplicit |
| ico | ne | IČ firmy, pro kterou je XML určeno — musí souhlasit s otevřenou účetní jednotkou |
| application | ano | název programu, který soubor vytvořil; zobrazí se v agendě XML Import |
| version | ano | verze formátu, vždy 2.0 |
| note | ano | poznámka; zobrazí se u importu |
Každá agenda má vlastní jmenný prostor a vlastní schéma, všechna na adrese
http://www.stormware.cz/schema/version_2/…. Společné typy (adresa, částky) jsou
v prostoru s prefixem typ:. Prefixy si můžeš zvolit, rozhoduje URI — jak to
funguje, vysvětluje kapitola Jmenné prostory.
| Element v dataPackItem | Agenda POHODY |
|---|---|
| inv:invoice | faktury vydané i přijaté, zálohové faktury, dobropisy (podle invoiceType) |
| adb:addressbook | adresář |
| ord:order | objednávky |
| stk:stock | zásoby |
| vch:voucher | pokladní doklady |
| int:intDoc | interní doklady |
| pri:prijemka, pro:prodejka, pre:prevodka | příjemky, prodejky, převodky |
Formát hodnot
- Datum je ve formátu XSD
RRRR-MM-DD, desetinná čísla s tečkou. - Sazba DPH položky se neuvádí procentem, ale kódem v
rateVAT:
| rateVAT | Sazba |
|---|---|
| none | bez DPH |
| high | základní sazba |
| low | snížená sazba |
| historyHigh | historická základní sazba |
- Druh faktury určuje
invoiceType:issuedInvoice(vydaná),receivedInvoice(přijatá),issuedCreditNotice(dobropis),issuedAdvanceInvoice(zálohová) a další. - Kódování: Stormware ve svých schématech i vzorových souborech používá
Windows-1250. Hlavní je, aby deklarace v prologu odpovídala skutečnému kódování souboru.
Odpověď responsePack
Po importu vytvoří POHODA soubor s odpovědí. Kořenem je <rsp:responsePack> se
stejným id jako importovaný dataPack a pro každou položku jeden
<rsp:responsePackItem>. Atribut state má hodnotu
ok, nebo error.
<rsp:responsePack xmlns:rsp="http://www.stormware.cz/schema/version_2/response.xsd"
version="2.0" id="import-2026-09" state="ok">
<rsp:responsePackItem version="2.0" id="FV2026-042" state="ok">
…číslo a ID dokladu, který POHODA vytvořila, případně popis chyby…
</rsp:responsePackItem>
</rsp:responsePack>
Když importuješ automaticky, odpověď vždy zpracuj: u každé položky zkontroluj
state a číslo vytvořeného dokladu si ulož k objednávce. Soubory odpovědí ukládá
POHODA do výstupní složky (bez nastavení do podsložky Response).
Časté chyby a kontrola před importem
| Problém | Příčina a řešení |
|---|---|
| Import odmítne soubor pro jinou firmu | atribut ico neodpovídá IČ otevřené účetní jednotky |
| Místo diakritiky nesmyslné znaky | deklarované kódování neodpovídá skutečnému; soubor v UTF-8 nesmí mít v deklaraci windows-1250 a naopak |
| Doklad se neimportoval podruhé | kontrola duplicit podle id v dataPack a dataPackItem; nový import potřebuje nové id |
| Chyba schématu u elementu | elementy mají pevné pořadí dané XSD; zkontroluj soubor proti schématu dřív, než ho importuješ |
| Neznámý element nebo prefix | chybí nebo nesouhlasí deklarace jmenného prostoru (inv:, typ: …) |
Schémata Pohody jsou veřejná na stormware.cz
a na stejném webu najdeš i vzorové soubory pro každou agendu. Nejdřív soubor zkontroluj v
XML validátoru — chybu zápisu najde hned. Schéma Pohody se ale skládá z
desítek souborů, které se navzájem importují (data.xsd načítá schémata všech
agend), takže validaci proti němu spusť lokálně: stáhni všechna schémata do jedné složky a
použij xmllint --noout --schema data.xsd faktura.xml. Chyby ve struktuře uvidíš s
číslem řádku dřív, než je nahlásí POHODA. Když máš data v jiném XML (třeba
feed z e-shopu), převedeš je do formátu Pohody šablonou
XSLT.
A co Money S3?
Money S3 má vlastní XML formát, se kterým pracuje funkce XML přenosy (rozšířené
možnosti nabízí modul XMLDE). Kořenem souboru je <MoneyData> s IČ agendy v
atributu ICAgendy a doklady jsou v seznamech jako
<SeznamFaktVyd> (faktury vydané). Na rozdíl od Pohody formát nepoužívá
jmenné prostory a vzorové soubory jsou v UTF-8.
XSD schémata najdeš ve složce programu Data/XMLDE/Schemas nebo ke stažení na
money.cz, spolu se vzorovými soubory a
dokumentací. Formáty Pohody a Money S3 spolu kompatibilní nejsou — pro přenos mezi nimi
potřebuješ převod, nejlépe šablonou XSLT. Univerzální cestou pro faktury mezi různými programy
je formát ISDOC, který umějí oba.