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.
Journal de vente dédié
Une fois l'activation terminée, il est possible de définir un journal comptable dédié pour la réception des factures fournisseur.
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”). Le numéro TVA est utilisé pour définir automatiquement le point d'accès peppol du client.
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).
Si le numéro TVA est encodée sur une société belge, un identifiant CoC Registration Number est automatiquement rempli. 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 de vente 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.
Attention, seules les unités de mesure de vente sont concernées, les unités de mesures utilisées seulement pour les achats n'ont pas besoin de code UNECE. Voici la nomenclature, voir notamment l'annexe 3 et la catégorie 3.2 pour les unités de vente. En cas de doute sur le code UNECE à utiliser, contactez-nous.
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 taux est positif : la catégorie est [S] : standard rate
- si le taux est à 0, la catégorie est [E] : exempted.
Envois de factures clients
Les factures clients doivent répondre à certains critères, notamment il faut que chaque ligne ai une taxe définie (si pas de taxe, mettre une taxe à 0%).
Sur une facture client, cliquer sur Envoyer & Imprimer. Si le client a des coordonnées Peppol valide, l'option par défaut est Send via Peppol. Sinon ce sera un envoi par mail classique.
Lors de la confirmation de la facture, le statut Peppol est "Prêt à envoyer". Une fois envoyé, le statut Peppol est "Réception en attente".
En cas d'erreur au moment de l'envoi, l’erreur s’affiche directement quand on clique sur “Send via Peppol” et bloque l’envoi.
Un processus automatique tourne toute les 12h pour récupérer le statut des factures envoyées, et savoir si elles ont été récupérées. Le processus peut aussi se lancer manuellement ici :
Une fois la facture récupérées par le client, le Statut Peppol passe en "Fait".
Checklist :
Si vous avez une erreur, vous pouvez utiliser cette checklist pour trouver le problème :
- la fiche client est bien configuré, son numéro TVA encodé, et son accès Peppol est valide.
- Le mode de paiement
- Les lignes de factures contiennent bien des produits (il y aura une erreur si il n'y a pas de produit sur une ligne de facture), utilisez un produit "divers" si besoin.
- il y a bien une taxe définie sur la ligne (si c'est un produit non taxé, ajouter une taxe à 0%). La taxe doit avoir un code et une catégorie UNECE définie (voir dans Comptabilité>Configuration>Taxes)
- l'unité de mesure sur la ligne dispose bien d'un code UNECE (à vérifier dans Inventaire>Configuration>Unités de mesure)
Si malgré tout cela l'erreur persiste, écrivez-nous !
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é.
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.













