XML import do Pohody a Money S3

Účetní program POHODA umí přes XML načíst faktury, objednávky, adresy i skladové zásoby — třeba z e-shopu nebo z vlastní aplikace. Kapitola ukazuje, jak soubor pro import vypadá, jaká pravidla musí splnit, jak číst odpověď a čím se liší XML pro Money S3.

Autor: Aktualizováno

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.

Vydaná faktura s jednou položkou — smyšlené údaje, validní vůči data.xsd
<?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 dataPackPovinnýVýznam
idanoidentifikace souboru; spolu s id položek slouží ke kontrole duplicit
iconeIČ firmy, pro kterou je XML určeno — musí souhlasit s otevřenou účetní jednotkou
applicationanonázev programu, který soubor vytvořil; zobrazí se v agendě XML Import
versionanoverze formátu, vždy 2.0
noteanopozná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 dataPackItemAgenda POHODY
inv:invoicefaktury vydané i přijaté, zálohové faktury, dobropisy (podle invoiceType)
adb:addressbookadresář
ord:orderobjednávky
stk:stockzásoby
vch:voucherpokladní doklady
int:intDocinterní doklady
pri:prijemka, pro:prodejka, pre:prevodkapří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:
rateVATSazba
nonebez DPH
highzákladní sazba
lowsnížená sazba
historyHighhistorická 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.

Zjednodušeno
<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émPříčina a řešení
Import odmítne soubor pro jinou firmuatribut ico neodpovídá IČ otevřené účetní jednotky
Místo diakritiky nesmyslné znakydeklarované 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 elementuelementy mají pevné pořadí dané XSD; zkontroluj soubor proti schématu dřív, než ho importuješ
Neznámý element nebo prefixchybí 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.