Par Kristijan Sekereš

EET 2.0 en Tchéquie au 1er janvier 2027 : ce que doivent faire les logiciels de caisse et de borne sur mesure

Carte de paiement insérée dans un terminal portable sur une table de restaurant

L'enregistrement des ventes revient en Tchéquie. Le président Petr Pavel a signé la loi EET 2.0 le 17 septembre 2026, et l'annonce de l'Administration financière est claire sur la date : l'obligation d'enregistrer les ventes commence le 1er janvier 2027. Elle couvre les paiements en contact direct entre l'entreprise et le client, y compris tous les paiements en espèces. Espèces, carte, téléphone ou QR code : si le client paie en personne ou dans vos locaux, la vente part vers l'administration fiscale au moment même où elle a lieu.

Pour la plupart des petits commerçants, cela se traduit par une mise à jour de l'éditeur ou par une application web gratuite de l'État. Pour les chaînes qui font tourner leur propre logiciel de caisse, des bornes en libre-service ou une application de paiement que le personnel transporte dans la salle, c'est un projet d'intégration, et il reste environ 90 jours. Cet article s'adresse à elles.

Ce qui a changé depuis la première EET

L'EET d'origine a été supprimée en 2022. L'EET 2.0 garde l'idée centrale (chaque vente concernée est envoyée en ligne et fait l'objet d'un accusé de l'État) et allège beaucoup le reste :

  • Des données minimales. L'ancien système ventilait chaque vente par taux de TVA. L'EET 2.0 envoie un seul total, TVA comprise, quels que soient les taux.
  • Pas d'obligation de ticket. Les entreprises n'ont plus à émettre de ticket aux fins de l'EET, et le code d'accusé n'a pas à y figurer.
  • Un champ plus étroit. Seuls les paiements en contact direct entre le client et l'entreprise sont enregistrés ; l'ancien système couvrait un éventail plus large de paiements.
  • Une option gratuite de l'État. MOJE eet, une application web pour les plus petites entreprises, ainsi qu'une dispense appelée EET OFF pour certains entrepreneurs individuels au forfait.

Le changement technique est plus important que la liste ne le laisse penser. Le transport est connu : SOAP 1.1 sur HTTPS avec des signatures WS-Security, comme avant. Le message, lui, ne l'est pas. La nouvelle interface est en version 4.1, l'ancienne en 3.1, et la spécification indique que les changements de 2026 « sont incompatibles avec le système précédent ». La présentation du séminaire pour les développeurs recense comme supprimés le code de sécurité BKP, l'indicateur de mode simplifié et les éléments de TVA. L'ancien code EET sert de référence pour la tuyauterie, et à rien de plus.

Ce qui entre dans le champ

La page officielle sur qui doit enregistrer ses ventes pose trois conditions : le paiement est un paiement en contact direct ou un paiement en espèces quel qu'il soit, il s'agit d'un revenu professionnel, et aucune exemption ne s'applique.

Un paiement en contact direct a lieu soit en contact personnel avec vous ou votre personnel, soit dans vos locaux ou votre véhicule en lien avec le bien ou le service. La présentation du séminaire dit expressément que la seconde règle vise les caisses en libre-service et les locaux en libre-service. Une borne dans votre magasin est dans le champ, même si aucun salarié ne touche à la transaction. Les espèces sont toujours enregistrées, même en dehors de vos locaux, sauf le paiement contre remboursement encaissé par un service postal.

Le moyen de paiement n'a pas d'importance. Espèces, carte, QR code, virement ou prélèvement effectué au point de vente, crypto-actifs, cartes cadeaux, titres-restaurant et cartes prépayées figurent tous sur la liste.

Les paiements à distance sont hors champ : une boutique en ligne payée par une passerelle de paiement, ou une facture que le client règle depuis son bureau. Ce qui compte, c'est la façon dont l'argent a réellement circulé, pas ce que dit la facture. Si un client paie 200 CZK par carte au comptoir et les 800 CZK restants par virement depuis chez lui le lendemain, seuls les 200 CZK sont enregistrés.

Les distributeurs automatiques qui constituent des locaux à part entière (la machine à café est l'exemple officiel) sont exemptés, de même que les stands en libre-service situés hors de vos locaux où l'enregistrement serait impraticable. La liste des exemptions couvre aussi, entre autres, les organismes publics, les banques, les jeux d'argent et l'énergie.

Qui peut se passer de l'essentiel

Les micro-entreprises peuvent utiliser MOJE eet, lancée le 1er décembre 2026. Le séminaire pour les développeurs de juin la destinait aux entreprises comptant jusqu'à deux unités d'enregistrement et deux salariés. Les entrepreneurs individuels au forfait de la première tranche dont les revenus ne dépassent pas 1 million de CZK peuvent s'en dispenser par EET OFF.

Les entreprises équipées d'une caisse du marché devraient recevoir une mise à jour de leur éditeur. Demandez quand elle sortira et ce qui se passe en cas de panne, puis inscrivez-vous sur le portail fiscal et installez le certificat.

Tous les autres doivent poursuivre leur lecture : logiciel de caisse maison ou personnalisé, bornes que vous avez développées vous-même, applications de paiement du personnel, ou groupe dans lequel un même paiement peut appartenir à deux sociétés.

Ce qu'il faut construire

Tout se trouve sur la page des documents pour les développeurs : la description de l'interface (la version anglaise n'a pas de valeur contraignante), le XSD et le WSDL, des exemples de requêtes signées et des certificats pour l'environnement de test (playground).

Unités d'enregistrement et identifiants d'appareil

Chaque message porte un identifiant d'unité d'enregistrement. Vous créez les unités (un magasin, un stand mobile, un véhicule de livraison) dans DIS+, le portail fiscal, et le système attribue un numéro à chacune. Les chaînes peuvent importer les unités en masse, et les changements doivent être déclarés dans les 15 jours. Votre caisse a besoin d'une correspondance tenue à jour entre chaque site et son identifiant d'unité, ainsi que d'un identifiant d'appareil de 20 caractères au plus, unique au sein de l'unité.

Les certificats

C'est là que les systèmes sur mesure perdent généralement du temps. La procédure relative aux certificats détaille les étapes :

  • La paire de clés est générée par l'autorité de certification de l'EET, pas sur votre appareil. Vous téléchargez un fichier PKCS#12 protégé par mot de passe, disponible jusqu'à ce que vous confirmiez le téléchargement, et pendant 30 jours au maximum.
  • Le fichier utilise l'ancien chiffrement 3DES, par égard pour les caisses plus anciennes. Le document prévient qu'il peut ne pas se charger sous OpenSSL 3 sans le fournisseur legacy, et recommande de le réempaqueter ou de placer la clé dans un coffre-fort numérique.
  • Les certificats sont valables un an. Un certificat peut servir un appareil ou plusieurs ; le nombre que vous en émettez relève de votre décision.
  • Le renouvellement peut être automatisé par une API REST : un JWT de courte durée signé avec le certificat à renouveler, puis interrogation de la demande, téléchargement, accusé. L'autorité recommande de renouveler deux à trois semaines avant l'expiration. Une fois le certificat expiré, la voie de l'API est fermée, et quelqu'un doit le renouveler à la main.
  • La protection de la clé privée est une obligation légale du contribuable. Un même fichier de clé copié sur quarante caisses, c'est une révocation qui ne demande qu'à arriver.

Le message de données

L'en-tête contient un nouvel UUID pour chaque tentative, l'heure d'envoi, un indicateur de première tentative et un indicateur facultatif de vérification. La partie données contient l'EIČ du contribuable, l'identifiant d'unité, l'identifiant d'appareil, un numéro de séquence (jusqu'à 25 caractères, unique par unité et par appareil), l'heure de la vente avec son décalage horaire, et le total en CZK avec exactement deux décimales. Deux montants facultatifs couvrent les rechargements et les consommations prépayés ; deux autres champs couvrent l'enregistrement pour le compte d'un autre contribuable.

Enregistrez ce qui a réellement été encaissé : une addition en espèces de 78,90 arrondie à 79 est enregistrée à 79,00, la même addition réglée par carte à 78,90. Une addition payée en partie en titres-restaurant et en partie par carte fait l'objet d'un seul message portant le total.

Signature et envoi

Chaque message est signé par XML Signature dans l'en-tête WS-Security : canonicalisation exclusive, condensat SHA-256, RSA-SHA256, certificat joint sous forme de BinarySecurityToken, et seul le corps SOAP est signé. N'ajoutez pas d'en-têtes supplémentaires comme Timestamp ou WS-Addressing : les messages de plus de 12 Ko sont rejetés, et un message qui ressemble à une attaque peut ne recevoir aucune réponse. TLS 1.2 ou supérieur est obligatoire, et le client doit vérifier le certificat du serveur. La production utilise un équilibrage par DNS : résolvez le nom d'hôte à chaque connexion au lieu de figer une adresse IP.

Depuis la version 1.2, le point d'accès prend en charge CORS, si bien qu'une caisse fonctionnant dans un navigateur peut l'appeler directement. Décidez où vit la clé privée avant que quiconque n'écrive ce JavaScript.

Réponses, pannes et règle des 48 heures

Un message valide reçoit une réponse synchrone avec un code d'accusé de 39 caractères (POK), signé par l'administration fiscale. Vérifiez cette signature et stockez le POK avec la vente. Un message invalide reçoit un code d'erreur ; -1 signale une anomalie temporaire : renvoyez plus tard. Les problèmes moins graves reviennent sous forme d'avertissements, dont l'un quand l'heure de la vente dépasse de plus de deux heures l'horloge du serveur. Les horloges des bornes dérivent. Synchronisez-les.

Vous fixez vous-même le délai d'attente de la réponse, qui ne peut pas être inférieur à deux secondes. Si aucun POK n'arrive à temps, la vente part dans une file d'attente. Selon la présentation du séminaire, le renvoi réutilise le corps d'origine avec un nouvel en-tête : nouvel UUID, indicateur de première tentative à false, nouvelle heure d'envoi, heure de vente d'origine. Il part dès que la connexion est rétablie, et au plus tard 48 heures après la vente. L'obligation ne s'éteint pas non plus au bout de 48 heures : un message en retard reste dû.

La file doit donc survivre à un redémarrage et déclencher une alerte bien avant l'échéance des 48 heures. Encore un piège : si le certificat expire alors que des ventes sont en attente, elles doivent être signées avec un certificat en cours de validité.

Remboursements, corrections et doublons

Un remboursement ou une annulation est un nouveau message au montant négatif, daté du moment présent et non lié à l'original. Une correction est soit une annulation suivie du bon message, soit un message unique portant la différence. Les doublons sont détectés sur six champs (EIČ, unité, appareil, numéro de séquence, heure de la vente et total) : un renvoi avec le même corps est donc sans risque. Un renvoi qui régénère le numéro de séquence, c'est une seconde vente.

Les tickets

Moins de travail que sous la première EET : aucun ticket n'est exigé aux fins de l'EET, et le POK n'a pas à y figurer. Supprimez tout code qui bloque l'impression en attendant le POK. Là où vous émettez des tickets au titre du droit de la consommation, gardez le numéro de séquence EET aligné sur le numéro du ticket ; la spécification note qu'en pratique, les deux coïncident généralement.

Les cas limites que rencontrent les chaînes

  • Cartes prépayées, bracelets et porte-monnaie électroniques : le rechargement et chaque dépense sont enregistrés, avec les champs de montant supplémentaires renseignés.
  • Un paiement, deux contribuables : l'exemple de la station-service présenté au séminaire (du carburant vendu pour le compte d'une autre société, du café pour votre propre compte) exige deux messages, chacun portant les données de son propre contribuable.

Le calendrier

  • 5 juin 2026 : publication de la documentation technique.
  • 1er juillet 2026 : ouverture du playground. Entre le 26 juillet et le 26 août, il a traité 170 389 transactions de test provenant de 624 adresses IP clientes, dont 94,6 % traitées avec succès.
  • 1er novembre 2026 : l'EET dans DIS+, les unités d'enregistrement et les certificats de production.
  • 1er décembre 2026 : lancement de MOJE eet.
  • 1er janvier 2027 : l'obligation démarre pour tout le monde en même temps, sans phasage.

Le calendrier officiel qualifie janvier de mois pilote, puis ajoute qu'il s'agira déjà d'un enregistrement normal. Une annonce antérieure présentait le pilote comme volontaire. Tant que ce point n'est pas clarifié, prévoyez d'envoyer de vrais messages dès le 1er janvier.

Il reste une étape formelle : lors de l'annonce de la signature, le 22 septembre, la publication au Recueil des lois (Sbírka zákonů) restait à venir. C'est une formalité.

Un plan sur 90 jours

Octobre : périmètre et développement.

  1. Recensez tous les points où de l'argent change de mains : caisses, bornes, terminaux portables, commandes à table payées sur place, vos propres chauffeurs qui encaissent des espèces. Rattachez chacun à un contribuable et à une future unité d'enregistrement.
  2. Choisissez l'architecture : signer sur chaque appareil, ou faire tourner un service unique qui signe et met en file d'attente pour tous. Le système accepte les deux. Pour une chaîne, le central l'emporte généralement : un seul magasin de clés, une seule file, un seul endroit à surveiller.
  3. Développez le constructeur de messages, le signataire et la file d'attente sur le playground avec les certificats de test partagés. Validez chaque message par rapport au XSD dans votre intégration continue.

Novembre : identifiants de production.

  1. À partir du 1er novembre, activez l'EET dans DIS+, créez les unités (en import groupé si vous en avez beaucoup) et émettez les certificats de production. Placez-les dans un coffre-fort numérique, pas sur des clés USB.
  2. La spécification fixe au 1er novembre 2026 la première date de vente valable en production. Envoyez des messages en mode vérification avec le vrai certificat : ils testent toute la chaîne sans enregistrer de vente.
  3. Terminez les remboursements, les flux prépayés, le renouvellement des certificats et les alertes sur l'âge de la file.

Décembre : répétition.

  1. Déployez sur un site. Débranchez le câble réseau au pic du déjeuner et regardez la file se vider ensuite.
  2. Testez en charge votre heure la plus chargée en passant par le signataire.
  3. Gelez les modifications avant le pic de Noël. Expliquez au personnel à quoi ressemble une panne ; si la file fonctionne, ils n'ont rien à faire.

Janvier : le mois pilote.

  1. Rapprochez chaque jour. Comparez les totaux de vos caisses avec les sommes agrégées dans DIS+, où vous pouvez aussi demander un export CSV détaillé contenant chaque POK.

Où trouver de l'aide

Nous construisons et modifions des intégrations de caisse : le constructeur de messages et le signataire, la file d'attente en cas de panne, le stockage et le renouvellement des certificats, la correspondance des unités et le rapprochement avec DIS+. Quand le logiciel de caisse est ancien et que ses auteurs sont passés à autre chose, notre service de maintenance de systèmes anciens est le point de départ de ce travail. Si votre propre équipe connaît le système mais manque de bras avant janvier, nous pouvons y ajouter des développeurs.

Si vous exploitez vos propres caisses ou bornes en Tchéquie et n'avez pas encore envoyé de message au playground, écrivez à office@c9group.dev.