Format TEIF expliqué : structure de la facture électronique tunisienne
Avec l'entrée en vigueur de l'article 53 de la Loi de Finances 2026, la facture électronique est obligatoire pour la quasi-totalité des entreprises tunisiennes — vue d'ensemble juridique et opérationnelle dans notre guide complet. Mais une facture électronique conforme ne suffit pas d'envoyer un PDF par mail : elle doit respecter le format TEIF (Tunisian Electronic Invoice Format), un schéma XML normalisé, signée électroniquement et transmise via la plateforme El Fatoora opérée par Tunisie TradeNet (TTN).
Ce guide décompose la structure TEIF champ par champ pour que vous compreniez exactement ce que votre logiciel de caisse doit produire et ce qu'un comptable, un développeur ou un auditeur doit savoir vérifier.
1. Qu'est-ce que TEIF ?
TEIF est un format XML structuré défini par TTN pour standardiser l'échange électronique de factures B2B et B2G en Tunisie. Il s'inspire des formats internationaux UBL (Universal Business Language) et CII (Cross Industry Invoice) mais ajoute des champs spécifiques à la réglementation tunisienne : matricule fiscal au format local, codes TVA nationaux, mentions légales obligatoires en français et arabe.
Concrètement, une facture TEIF est un fichier .xml qui contient :
- Un en-tête identifiant l'émetteur, le destinataire et la facture.
- Le détail des lignes (produit, quantité, prix, taxe).
- Les totaux (HT, TVA détaillée, TTC).
- Une signature électronique liée à un certificat reconnu.
- Une référence unique générée par TTN après validation.
2. Structure générale d'un fichier TEIF
Le fichier suit une arborescence XML hiérarchique. Voici la décomposition simplifiée :
- TEIF (racine)
- InvoiceHeader — métadonnées du document (numéro, date, type)
- BgmDetails — référence du message et du document
- DocumentReferences — liens vers documents amont (bon de commande, contrat)
- PartnerSection — émetteur et destinataire avec matricules fiscaux
- PaymentDetails — modalités et échéances de paiement
- LinSection — lignes de facture (une par produit ou service)
- InvoiceMoa — montants totaux (HT, TVA, TTC, droits de timbre)
- InvoiceTax — détail des taxes par taux
- AdditionalDocuments — pièces jointes éventuelles
- RefTtnVal — référence unique de validation TTN
- Signature — signature électronique XAdES
3. Champs obligatoires à connaître
InvoiceHeader
- MessageSenderIdentifier : matricule fiscal de l'émetteur (format AAAAAAA/L/CC/NNN).
- MessageReceiverIdentifier : matricule fiscal du destinataire.
- DocumentIdentifier : numéro de facture unique côté émetteur (ex.
FAC-2026-000123). - DocumentDate : date d'émission au format
YYYY-MM-DD. - DocumentType : code du type de document (facture, avoir, note de débit, etc.).
PartnerSection
Deux blocs : Sender (émetteur) et Recipient (destinataire). Chaque bloc contient :
- Raison sociale (
PartnerName). - Matricule fiscal (
PartnerIdentifier) au format tunisien. - Adresse complète (rue, code postal, ville, pays).
- Référence bancaire (pour l'émetteur, optionnelle pour le destinataire).
- Contact (téléphone, email).
LinSection (lignes de facture)
Chaque ligne de la facture est un nœud Lin contenant :
- ItemIdentifier : référence interne ou code-barres du produit.
- ItemDescription : libellé du produit ou service.
- Quantity avec unité (
UnitOfMeasure) — pièce, kg, litre, heure, etc. - UnitPrice : prix unitaire hors taxes.
- LineAmount : montant total de la ligne.
- LineTax : code TVA + taux + montant.
- LineDiscount : remise éventuelle (montant ou pourcentage).
InvoiceMoa et InvoiceTax
Ces deux blocs portent les totaux. Particularité tunisienne importante :
- Les totaux doivent être détaillés par taux de TVA (7%, 13%, 19% selon les produits) — voir notre guide TVA multi-taux pour l'affectation par catégorie.
- Les droits de timbre obligatoires (le timbre fiscal de 1 TND par facture B2B) sont déclarés séparément.
- Les retenues à la source (RAS) éventuelles ont leur propre bloc.
- Le total TTC doit correspondre exactement à la somme des lignes + taxes + timbres − remises.
Exemple de structure TEIF (extrait simplifié)
Pour rendre la structure plus concrète, voici un extrait XML simplifié d'une facture TEIF d'une parapharmacie facturant un institut de beauté pour 250 TND HT à 19% de TVA. Les valeurs sont illustratives — votre logiciel doit générer ce type de fichier automatiquement.
<?xml version="1.0" encoding="UTF-8"?>
<TEIF version="1.8.8" controlingAgency="TTN">
<InvoiceHeader>
<MessageSenderIdentifier type="I-01">1234567/A/B/000</MessageSenderIdentifier>
<MessageReceiverIdentifier type="I-01">7654321/M/N/000</MessageReceiverIdentifier>
</InvoiceHeader>
<InvoiceBody>
<Bgm>
<DocumentIdentifier>FAC-2026-000123</DocumentIdentifier>
<DocumentType code="I-11">Facture</DocumentType>
<DocumentDate format="ddMMyyyy">17052026</DocumentDate>
</Bgm>
<PartnerSection>
<PartnerDetails functionCode="I-62">
<PartnerIdentifier type="I-01">1234567/A/B/000</PartnerIdentifier>
<PartnerName>Parapharmacie Exemple SARL</PartnerName>
<PartnerAdresses>
<AdressDescription>Avenue Habib Bourguiba, Tunis 1000</AdressDescription>
</PartnerAdresses>
</PartnerDetails>
<PartnerDetails functionCode="I-64">
<PartnerIdentifier type="I-01">7654321/M/N/000</PartnerIdentifier>
<PartnerName>Institut Beauté Cliente</PartnerName>
</PartnerDetails>
</PartnerSection>
<LinSection>
<Lin lineNumber="1">
<ItemIdentifier>SKU-001</ItemIdentifier>
<LinImd>
<ItemDescription>Crème hydratante 50ml</ItemDescription>
</LinImd>
<LinQty>
<Quantity measurementUnit="PCE">10</Quantity>
</LinQty>
<LinTax>
<TaxTypeName code="I-1602">TVA</TaxTypeName>
<TaxRate>19.000</TaxRate>
</LinTax>
<LinMoa>
<Moa amountTypeCode="I-183" currencyIdentifier="TND">25.000</Moa>
<Moa amountTypeCode="I-203" currencyIdentifier="TND">250.000</Moa>
</LinMoa>
</Lin>
</LinSection>
<InvoiceMoa>
<AmountDetails>
<Moa amountTypeCode="I-176" currencyIdentifier="TND">250.000</Moa>
<Moa amountTypeCode="I-179" currencyIdentifier="TND">47.500</Moa>
<Moa amountTypeCode="I-180" currencyIdentifier="TND">297.500</Moa>
</AmountDetails>
</InvoiceMoa>
<InvoiceTax>
<Tax>
<TaxTypeName code="I-1602">TVA</TaxTypeName>
<TaxDetails>
<TaxRate>19.000</TaxRate>
<TaxBasisAmount currencyIdentifier="TND">250.000</TaxBasisAmount>
<TaxAmount currencyIdentifier="TND">47.500</TaxAmount>
</TaxDetails>
</Tax>
</InvoiceTax>
</InvoiceBody>
<RefTtnVal>TTN-2026-A1B2C3D4</RefTtnVal>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- XAdES signature block ajouté lors de la signature électronique -->
</ds:Signature>
</TEIF>Les codes utilisés (I-01, I-11, I-62, I-176, etc.) proviennent du référentiel TTN. Le champ RefTtnVal est rempli par TTN après validation, pas par l'émetteur. Le bloc ds:Signature est ajouté lors de la signature électronique et contient le hash signé du document.
4. La signature électronique XAdES
La signature est ce qui transforme un fichier XML "joli" en une facture à valeur légale. Elle utilise le standard XAdES (XML Advanced Electronic Signatures) avec un certificat reconnu par l'État tunisien :
- DigiGo — certificat léger, environ 45 TND/an, suffit pour les petits volumes.
- ID-Trust — environ 375 TND/an, pour les volumes moyens.
- Certificat entreprise — environ 1 300 TND, multi-utilisateurs, gros volumes.
La signature est apposée sur le hash du document, puis encapsulée dans le XML lui-même via le nœud Signature. Tout changement ultérieur du document invalide la signature.
5. Le QR code de validation
Chaque facture validée par TTN se voit attribuer une référence unique (RefTtnVal) et un QR code permettant à n'importe qui de vérifier l'authenticité de la facture en scannant le code. Le QR code contient typiquement :
- L'identifiant TTN de la facture.
- Le matricule fiscal de l'émetteur.
- La date.
- Le montant TTC.
- Une URL de vérification pointant vers la plateforme El Fatoora.
Le QR code doit apparaître sur la version PDF/imprimée de la facture (la version "visualisée") aussi bien que dans le XML. C'est cette double présence qui garantit la traçabilité.
6. Cycle de vie d'une facture TEIF
- Génération : votre logiciel de caisse crée le XML à partir des données de vente.
- Signature : le XML est signé avec le certificat de l'émetteur.
- Transmission : le fichier signé est envoyé à TTN via une API.
- Validation TTN : la plateforme vérifie la structure, la signature, les matricules, les montants.
- Attribution d'une référence unique : si valide, TTN retourne une
RefTtnVal. - Archivage : la facture est archivée par TTN pour 10 ans (durée légale).
- Notification du destinataire : le destinataire reçoit la facture via la plateforme ou par email selon sa configuration.
7. Erreurs fréquentes à éviter
- Matricule fiscal mal formaté : le format AAAAAAA/L/CC/NNN doit être respecté à la lettre. TTN rejette tout matricule avec espaces, tirets manquants, ou casse incorrecte.
- Total TTC inexact : si la somme calculée par TTN ne correspond pas à
InvoiceMoa, rejet automatique. - Date dans le futur : impossible — TTN refuse toute facture avec une date d'émission postérieure à la date de soumission.
- Numérotation non séquentielle : les numéros de facture doivent être uniques et séquentiels chez l'émetteur. Sauter un numéro déclenche un signalement.
- Certificat expiré : un certificat de signature périmé invalide toute la facture. Surveillez les renouvellements.
- Encodage UTF-8 : les caractères français accentués et l'arabe doivent être en UTF-8. ISO-8859 ou Windows-1252 cassent la validation TTN.
8. Comment votre logiciel de caisse devrait gérer TEIF
Un bon logiciel ne vous oblige pas à comprendre TEIF. Il génère le fichier, le signe, l'envoie et reçoit la confirmation TTN — le tout en arrière-plan en moins de 5 secondes. Vous voyez simplement, en caisse : "Facture envoyée à TTN ✓" avec la référence unique.
Concrètement, votre logiciel devrait :
- Capturer le matricule fiscal du client dès qu'une vente B2B est ouverte.
- Générer le XML TEIF correct à partir des données saisies.
- Appeler l'API de signature avec votre certificat.
- Envoyer le fichier signé à TTN via l'API El Fatoora.
- Stocker la
RefTtnValet le QR code retournés. - Imprimer ou envoyer par email la version PDF avec le QR code.
- Gérer les cas d'échec (réseau indisponible, certificat expiré, validation refusée) avec une file d'attente et un mécanisme de retry.
9. Et pour les ventes B2C ?
Bonne nouvelle : la facturation électronique TEIF concerne avant tout les transactions B2B (entre professionnels) et B2G (vers l'administration). Pour les ventes B2C (à un consommateur final), le ticket de caisse classique reste valable, à condition qu'il respecte les mentions obligatoires.
Cela dit, votre logiciel doit pouvoir basculer rapidement en mode "facture B2B" si un client professionnel demande une vraie facture — sans interrompre le flux de la caisse.
Questions fréquentes
- Quelle est la différence entre TEIF et un PDF signé ?
- Un PDF signé reste un document destiné à l'humain. TEIF est un format XML structuré conçu pour le traitement automatique : chaque champ (matricule, montants, TVA, etc.) est identifié par une balise, ce qui permet à TTN, à l'administration fiscale et au logiciel du client de valider et d'intégrer la facture sans ressaisie.
- Comment vérifier qu'une facture TEIF reçue est valide ?
- Le QR code apposé sur la représentation visuelle de la facture renvoie vers la plateforme El Fatoora et permet de confirmer l'enregistrement par TTN. Côté technique, la signature électronique XAdES est vérifiée en validant le certificat utilisé contre l'autorité de certification émettrice.
- Faut-il un développeur pour intégrer TEIF dans son logiciel de caisse ?
- Pour un commerçant final, non — un logiciel agréé prend en charge la génération, la signature et la transmission. C'est l'éditeur du logiciel qui doit avoir intégré les schémas TEIF et l'API de TTN.
- TEIF est-il compatible avec le format PEPPOL utilisé en Europe ?
- Non, ce sont deux standards distincts. TEIF est spécifique à la Tunisie et n'est pas interopérable de manière native avec PEPPOL. Pour des factures transfrontalières, un mappage doit être effectué par l'éditeur du logiciel ou un prestataire spécialisé.
- Combien de temps faut-il archiver une facture TEIF ?
- La durée légale d'archivage des factures en Tunisie est de dix ans, dans des conditions garantissant l'intégrité, la lisibilité et la confidentialité du document. TTN archive lui-même les factures validées par sa plateforme.
10. Pour aller plus loin
Cet article s'inscrit dans une série sur la conformité fiscale tunisienne 2026. Consultez aussi :
- Facture électronique en Tunisie 2026 : guide complet (Article 53, El Fatoora, sanctions) — la vue d'ensemble juridique et opérationnelle.
- TVA Tunisie 2026 : guide multi-taux pour parapharmacie, parfumerie et commerce — comment gérer plusieurs taux de TVA produit par produit.
- Chèque différé en Tunisie · logiciel caisse pharmacie (CNAM et TEIF).
- Comment choisir son logiciel de caisse · comparatif tunisien 2026 · caisse vs cloud.
- Pages métier : Parapharmacie · Parfumerie · Supérette · Multi-magasins.
- Modules : Ventes (TEIF) · Stock · Achats.
- Glossaire · méthodologie éditoriale · à propos de Gastevo · tarifs.
Si vous cherchez un logiciel de caisse qui gère TEIF nativement et qui s'occupe de la complexité technique pour vous, contactez l'équipe Gastevo ou démarrez un essai gratuit.
Sources et références
- El Fatoora — plateforme officielle Tunisie TradeNet (TTN) : documentation TEIF, processus d'inscription, spécifications XML.
- Tunisie TradeNet : opérateur de la plateforme nationale d'échanges électroniques commerciaux.
- JIBAYA — portail fiscal tunisien : actualités sur la facturation électronique et les obligations des contribuables.
Cet article est informatif. Les spécifications techniques du format TEIF peuvent évoluer selon les décrets d'application à venir. Consultez la documentation officielle TTN et votre expert-comptable pour validation.

