Facturation électronique via Peppol v12
Contexte
À partir du 1ᵉʳ janvier 2026, toutes les entreprises belges assujetties à la TVA devront s'échanger leurs factures sous format électronique via le réseau Peppol. Cela concerne toutes les factures B2B, les factures B2C ne sont pas concernées, les factures intra et extra communautaires non plus.
Cette page explique plus en détail cette régulation.
En janvier 2026 il faudra donc :
-
pouvoir exporter/importer des factures dans un format de facture électronique commun : le format Peppol
-
pouvoir envoyer et recevoir des factures via un (ou des) points d'accès Peppol.
-
et à l'idéal, que l'envoi et la réception de facture soit fait automatiquement, c'est-à-dire qu'Odoo soit connecté au point d'accès et synchronise les factures, sans besoin d'opération manuel.
Un point d'accès Peppol est une infrastructure par laquelle sont envoyées et réceptionnées les factures. La plupart des points d'accès Peppol n'ont pas d'interface utilisateurs, ils sont connectés directement aux logiciels de facturation et transmettent les données automatiquement.

Odoo dispose de son propre point d'accès, qui ne dispose pas d'interface utilisateur, mais qui devrait en principe être accessible par n'importe quelle base de donnée Odoo, peu importe sa version. Son utilisation est gratuite.
Modules à installer
Voici les modules à installer :
account_peppol_send_format_oca: installe tous les modules nécessaires pour configurer Peppol et recevoir et générer des factures Peppol.account_peppol_send_immediate: permet d’envoyer des factures via Peppol de manière immédiate : l’interface reste bloquée le temps de l’envoi et les erreurs sont montrées immédiatement. Ce module est donc plus "convivial".account_cancel: pour modifier des factures déjà payées (afin de corriger les consignes sur les factures du point de vente, cf plus bas.
Activer Peppol
Pour configurer Peppol, il faut aller dans Facturation > Configuration>Configuration, section “PEPPOL Electronic Document Invoicing”.
Rentrer ses coordonnées (un numéro de téléphone et un email sont nécéssaire). Confirmer l'inscription via vérification du numéro de téléphone.
L'activation peut prendre quelques heures.
Attention : par défaut, Peppol est en mode “Live” (production), ce qui veut dire que l’inscription et l’envoi se passent sur le vrai réseau Peppol. Pour faire des tests, utiliser le mode démo.
Mode démo
Le mode “Demo”, qui simule l’interaction avec le réseau Peppol et n’envoie rien
Pour activer ce modes, il faut créer un paramètre système (Configuration > Technique > Paramètres > Paramètres systèmes), appelé account_peppol.edi.mode et le mettre à la valeur demo.
Activer Peppol uniquement pour l'envoi
Si vous utilisez une autre application pour votre comptabilité, et que vous n'utilisez Odoo seulement pour l'envoi de facture, et pas pour la réception, il est possible d'activer Peppol sur Odoo seulement pour l'envoi.
Pour cela, il faut d'abord activer Peppol sur votre autre application comptable, afin que votre "adresse de réception" soit enregistrée dans Peppol. Une fois cela fait, vous pouvez activer Peppol sur Odoo comme expliqué plus haut. Odoo détectera que vous êtes déjà enregistré ailleurs et activera seulement l'envoi de facture.
On ne peux avoir qu'une application, et qu'un seul point d'accès pour recevoir les factures Peppol, mais on peut avoir plusieurs application pour envoyer des factures, chacune connectée à des points d'accès différents.
Configurations
Configuration des fiches clients
Pour pouvoir configurer Peppol, il faut que le numéro TVA soit définit sur la fiche contact liée à la société. Ceci permettra de calculer votre adresse Peppol (dans l’onglet “Facturation”).
L’adresse Peppol des clients se trouve au même endroit sur les fiches clients. Par défaut, c’est le type d’adresse 0208 qui est utilisé (basé sur le numéro d’entreprise). Pour que le client ait une adresse Peppol valide en utilisant ce type, il faut que le champ “ID de la société” contienne son numéro d’entreprise.
Si le numéro TVA est encodée sur une société belge, un identifiant est automatiquement rempli dans l'onglet ID Numbers. Ce champs a un but uniquement technique. 
en Belgique, on doit utiliser le numéro d'entreprise comme identifiant Peppol (option 0208).
Il se peut qu’un client se soit également enregistré auprès de Peppol avec son numéro de TVA. Dans ce cas-là, il faut choisir la valeur 9925 (Belgium VAT number) dans le champ “Peppol e-address (EAS)” et indiquer le numéro de TVA dans le champ “Peppol Endpoint” (cela doit être fait manuellement).
Le bouton Vérify permet de vérifier que les coordonnées Peppol sont bien valides. Il est possible de l'éxécuter en masse via le bouton action "Verify Peppol".
Si la société n'est pas située en Belgique, son Peppol Endpoint ne sera pas rempli ni vérifié.
Configurations des unités de mesure
Concernant les unités de mesure, le module uom_unece a été installé et remplira les code UNECE des unités de mesure standard.
Il faut vérifier que chaque unité de mesure ait bien un code UNECE associé. Pour cela, aller dans Inventaire>Configuration>Unité de mesure, et vérifier que le résultat de ce filtre personnalisé est vide :
Configurations des taxes
À la différence de la version 16, les codes UNECE des taxes et des unités de mesure sont gérées par des modules OCA, et demandent une configuration manuelle.
Concernant les taxes, il faut faire l'encodage manuellement. Pour cela aller à Facturation>Configuration>Taxes, ouvrir une taxe et encoder le code UNECE dans l'onglet Options Avancées. Il est également possible de le faire avec une édition en lot.
Si votre base de donnée a été créé en version 12 (et pas créé en version 9 puis migrée en version 12), nous avons fait un module l10n_be_account_tax_unece (pas encore disponible en production !) qui permet d'encoder automatiquement les code UNECE sur les principales taxes de ventes.
Pour les bases de données créées en v9, les taxes ne sont pas identifiées par un ID fixe, donc le module ne fonctionne pas.
Voici les types et catégories UNECE pour les principales taxes à la vente.
- Type : pour les TVA, le type est [VAT]
- Catégorie : si le montant est positif : la catégorie est [S] : standard rate, si le taux est à 0, la catégorie est [E] : exempted.
Envois de factures clients
Attention, il faut que chaque ligne de facture ai une unité de mesure définie. L'unité de mesure est une information encodée dans la facture électronique.
Factures émises depuis le Point de vente
Les factures émises depuis le point de vente ne sont pas envoyées automatiquement via Peppol. Il faut manuellement envoyer la facture (cela peut être fait en lot).
Factures avec consigne dans les taxes
Les taxes de consignes entraînent des erreurs dans l'envoi des factures car il y a un contrôle TVA sur le point d'accès Peppol. Il faut donc manuellement retirer la taxe consigne et ajouter une ligne de produit du montant de cette taxe.
Si la facture a été générée par le Point de vente, et qu'elle est confirmée et payée, il faut cliquer sur Annuler, puis Remettre en brouillon :
Puis modifier la facture, puis Valider, et enfin relettrer le paiement qui a été effectué.
Réception des factures fournisseur via une instance Odoo 18
Annulé (pas pris en charge)
Inscription
On peut définir un journal d'achat dédié à la réception des factures Peppol. Comme cette instance sert uniquement à recevoir les facture Peppol, ce n'est pas la peine.
Réception
La réception des factures se fait automatiquement toutes les X heures. Il est également possible de télécharger manuellement en cliquant sur Fetch from Peppol.
Sur les factures reçues figurent, dans le chatter en bas, les pièces jointes : un fichier pdf et un fichier xml. Ces pièces jointes peuvent téléchargés pour être joints à la facture en v12.
FAQ
Faut-il que les contacts des fournisseurs soient importés dans la base de donnée v18 pour que la réception soit faite correctement ?
Oui, il faut importer au minima les sociétés fournisseurs avec leur numéro TVA pour qu'Odoo puisse les reconnaitre et assigner le bon fournisseur sur les factures. S'il n'y a pas de fournisseur, Odoo procède à un matching sur le peu d'information qu'il a et a tendance à assigner n'importe quel contact.
Est-ce qu'il y a une solution séparée en cas de très gros volumes d'envoi de facture ?
Un autre module existe pour l'envoi : account_peppol_send_queue_job. Il permet d’envoyer des factures via Peppol en arrière-plan : l’interface ne bloque pas du tout et le statut de la facture est mis à jour une fois que l’envoi a fonctionné ou échoué. Cela permet notamment d’envoyer un grand nombre de factures d’un coup.











