EET2.DLL

EET2.DLL je COM knihovna pro komunikaci se serverem elektronické evidence tržeb dle specifikace z června 2026.

  • Funkční napojení: Plná podpora EET dle specifikace 4.1 (produkční i testovací prostředí).
  • Univerzální použití: Lze volat z libovolného vývojového prostředí, které pracuje s COM objekty, např. z Visual FoxPro, Delphi, PowerBuilder, Excelu nebo přímo z .Net.
  • Snadná migrace: Rozhraní knihovny přímo navazuje na osvědčenou předchozí verzi EET.dll.
  • Zabezpečení: Moderní TLS komunikace 1.2 (Windows 7, 8, 10 a 11) a 1.3 (Windows 11), striktní kontrola důvěryhodnosti odpovědi z EET serveru.
  • Špičková kryptografie: Podpora RSA a šifry eliptických křivek (ECDH) s AES klíčem 128/256 bit v módu GCM.
  • Flexibilní předávání dat: Možnost předávat numerické parametry jako řetězce (řeší problémy s desetinnou čárkou/tečkou v různých OS).
  • Automatizace: Automatický převod DateTime na DateTimeOffset.
  • Pokročilé síťové funkce: Nastavení pro netransparentní proxy, nastavitelný TimeOut pro odpověď.
  • Architektura: Verze 32-bit i 64-bit, generováno se silným jménem (Assembly signed with a strong name).
  • Práce s certifikáty: Volba úložiště (UserStore / MachineStore) a volba přístupu (FriendlyName / ByteArray / Soubor PFX).
  • Komfort při vývoji: Publikované rozhraní pro IntelliSense, vlastní integrovaný generátor UUID.
  • Systémová nezávislost: Využití nativních kryptografických poskytovatelů přímo z operačního systému, není zapotřebí žádná další externí knihovna.
  • Licencování softwaru: Licence je vázána na vývojáře a umožňuje libovolný počet instalací u koncových klientů.
  • Distribuce komponenty: Oddělená instalace od samotné registrace (pomocí MSI balíčku a BAT souboru), což je ideální pro starší operační systémy nebo prostředí s přísnou politikou UAC. SetUp lze nahradit vlastním instalátorem

    Demo verze komunikující pouze s PlayGround EET 4.1: Setup-demo.zip
    Instalace: instalace.txt
    Popis vlastností a metod: Popis-EET2.zip
    Certifikáty: https://eet.gov.cz/pro-vyvojare/

Vlastnosti a metody:

CertByte CertExpiration CertFrName CertHeslo CertSb
DateToOffset EIC EICPover EETIn EETInOff
EETOut EETOutOff EETVer Exception GetUUID
Chyba_Text IDJednotky IDPokl IsTest IsTestSpecified
Odpoved oHlav (objekt) oChyba (objekt) oPolo (objekt) Overeni
POK PovereniVicePopl PubKey ResponseTrusted SetProxy
SetT_ SetTLS SetURL StoreLocation T_cerp_Zuct
T_Urc_Cerp TimeOut TLSVer ToOffset Trzba
Trzba_String UUID VarovaniKod(i) VarovaniLen VarovaniText(i)
Ver VynulCerpani Vysl Zprava ZpravaPodepsana

Příklady použití:

Visual Foxpro

* Inicializace objektu pro komunikaci s EET v4 a nastavení parametrů prostředí.

Local pg As Boolean, eet As Object, luuid As String, odpov As String
pg = .T. && Příznak pro testovací prostředí (Playground)

* Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
eet = Createobject("jadu.eet2")
? "Verze knihovny: " + eet.Ver

* Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí

If pg
    eet.SetURL = 'https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4'
    eet.CertSb = 'c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12'
    eet.CertHeslo = 'aaaa1111'
Else
    eet.SetURL = 'https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4'
    eet.CertSb = 'c:\vfp\eet2\Certifikat-Produkcni.p12'
    eet.CertHeslo = 'HesloKProdukcnimuCertifikatu'
Endif

* Identifikační údaje jednotky a pokladního zařízení

eet.IDJednotky = 273          && Číslo provozovny
eet.IDPokl = '273/o'          && Označení pokladního zařízení
eet.EIC = 'CZ00000019'        && EIČ poplatníka

* Generování unikátního identifikátoru UUID zprávy

luuid = eet.GetUUID()
? "Generované UUID: " + luuid

* Odeslání tržby s explicitně definovaným datem a časem. Pokud se vynechá, knihovna doplní datum a čas v okamžiku volání
* Parametry: UUID, PrvníZaslání(.T. / .F.), ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka

