EET automaticky přes REST API

Obchodní firmy již standardně používají automatizované zpracování elektronických objednávek. Především e-shopy automaticky vystavují faktury, obesílají zákazníky informačními zprávami atp. Bude se něco měnit se zavedením Elektronické evidence tržeb (EET)?

Budou moci obchodníci i nadále využívat účetní systémy pro robotické zpracování objednávek? Uživatelé ABRA FlexiBee mohou zůstat v klidu i po 1. prosinci 2016, kdy odstartovala první vlna EET. REST API ABRA FlexiBee (od verze 2016.4.) umožňuje evidenci tržeb bez jakéhokoliv ručního zásahu uživatele systému.

Začínáte s EET? Prostudujte si video-návod Jak odesílat doklady do EET.


Nastavení

Pro využívání EET v ABRA FlexiBee je nutné provést několik nastavení:

  1. Do evidence Certifikátů nahrajte platný certifikát získaný od Finanční správy ČR.
  2. V průvodci vyberte možnost, že se jedná o EET certifikát a vyplňte označení provozovny, ke které se vztahuje.
  3. V nastavení firmy (Autom. operace – EET) zvolte mód komunikace a pokud máte jen jednu provozovnu tak vyplňte výchozí označení provozovny a limit odpovědi. Zbývající údaje je možné předvyplnit na typech dokladů.

Doklady

ABRA FlexiBee umožňuje do EET odesílat vydané faktury, prodejní kasu a pokladní doklady. Pro všechny tyto evidence byla přidána nová pole. Je na vás, jestli si přednastavíte potřebné údaje v typu dokladu nebo je budete vyplňovat až při importu jednotlivých dokladů.

Seznam polí přidaných kvůli EET

eetTypK – pole určuje, zda doklad spadá do EET nebo nikoliv a případně v jakém režimu: běžný nebo zjednodušený. Je do něho možné zapisovat, a pokud má být doklad odeslán, je nutné zvolit jednu z možností eetTyp.anoBezny nebo eetTyp.anoZjednoduseny.

eetProvozovna – pole obsahuje označení provozovny ve které byl doklad vystaven. Označení provozovny musí být celočíselné. Podle tohoto pole také dochází k vyhledávání certifikátu pro podpis zprávy.

eetPokladniZarizeni – pole obsahuje jednoznačný identifikátor pokladního zařízení, na němž byl doklad vystaven. Jedná se o textové pole o délce 20 znaků.

eetDatCasTrzby – evidence data a času evidované tržby.

eetPkp – pole obsahující podpisový kód pokladníka (PKP). Pokud chcete aby doklad odeslala ABRA FlexiBee, toto pole nevyplňujte. Při prvním pokusu o odeslání do něj systém zapíše vygenerované PKP. Pokud toto pole vyplníte bude ABRA FlexiBee předpokládat, že již první pokus o odeslání proběhl v jiném systému.

eetBkp – pole obsahuje bezpečnostní kód poplatníka (BKP). Pole je pouze pro čtení, protože se jedná o SHA-1 otisk hodnoty PKP.

eetFik – v tomto poli je uložen fiskální identifikační kód (FIK), který ABRA FlexiBee k tržbě obdržela. Pokud se má ABRA FlexiBee pokoušet o jakékoliv odesíláním, tak toto pole nevyplňujte. V případě, že ho vyplníte, bude k tomuto dokladu ABRA FlexiBee přistupovat jako by doklad byl již odeslán.

eetStavK – stav odeslání dokladu do EET je zaznamenám v poli eetStavK. Jedná se o pole jen pro čtení. Má sloužit k rychlému nalezení dokladů, které ještě nebyly do EET odeslány.

Ukázkové XML

EET doklad ve formátu XML tedy vypadá například takto:

<winstrom>
  <pokladni-pohyb>
    <!-- údaje potřebné pro vystavení pokladního dokladu -->
    <id>ext:EET-UKAZKA:1</id>
    <typDokl>code:STANDARD</typDokl>
    <pokladna>code:POKLADNA KČ</pokladna>
    <bezPolozek>true</bezPolozek>
    <sumZklZakl>1000</sumZklZakl>
    <!-- údaje pro správné odeslání dokladu do EET -->
    <eetTypK>eetTyp.anoBezny</eetTypK>
    <eetProvozovna>123</eetProvozovna>
    <eetPokladniZarizeni>pokladna-1</eetPokladniZarizeni>
  </pokladni-pohyb>
</winstrom>

Ukázkový JSON

Všechna pole je samozřejmě možné vyplňovat i při použití JSON formátu.

{
{
  "winstrom": {
    "pokladni-pohyb": {
      "id": "ext:EET-UKAZKA:1",
      "typDokl": "code:STANDARD",
      "pokladna": "code:POKLADNA KČ",
      "bezPolozek": "true",
      "sumZklZakl": "1000",
      "eetTypK": "eetTyp.anoBezny",
      "eetProvozovna": "123",
      "eetPokladniZarizeni": "pokladna-1"
    }
  }
}

Poznámka: Pokud máte korektně nastaveny hodnoty v typech dokladů, není nutné položky měnit.

Odeslání dokladu

Jak odeslat doklad do elektronické evidence tržeb? ABRA FlexiBee nabízí několik způsobů automatizovaného odeslání.

Action odeslat-eet

První možností je využití action=“odeslat-eet“. V elementu s touto akcí by neměly být žádné další změny. Akcí vyvoláme odeslání jednoho konkrétního dokladu.
Ukázkové XML tedy bude vypadat:

<winstrom>
   <pokladni-pohyb action=”odeslat-eet”>
    <id>ext:EET-UKAZKA:1</id>
  </pokladni-pohyb>
</winstrom>

V JSON zapíšeme odeslání:

{
  "winstrom": {
   "pokladni-pohyb": {
    "@action": "odeslat-eet",
    "id": "ext:EET-UKAZKA:1"
   }
  }
}

Automatické odeslání dokladů serverem

Další možností je nechat systém najít a odeslat všechny neodeslané doklady z dané evidence. K provedení této operace je potřeba PUT nebo POST request na URL končící /automaticky-odeslat-neodeslane-eet.
https://demo.flexibee.eu/c/demo/pokladni-pohyb/automaticky-odeslat-neodeslane-eet
Automatické odeslání je možné i u jednotlivých dokladů. URL pak musí navíc obsahovat identifikátor záznamu, který se má odeslat a akci /automaticky-odeslat-eet (/{id}/automaticky-odeslat-eet). Zde je nutné použít PUT request.
https://demo.flexibee.eu/c/demo/pokladni-pohyb/14/automaticky-odeslat-eet
Ani jedna z operací nečeká na výsledek. Pouze oznámí serveru, které doklady se mají odeslat.

Pokud se má čekat na výsledek odesílání, je možné použít URL obsahující identifikátor záznamu a končící na /odeslat-eet.
https://demo.flexibee.eu/c/demo/pokladni-pohyb/14/odeslat-eet
U tohoto requestu je opět podporována metod PUT i POST.

Generování PDF tiskopisu

Také při generování vybraných tiskopisů se ABRA FlexiBee pokusí o odeslání dokladu do EET.
Vybrané tiskopisy jsou:

  • oba zjednodušené daňové doklady – dostupné na všech podporovaných evidencích,
  • faktura – ve vydaných fakturách a na prodejní kase,
  • pokladní doklad – v pokladně,
  • prodejka za hotové – v pokladně.

Stačí tedy založit správně doklad a pak si požádat o jeho PDF tiskopis.
https://demo.flexibee.eu/c/demo/pokladni-pohyb/865.pdf?report-name=pokDoklad$$SUM

Odeslaný doklad není možné měnit

Na dokladu odeslaném do EET, není možné měnit některá pole. Jedná se o pole, která by mohla ovlivnit odeslanou tržbu. Částky, měna, nově přidaná EET pole a několik dalších. Do odeslaného dokladu není možné přidávat nové položky ani je mazat. Také na položkách jsou některá pole po odeslání nezměnitelná. Například základ a DPH.

Doporučujeme zkontrolovat programy, ať dělají jen to, co mají a nemodifikují staré doklady! 🙂

Ukázky v tomto článku jsou pro evidenci pokladní pohyb. V případě zbývajících dvou evidencí (faktury vydané a prodejní kasa) je veškerá funkčnost stejná, jen je nutné nahradit evidenci pokladni-pohyb.


Začínáte s EET? Prostudujte si video-návod Jak odesílat doklady do EET.