odpov = eet.Trzba(luuid, .T., '123/26', "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.20, 65.12, 3.0)

? "Odpověď (POK/chyba): " + odpov

* Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK. 
* Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním). 
Local lwarncount As Integer, i As Integer 

* Simulace odeslání tržby s datem výrazně v minulosti 

odpov = eet.Trzba(eet.GetUUID(), .T., '124/26', "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100.00, 0, 0) 
? "Odpověď: " + odpov 

* Kontrola, zda server vrátil nějaká varování 
lwarncount = eet.VarovaniLen 
If lwarncount > 0
     For i = 0 To lwarncount - 1
          ? "Varování kód: " + Transform(eet.VarovaniKod(i)) 
          ? "Varování text: " + eet.VarovaniText(i) 
     Next
Endif
    

Delphi



Procedure TForm1.Button1Click(Sender: TObject);
var
  EET: Variant;
  DatDokl, DatPosl: String;
  Result: String;

begin
  CoInitialize(nil);
  EET := CreateOleObject('JADU.EET2');
  EET.CertHeslo := 'aaaa1111'; //heslo k certifikátu
  EET.CertSb := 'c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12'; //cesta k souboru s certifikátem
  Memo1.Lines.Add(EET.Ver);
  Memo1.Lines.Add(Format('Platnost certifikatu do: %s',[EET.CertExpiration]));

  EET.IDJednotky := 273;
  EET.IDPokl := '273/o';
  EET.EIC := 'CZ00000019';

  // EET.Overeni : =True; // pouze test, nevrací POK
  EET.Overeni := False;

  DatDokl := GetDSTTime(Now);
  DatPosl := GetDSTTime(Now);

  Result := EET.Trzba('', 0, 'DOKLADTEST1', DatDokl, DatPosl ,34113, 0, 0);
  // Result := EET.Trzba('', 1, 'DOKLADTEST1', DatDokl, DatPosl ,34113, 0, 0); // opakované poslání
  Memo1.Lines.Add(Format('Vrací metoda EET.Trzba: %s',[Result]));
  Memo1.Lines.Add(Format('Vlastnost EET.POK: %s',[EET.POK]));
  Memo1.Lines.Add(Format('Vlastnost EET.Chyba_Text: %s',[EET.Chyba_Text]));
end;
    

Excel

Sub OdeslatEET()
' Účel: Inicializace objektu pro komunikaci s EET v4 a odeslání tržby z prostředí Excel VBA.
' Vytváří instanci COM knihovny jadu.eet2, nastavuje parametry a zpracovává odpověď včetně varování.

    Dim pg As Boolean
    Dim eet As Object
    Dim lUUID As String
    Dim odpov As String
    Dim lwarncount As Long
    Dim i As Long

    pg = True ' Příznak pro testovací prostředí (Playground)

    ' Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
    On Error Resume Next
    Set eet = CreateObject("jadu.eet2")
    On Error GoTo 0
    
    If eet Is Nothing Then
        MsgBox "Knihovnu 'jadu.eet2' se nepodařilo inicializovat. Zkontrolujte její registraci (regasm / regsvr32).", vbCritical
        Exit Sub
    End If

    Debug.Print "Verze knihovny: " & eet.Ver

    ' Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí
    If pg Then
        eet.SetURL = "https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
        eet.CertSb = "c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12"
        eet.CertHeslo = "aaaa1111"
    Else
        eet.SetURL = "https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
        eet.CertSb = "c:\vfp\eet2\Certifikat-Produkcni.p12"
        eet.CertHeslo = "HesloKProdukcnimuCertifikatu"
    End If

    ' Identifikační údaje jednotky a pokladního zařízení
    eet.IDJednotky = 273          ' Číslo jednotky
    eet.IDPokl = "273/o"          ' Označení pokladního zařízení
    eet.EIC = "CZ00000019"        ' EIČ poplatníka

    ' Generování unikátního identifikátoru UUID zprávy
    lUUID = eet.GetUUID()
    Debug.Print "Generované UUID: " & lUUID

    ' Odeslání tržby s explicitně definovaným datem a časem.
    ' Parametry: UUID, PrvníZaslání(True/False), ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka, ZákladDaně, Daň
    odpov = eet.Trzba(lUUID, True, "123/26", "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.2, 65.12, 3#)
    Debug.Print "Odpověď (POK/chyba): " & odpov

    ' --- Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK ---
    ' Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním).

    ' Simulace odeslání tržby s datem výrazně v minulosti
    odpov = eet.Trzba(eet.GetUUID(), True, "124/26", "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100#, 0, 0)
    Debug.Print "Odpověď: " & odpov

    ' Kontrola, zda server vrátil nějaká varování
    lwarncount = eet.VarovaniLen
    If lwarncount > 0 Then
        For i = 0 To lwarncount - 1
            Debug.Print "Varování kód: " & CStr(eet.VarovaniKod(i))
            Debug.Print "Varování text: " & eet.VarovaniText(i)
        Next i
    End If

    ' Vyčištění objektu z paměti
    Set eet = Nothing
End Sub
    

VB.net

' Povolení pozdní vazby (Late Binding) pro dynamické COM objekty
Option Strict Off

Imports System

Module EETExample
    Sub Main()
        ' Účel: Inicializace objektu pro komunikaci s EET v4 a odeslání tržby z prostředí VB.NET.
        ' Vytváří instanci COM objektu jadu.eet2, nastavuje parametry a zpracovává odpovědi a varování.

        Dim pg As Boolean = True ' Příznak pro testovací prostředí (Playground)
        Dim eet As Object
        Dim lUUID As String
        Dim odpov As String

        ' Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
        Try
            eet = CreateObject("jadu.eet2")
        Catch ex As Exception
            Console.WriteLine("Knihovnu 'jadu.eet2' se nepodařilo inicializovat. Zkontrolujte registraci přes regasm.")
            Exit Sub
        End Try

        Console.WriteLine("Verze knihovny: " & eet.Ver)

        ' Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí
        If pg Then
            eet.SetURL = "https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
            eet.CertSb = "c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12"
            eet.CertHeslo = "aaaa1111"
        Else
            eet.SetURL = "https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
            eet.CertSb = "c:\vfp\eet2\Certifikat-Produkcni.p12"
            eet.CertHeslo = "HesloKProdukcnimuCertifikatu"
        End If

        ' Identifikační údaje jednotky a pokladního zařízení
        eet.IDJednotky = 273          ' Číslo provozovny
        eet.IDPokl = "273/o"          ' Označení pokladního zařízení
        eet.EIC = "CZ00000019"        ' EIČ poplatníka

        ' Generování unikátního identifikátoru UUID zprávy
        lUUID = eet.GetUUID()
        Console.WriteLine("Generované UUID: " & lUUID)

        ' Odeslání tržby s explicitně definovaným datem a časem
        ' Parametry: UUID, PrvníZaslání, ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka, ZákladDaně, Daň
        odpov = eet.Trzba(lUUID, True, "123/26", "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.20, 65.12, 3.0)
        Console.WriteLine("Odpověď (POK/chyba): " & odpov


        ' --- Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK ---
        ' Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním).

        ' Simulace odeslání tržby s datem výrazně v minulosti
        Dim lUUID_old As String = eet.GetUUID()
        odpov = eet.Trzba(lUUID_old, True, "124/26", "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100.00, 0, 0)
        Console.WriteLine("Odpověď: " & odpov

        ' Kontrola, zda server vrátil nějaká varování
        Dim lwarncount As Integer = eet.VarovaniLen
        If lwarncount > 0 Then
            For i As Integer = 0 To lwarncount - 1
                Console.ForegroundColor = ConsoleColor.Yellow
                Console.WriteLine("Varování kód: " & eet.VarovaniKod(i).ToString())
                Console.WriteLine("Varování text: " & eet.VarovaniText(i))
                Console.ResetColor()
            Next
        End If

        ' Uvolnění COM objektu z paměti
        If eet IsNot Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(eet)
            eet = Nothing
        End If
    End Sub
End Module
   

Minimální specifikace:

  • Windows s nainstalovaným RunTime .Net 4.8

Cena:

pro vlastní potřebu (1 počítač)1 500 Kč
pro vnitrofiremní použití (1 místo, více počítačů)4 000 Kč
pro vnitrofiremní použití (1 IČO, více míst)8 000 Kč
1 vývojář OSVČ5 000 Kč
IT firma12 500 Kč
Dodavatelé rozsáhlých ekonomických systémů, výrobci/dovozci pokladních systémů a zařízení pro stravování, platební brány a velké e-shopy25 000 Kč
Objednávka, zaslaná na mail uvedený v záhlaví této stránky, by měla obsahovat typ licence (např. 1x EET2.dll pro IT firmu) spolu s fakturačními údaji včetně IČ a DIČ.
Go to Top