{"id":13250,"date":"2026-09-21T10:07:23","date_gmt":"2026-09-21T08:07:23","guid":{"rendered":"https:\/\/gvision.be\/?p=13250"},"modified":"2026-09-21T10:07:25","modified_gmt":"2026-09-21T08:07:25","slug":"facture-peppol-rejetee-dans-odoo-diagnostic-et-traitement-des-exceptions","status":"publish","type":"post","link":"https:\/\/gvision.be\/nl\/facture-peppol-rejetee-dans-odoo-diagnostic-et-traitement-des-exceptions\/","title":{"rendered":"Afgekeurde Peppol-factuur in Odoo: diagnose en behandeling van uitzonderingen"},"content":{"rendered":"\n<style>.gv-blog-article{--gv-navy:#07192d;--gv-blue:#0d6efd;--gv-cyan:#15c7dc;--gv-coral:#ff765f;--gv-ink:#17263a;--gv-muted:#5a6a7d;--gv-line:#dce6ef;--gv-soft:#f3f8fc;--gv-white:#ffffff;--gv-shadow:0 18px 48px rgba(7,25,45,0.12);max-width:960px;margin-inline:auto;color:var(--gv-ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;font-size:clamp(1rem,0.97rem + 0.12vw,1.08rem);line-height:1.72;overflow-wrap:anywhere}.gv-blog-article *,.gv-blog-article *::before,.gv-blog-article *::after{box-sizing:border-box}.gv-blog-article:where(h1,h2,h3){color:var(--gv-navy);line-height:1.16;letter-spacing:-0.025em;text-wrap:balance}.gv-blog-article h1{max-width:18ch;margin:0.2em 0 0.38em;font-size:clamp(2.25rem,5.6vw,4.6rem)}.gv-blog-article h2{margin:2.15em 0 0.65em;font-size:clamp(1.65rem,3.2vw,2.45rem)}.gv-blog-article h3{margin:1.65em 0 0.45em;font-size:clamp(1.18rem,2vw,1.4rem)}.gv-blog-article:where(p,ul,ol){margin-block:0.85em}.gv-blog-article li{margin-block:0.38em;padding-inline-start:0.18em}.gv-blog-article a{color:#075fc7;font-weight:650;text-decoration-thickness:0.08em;text-underline-offset:0.16em}.gv-blog-article a:hover,.gv-blog-article a:focus-visible{color:#064b9c;text-decoration-thickness:0.13em}.gv-blog-article a:focus-visible,.gv-blog-article summary:focus-visible,.gv-blog-article [tabindex=\"0\"]:focus-visible{outline:3px solid rgba(21,199,220,0.55);outline-offset:4px}.gv-blog-header{position:relative;padding-top:clamp(1rem,3vw,2.25rem)}.gv-blog-kicker{margin-bottom:0.75rem;color:#087f95;font-size:0.78rem;font-weight:850;letter-spacing:0.1em;text-transform:uppercase}.gv-blog-intro,.gv-blog-lead{max-width:760px;color:#3d4f64;font-size:clamp(1.12rem,1.02rem + 0.45vw,1.34rem);line-height:1.58}.gv-blog-section{scroll-margin-top:7rem}.gv-blog-figure{margin:clamp(1.8rem,4vw,3.1rem) 0}.gv-blog-figure img{display:block;width:100%;height:auto;border-radius:20px;box-shadow:var(--gv-shadow)}.gv-blog-hero img{aspect-ratio:16 \/ 9;object-fit:cover}.gv-blog-infographic img{border:1px solid var(--gv-line);background:var(--gv-white);box-shadow:0 10px 34px rgba(7,25,45,0.08)}.gv-blog-figure figcaption{margin-top:0.72rem;color:var(--gv-muted);font-size:0.88rem;line-height:1.5}.gv-blog-answer,.gv-blog-summary,.gv-blog-keypoints,.gv-blog-takeaway,.gv-blog-takeaways,.gv-blog-note{margin:clamp(1.6rem,4vw,2.6rem) 0;padding:clamp(1.2rem,3vw,1.7rem);border:1px solid #c9e4ed;border-radius:18px;background:linear-gradient(135deg,#eaf8fb 0%,#f7fafc 100%)}.gv-blog-answer{border-left:5px solid var(--gv-cyan)}.gv-blog-note{border-color:#fed8d1;background:#fff7f5}.gv-blog-article:where(.gv-blog-answer,.gv-blog-summary,.gv-blog-keypoints,.gv-blog-takeaway,.gv-blog-takeaways,.gv-blog-note) h2{margin:0 0 0.6rem;font-size:clamp(1.22rem,2vw,1.45rem)}.gv-blog-toc{margin:clamp(1.8rem,4vw,2.8rem) 0;padding:clamp(1.25rem,3vw,1.8rem);border:1px solid var(--gv-line);border-radius:18px;background:var(--gv-white);box-shadow:0 10px 32px rgba(7,25,45,0.06)}.gv-blog-toc h2{margin:0 0 0.7rem;font-size:1.4rem}.gv-blog-toc ol{columns:2;column-gap:2.4rem;padding-left:1.35rem}.gv-blog-toc li{break-inside:avoid}.gv-blog-table-wrap,.gv-blog-table-responsive{width:100%;margin:1.6rem 0;overflow-x:auto;border:1px solid var(--gv-line);border-radius:16px;background:var(--gv-white);-webkit-overflow-scrolling:touch}.gv-blog-table{width:100%;min-width:720px;border-collapse:collapse;background:var(--gv-white);font-size:0.92rem;line-height:1.5}.gv-blog-table caption{padding:1rem 1.1rem;background:var(--gv-navy);color:var(--gv-white);font-weight:780;text-align:left}.gv-blog-table:where(th,td){padding:0.85rem 1rem;border-bottom:1px solid var(--gv-line);vertical-align:top;text-align:left}.gv-blog-table thead th{background:#eaf3fb;color:var(--gv-navy)}.gv-blog-table tbody th{color:var(--gv-navy);font-weight:760}.gv-blog-table tbody tr:nth-child(even){background:#f8fafc}.gv-blog-table tbody tr:last-child:where(th,td){border-bottom:0}.gv-blog-table-mobile,.gv-blog-mobile-alternative{display:none;margin:1.3rem 0;padding:1.15rem;border:1px solid var(--gv-line);border-radius:16px;background:var(--gv-soft)}.gv-blog-article:where(.gv-blog-table-mobile,.gv-blog-mobile-alternative) h3{margin-top:0}.gv-blog-faq details{margin:0.78rem 0;padding:1rem 1.15rem;border:1px solid var(--gv-line);border-radius:14px;background:var(--gv-white);box-shadow:0 5px 18px rgba(7,25,45,0.04)}.gv-blog-faq details[open]{border-color:#acdce6}.gv-blog-faq summary{color:var(--gv-navy);font-weight:780;cursor:pointer}.gv-blog-faq details>:last-child{margin-bottom:0}.gv-blog-conclusion{margin-top:3rem;padding:clamp(1.35rem,3.5vw,2rem);border-radius:20px;background:var(--gv-navy);color:#eaf2fa}.gv-blog-conclusion:where(h2,h3){color:var(--gv-white)}.gv-blog-conclusion h2{margin-top:0}.gv-blog-conclusion a{color:#64dcea}.gv-blog-sources{margin-top:3rem;padding-top:1.5rem;border-top:2px solid var(--gv-line);color:var(--gv-muted);font-size:0.88rem}.gv-blog-footer{clear:both}.gv-blog-sources h2{margin-top:0;font-size:1.4rem}.gv-blog-disclaimer{color:var(--gv-muted);font-size:0.84rem}.gv-blog-article code{padding:0.08em 0.32em;border-radius:0.28em;background:#edf2f7}@media (max-width:760px){.gv-blog-article{font-size:1rem}.gv-blog-article h1{font-size:clamp(2.15rem,11vw,3rem)}.gv-blog-toc ol{columns:1}.gv-blog-table-wrap + .gv-blog-table-mobile,.gv-blog-table-responsive + .gv-blog-table-mobile,.gv-blog-table-wrap + .gv-blog-mobile-alternative,.gv-blog-table-responsive + .gv-blog-mobile-alternative{display:block}.gv-blog-table-wrap,.gv-blog-table-responsive{display:none}}@media (prefers-reduced-motion:reduce){.gv-blog-article *,.gv-blog-article *::before,.gv-blog-article *::after{scroll-behavior:auto !important}}@media print{.gv-blog-article{max-width:none;color:#000;font-size:11pt}.gv-blog-figure img,.gv-blog-toc,.gv-blog-faq details{box-shadow:none}.gv-blog-table-wrap,.gv-blog-table-responsive{display:block;overflow:visible}.gv-blog-table{min-width:0}}<\/style>\n\n\n\n<article class=\"gv-blog-article\" lang=\"fr-BE\"><header class=\"gv-blog-header\"><p class=\"gv-blog-kicker\">Odoo \u00b7 Peppol \u00b7 Belgique<\/p><h1>Facture Peppol rejet\u00e9e dans Odoo : diagnostic et traitement des exceptions<\/h1><p class=\"gv-blog-lead\">Un guide op\u00e9rationnel pour distinguer un rejet technique, une erreur de donn\u00e9es et un refus m\u00e9tier, puis corriger sans cr\u00e9er de doublon.<\/p><figure class=\"gv-blog-figure gv-blog-hero\"><picture><source srcset=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/facture-peppol-rejetee-odoo-belgique-hero.webp\" type=\"image\/webp\"><img fetchpriority=\"high\" src=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/facture-peppol-rejetee-odoo-belgique-hero.webp\" width=\"1600\" height=\"900\" decoding=\"async\" alt=\"\u00c9quipe belge analysant le rejet d\u2019une facture \u00e9lectronique structur\u00e9e\"><\/picture><figcaption>Un statut lisible et une responsabilit\u00e9 claire \u00e9vitent les renvois improvis\u00e9s. \u2014 Illustration GVISION<\/figcaption><\/figure><\/header><aside class=\"gv-blog-answer\"><h2>R\u00e9ponse essentielle<\/h2><p>Une facture Peppol rejet\u00e9e ne doit pas \u00eatre renvoy\u00e9e \u00e0 l\u2019aveugle. Relevez d\u2019abord le statut, l\u2019horodatage, l\u2019identifiant du document et le message de validation. Classez ensuite la cause : destinataire introuvable, donn\u00e9e obligatoire absente, r\u00e8gle de calcul, doublon, incident de transport ou contestation m\u00e9tier. Corrigez la source dans Odoo, r\u00e9g\u00e9n\u00e9rez le document si n\u00e9cessaire et conservez la preuve du nouvel envoi et de son acceptation.<\/p><\/aside><aside class=\"gv-blog-summary\"><h2>En bref<\/h2><ul><li>Identifier l\u2019\u00e9tat exact avant d\u2019agir<\/li><li>Corriger la source, pas seulement le fichier<\/li><li>S\u00e9parer technique et d\u00e9cision m\u00e9tier<\/li><li>Bloquer les doublons par preuve<\/li><li>Mesurer les causes r\u00e9currentes<\/li><\/ul><\/aside><nav class=\"gv-blog-toc\" aria-label=\"Sommaire\"><h2>Sommaire<\/h2><ol><li><a href=\"#meaning\">Que signifie r\u00e9ellement \u00ab rejet\u00e9e \u00bb ?<\/a><\/li><li><a href=\"#evidence\">Collecter les preuves avant de modifier Odoo<\/a><\/li><li><a href=\"#classify\">Classer l\u2019exception en six familles<\/a><\/li><li><a href=\"#status-table\">Comparer statuts, preuves et r\u00e9ponses<\/a><\/li><li><a href=\"#master-data\">Fiabiliser les donn\u00e9es de base<\/a><\/li><li><a href=\"#validation\">Comprendre les r\u00e8gles de validation<\/a><\/li><li><a href=\"#workflow\">Corriger et renvoyer sans cr\u00e9er de doublon<\/a><\/li><li><a href=\"#incoming\">Traiter aussi les exceptions entrantes<\/a><\/li><li><a href=\"#automation\">Automatiser sans masquer les erreurs<\/a><\/li><li><a href=\"#roles\">Attribuer les r\u00f4les et niveaux d\u2019escalade<\/a><\/li><li><a href=\"#testing\">Tester avant et apr\u00e8s chaque changement<\/a><\/li><li><a href=\"#metrics\">Piloter les exceptions avec peu d\u2019indicateurs<\/a><\/li><li><a href=\"#plan\">Mettre en place le runbook en 30 jours<\/a><\/li><li><a href=\"#faq\">Questions fr\u00e9quentes<\/a><\/li><\/ol><\/nav><section class=\"gv-blog-section\" id=\"meaning\"><h2>Que signifie r\u00e9ellement \u00ab rejet\u00e9e \u00bb ?<\/h2><p>Le mot \u00ab rejet \u00bb recouvre plusieurs \u00e9tats. Un document peut \u00e9chouer avant d\u2019atteindre le point d\u2019acc\u00e8s, \u00eatre refus\u00e9 par une r\u00e8gle de format, arriver techniquement mais ne pas entrer dans le logiciel du client, ou \u00eatre contest\u00e9 apr\u00e8s r\u00e9ception pour une raison commerciale. Ces situations n\u2019ont ni la m\u00eame preuve ni la m\u00eame correction. Avant toute action, demandez quel syst\u00e8me a produit le statut et \u00e0 quel moment du parcours il se rapporte.<\/p><p>Depuis le 1er janvier 2026, les entreprises belges assujetties \u00e0 la TVA doivent utiliser des factures \u00e9lectroniques structur\u00e9es pour leurs op\u00e9rations B2B concern\u00e9es. Le portail f\u00e9d\u00e9ral pr\u00e9cise qu\u2019un PDF envoy\u00e9 par e-mail ne suffit pas et que l\u2019\u00e9change passe par Peppol. Cela rend la lecture des statuts op\u00e9rationnelle : \u00ab envoy\u00e9 \u00bb ne signifie pas automatiquement \u00ab livr\u00e9 \u00bb, et \u00ab livr\u00e9 \u00bb ne signifie ni validation comptable ni accord sur la prestation.<\/p><\/section><section class=\"gv-blog-section\" id=\"evidence\"><h2>Collecter les preuves avant de modifier Odoo<\/h2><p>Commencez par figer les faits. Relevez le num\u00e9ro interne, l\u2019identifiant \u00e9lectronique, la soci\u00e9t\u00e9 \u00e9mettrice, le destinataire, le point d\u2019acc\u00e8s ou prestataire, la date d\u2019envoi, le statut exact et le message complet. Exportez le XML ou le journal disponible sans le modifier. Une capture seule est utile, mais le texte machine et l\u2019horodatage permettent une recherche plus fiable aupr\u00e8s de l\u2019\u00e9diteur ou du fournisseur.<\/p><p>\u00c9vitez de supprimer la facture, de changer plusieurs champs puis de renvoyer. Cette r\u00e9action efface la cause et peut cr\u00e9er un doublon si le premier document a finalement \u00e9t\u00e9 transmis. Dans une organisation multi-soci\u00e9t\u00e9s, notez aussi la base, l\u2019environnement, le journal et l\u2019utilisateur. Les \u00e9quipes qui exploitent des <a href=\"https:\/\/studio.gvision.be\/fr\/web-apps\">applications web et outils m\u00e9tiers<\/a> peuvent ainsi relier l\u2019exception \u00e0 la bonne donn\u00e9e m\u00e9tier au lieu de traiter chaque incident comme un d\u00e9faut g\u00e9n\u00e9rique d\u2019Odoo.<\/p><figure class=\"gv-blog-figure\"><picture><source srcset=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/diagnostic-erreur-peppol-odoo-equipe.webp\" type=\"image\/webp\"><img loading=\"lazy\" src=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/diagnostic-erreur-peppol-odoo-equipe.webp\" width=\"1200\" height=\"800\" loading=\"lazy\" decoding=\"async\" alt=\"Sp\u00e9cialistes finance et application m\u00e9tier comparant les donn\u00e9es d\u2019une facture rejet\u00e9e\"><\/picture><figcaption>Le diagnostic commence par la preuve, puis remonte vers la donn\u00e9e source. \u2014 Illustration GVISION<\/figcaption><\/figure><\/section><section class=\"gv-blog-section\" id=\"classify\"><h2>Classer l\u2019exception en six familles<\/h2><p>Une bonne classification r\u00e9duit le d\u00e9lai de traitement. La premi\u00e8re famille concerne l\u2019identification : participant Peppol introuvable, num\u00e9ro de TVA, sch\u00e9ma d\u2019identifiant ou adresse incoh\u00e9rente. La deuxi\u00e8me couvre les champs obligatoires et r\u00e9f\u00e9rences. La troisi\u00e8me regroupe calculs, taxes, arrondis et unit\u00e9s. La quatri\u00e8me concerne un doublon ou une incoh\u00e9rence de cycle. La cinqui\u00e8me rel\u00e8ve du transport, du point d\u2019acc\u00e8s ou d\u2019une indisponibilit\u00e9. La sixi\u00e8me est un refus m\u00e9tier : commande inconnue, prix contest\u00e9 ou prestation non reconnue.<\/p><p>La cat\u00e9gorie d\u00e9termine le propri\u00e9taire. Finance corrige rarement un incident r\u00e9seau ; l\u2019IT ne d\u00e9cide pas si une note de cr\u00e9dit est juridiquement n\u00e9cessaire ; le commercial ne modifie pas un identifiant fiscal sans validation. Ajoutez donc cat\u00e9gorie, gravit\u00e9, responsable et \u00e9ch\u00e9ance au ticket. Un message obscur peut rester \u00ab \u00e0 qualifier \u00bb, mais il ne doit pas devenir automatiquement \u00ab probl\u00e8me Peppol \u00bb sans preuve.<\/p><\/section><section class=\"gv-blog-section\" id=\"status-table\"><h2>Comparer statuts, preuves et r\u00e9ponses<\/h2><p>Le statut doit \u00eatre lu avec la preuve qui l\u2019accompagne. Un rejet de validation appelle une correction du document ; un incident de transport peut n\u00e9cessiter une nouvelle tentative contr\u00f4l\u00e9e ; une contestation m\u00e9tier appelle une personne, pas seulement un bouton. Le tableau ci-dessous sert de grille, car les libell\u00e9s exacts varient selon la version d\u2019Odoo, la localisation et le prestataire.<\/p><p>Ne consid\u00e9rez pas une notification positive comme une approbation universelle. Une acceptation technique confirme un passage donn\u00e9 du r\u00e9seau ou de la validation, tandis que l\u2019organisation destinataire peut encore appliquer ses contr\u00f4les internes. Inversement, l\u2019absence de mise \u00e0 jour dans l\u2019\u00e9cran n\u2019\u00e9tablit pas que le document est perdu : croisez le journal Odoo, le portail du prestataire et, si n\u00e9cessaire, l\u2019accus\u00e9 du destinataire.<\/p><div class=\"gv-blog-table-responsive\"><table class=\"gv-blog-table\"><caption>Cycle de traitement d\u2019une exception Peppol<\/caption><thead><tr><th scope=\"col\">Type<\/th><th scope=\"col\">Preuve<\/th><th scope=\"col\">R\u00e9ponse adapt\u00e9e<\/th><th scope=\"col\">\u00c0 \u00e9viter<\/th><\/tr><\/thead><tbody><tr><th scope=\"row\">Validation structurelle<\/th><td>Code de r\u00e8gle, champ ou chemin<\/td><td>Corriger la donn\u00e9e source puis r\u00e9g\u00e9n\u00e9rer<\/td><td>Forcer un total ou modifier le XML<\/td><\/tr><tr><th scope=\"row\">Destinataire introuvable<\/th><td>Participant ou identifiant non r\u00e9solu<\/td><td>V\u00e9rifier l\u2019entit\u00e9 et l\u2019inscription<\/td><td>Tester des identifiants au hasard<\/td><\/tr><tr><th scope=\"row\">Transport bloqu\u00e9<\/th><td>Journal du prestataire et horodatage<\/td><td>Escalader puis relancer de fa\u00e7on contr\u00f4l\u00e9e<\/td><td>Cr\u00e9er plusieurs num\u00e9ros<\/td><\/tr><tr><th scope=\"row\">Doublon possible<\/th><td>Identifiant d\u00e9j\u00e0 vu ou accus\u00e9 ambigu<\/td><td>Geler le renvoi et confirmer le premier \u00e9tat<\/td><td>Renvoyer automatiquement<\/td><\/tr><tr><th scope=\"row\">Refus m\u00e9tier<\/th><td>Motif du client ou \u00e9cart de commande<\/td><td>Faire d\u00e9cider finance\/achat\/commercial<\/td><td>Le classer comme incident IT<\/td><\/tr><\/tbody><\/table><\/div><div class=\"gv-blog-table-mobile\"><article><h3>Validation structurelle<\/h3><p><strong>Preuve:<\/strong> Code de r\u00e8gle, champ ou chemin<\/p><p><strong>R\u00e9ponse adapt\u00e9e:<\/strong> Corriger la donn\u00e9e source puis r\u00e9g\u00e9n\u00e9rer<\/p><p><strong>\u00c0 \u00e9viter:<\/strong> Forcer un total ou modifier le XML<\/p><\/article><article><h3>Destinataire introuvable<\/h3><p><strong>Preuve:<\/strong> Participant ou identifiant non r\u00e9solu<\/p><p><strong>R\u00e9ponse adapt\u00e9e:<\/strong> V\u00e9rifier l\u2019entit\u00e9 et l\u2019inscription<\/p><p><strong>\u00c0 \u00e9viter:<\/strong> Tester des identifiants au hasard<\/p><\/article><article><h3>Transport bloqu\u00e9<\/h3><p><strong>Preuve:<\/strong> Journal du prestataire et horodatage<\/p><p><strong>R\u00e9ponse adapt\u00e9e:<\/strong> Escalader puis relancer de fa\u00e7on contr\u00f4l\u00e9e<\/p><p><strong>\u00c0 \u00e9viter:<\/strong> Cr\u00e9er plusieurs num\u00e9ros<\/p><\/article><article><h3>Doublon possible<\/h3><p><strong>Preuve:<\/strong> Identifiant d\u00e9j\u00e0 vu ou accus\u00e9 ambigu<\/p><p><strong>R\u00e9ponse adapt\u00e9e:<\/strong> Geler le renvoi et confirmer le premier \u00e9tat<\/p><p><strong>\u00c0 \u00e9viter:<\/strong> Renvoyer automatiquement<\/p><\/article><article><h3>Refus m\u00e9tier<\/h3><p><strong>Preuve:<\/strong> Motif du client ou \u00e9cart de commande<\/p><p><strong>R\u00e9ponse adapt\u00e9e:<\/strong> Faire d\u00e9cider finance\/achat\/commercial<\/p><p><strong>\u00c0 \u00e9viter:<\/strong> Le classer comme incident IT<\/p><\/article><\/div><\/section><section class=\"gv-blog-section\" id=\"master-data\"><h2>Fiabiliser les donn\u00e9es de base<\/h2><p>La plupart des corrections durables se font dans les donn\u00e9es ma\u00eetres, pas dans le XML final. V\u00e9rifiez la raison sociale, le num\u00e9ro d\u2019entreprise ou de TVA, l\u2019adresse, le pays, l\u2019identifiant de participant, les coordonn\u00e9es de paiement et les valeurs requises par le client. Confirmez qui peut modifier ces champs et selon quelle source. Une correction ponctuelle sur une facture ne doit pas masquer une fiche partenaire erron\u00e9e qui reproduira le rejet demain.<\/p><p>Pour les groupes, associations avec activit\u00e9s distinctes ou organisations multi-sites, ne supposez pas qu\u2019un seul identifiant couvre toutes les entit\u00e9s. Distinguez entit\u00e9 l\u00e9gale, \u00e9tablissement, adresse de livraison, adresse de facturation et interlocuteur. Documentez le format demand\u00e9 par les clients qui imposent une r\u00e9f\u00e9rence de commande ou de contrat. Enfin, testez la synchronisation avec CRM, e-commerce ou import comptable : une donn\u00e9e correcte dans Odoo peut \u00eatre r\u00e9\u00e9crite par une int\u00e9gration.<\/p><\/section><section class=\"gv-blog-section\" id=\"validation\"><h2>Comprendre les r\u00e8gles de validation<\/h2><p>Peppol BIS Billing applique des r\u00e8gles structurelles et arithm\u00e9tiques. Une ligne doit notamment rester coh\u00e9rente entre quantit\u00e9, prix, remise et montant net ; taxes et totaux doivent se r\u00e9concilier selon les r\u00e8gles applicables. La documentation OpenPeppol publie ces contr\u00f4les de mani\u00e8re v\u00e9rifiable. Le message de rejet contient souvent un code et un chemin qui orientent vers la donn\u00e9e concern\u00e9e, m\u00eame s\u2019il reste peu lisible pour un utilisateur financier.<\/p><p>Ne corrigez pas le total manuellement pour forcer le passage. Recherchez l\u2019origine : unit\u00e9 inhabituelle, prix d\u00e9cimal, remise, quantit\u00e9 n\u00e9gative, mauvaise cat\u00e9gorie TVA ou arrondi issu d\u2019un connecteur. Reproduisez le calcul avec les donn\u00e9es source et conservez un exemple minimal. Si le probl\u00e8me d\u00e9pend de la version ou d\u2019un module, testez la correction sur une copie repr\u00e9sentative avant la production.<\/p><\/section><section class=\"gv-blog-section\" id=\"workflow\"><h2>Corriger et renvoyer sans cr\u00e9er de doublon<\/h2><p>La s\u00e9quence s\u00fbre comporte cinq d\u00e9cisions : confirmer l\u2019\u00e9tat du premier envoi, qualifier la cause, corriger la source, g\u00e9n\u00e9rer un nouveau document conforme au processus choisi, puis contr\u00f4ler l\u2019accus\u00e9. Si la facture n\u2019a jamais \u00e9t\u00e9 d\u00e9livr\u00e9e et reste modifiable selon votre proc\u00e9dure, une correction et une nouvelle \u00e9mission peuvent convenir. Si elle a \u00e9t\u00e9 re\u00e7ue ou comptabilis\u00e9e, l\u2019annulation, la note de cr\u00e9dit ou le document correctif doit \u00eatre d\u00e9cid\u00e9 par la fonction finance.<\/p><p>\u00c9vitez les num\u00e9ros parall\u00e8les cr\u00e9\u00e9s uniquement pour \u00ab essayer \u00bb. Reliez tout nouvel envoi \u00e0 l\u2019incident et au document d\u2019origine. Indiquez dans le ticket qui a confirm\u00e9 l\u2019absence de doublon et quelle preuve cl\u00f4ture l\u2019action. Les libell\u00e9s d\u2019\u00e9cran varient : le runbook doit d\u00e9crire des r\u00e9sultats attendus, pas une suite fragile de clics. GVISION recommande aussi un contr\u00f4le \u00e0 quatre yeux pour les montants sensibles ou les corrections de donn\u00e9es fiscales.<\/p><figure class=\"gv-blog-figure gv-blog-infographic\"><picture><source srcset=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/workflow-exception-peppol-fr.svg\" type=\"image\/svg+xml\"><img loading=\"lazy\" src=\"https:\/\/gvision.be\/wp-content\/uploads\/2026\/09\/workflow-exception-peppol-fr.svg\" width=\"1200\" height=\"900\" loading=\"lazy\" decoding=\"async\" alt=\"Cycle de traitement d\u2019une exception Peppol\"><\/picture><figcaption>Cycle de traitement d\u2019une exception Peppol \u2014 Illustration GVISION<\/figcaption><\/figure><\/section><section class=\"gv-blog-section\" id=\"incoming\"><h2>Traiter aussi les exceptions entrantes<\/h2><p>Les factures re\u00e7ues peuvent \u00eatre techniquement valides tout en \u00e9chouant dans le processus interne : fournisseur non reconnu, commande absente, centre de co\u00fbt inconnu ou \u00e9cart de montant. S\u00e9parez le contr\u00f4le Peppol du rapprochement m\u00e9tier. Le premier v\u00e9rifie la structure et la transmission ; le second d\u00e9cide si l\u2019organisation peut enregistrer, imputer et approuver la d\u00e9pense.<\/p><p>Cr\u00e9ez une file d\u2019exception entrante avec motif, propri\u00e9taire et d\u00e9lai. Finance g\u00e8re les donn\u00e9es comptables, achat la commande, le demandeur la prestation et l\u2019IT l\u2019int\u00e9gration. Ne placez pas toutes les factures probl\u00e9matiques dans une bo\u00eete mail personnelle. Une file partag\u00e9e ou un tableau de suivi \u00e9vite qu\u2019une absence bloque le paiement. Le retour au fournisseur doit citer une r\u00e9f\u00e9rence exploitable sans exposer inutilement des donn\u00e9es personnelles.<\/p><\/section><section class=\"gv-blog-section\" id=\"automation\"><h2>Automatiser sans masquer les erreurs<\/h2><p>L\u2019automatisation utile d\u00e9tecte, route et documente ; elle ne transforme pas toute erreur en renvoi automatique. D\u00e9clenchez une alerte lorsqu\u2019un statut reste bloqu\u00e9, lorsqu\u2019un m\u00eame code se r\u00e9p\u00e8te ou lorsque le volume d\u2019exceptions d\u00e9passe un seuil d\u00e9fini. Enrichissez le ticket avec la soci\u00e9t\u00e9, le partenaire, l\u2019identifiant du document, la cat\u00e9gorie probable et le lien vers la preuve. Aucun secret ni XML complet ne doit \u00eatre diffus\u00e9 dans un canal trop large.<\/p><p>Une approche d\u2019<a href=\"https:\/\/studio.gvision.be\/fr\/automation-ai\">automatisation des processus m\u00e9tier<\/a> peut synchroniser Odoo, un outil de tickets et un tableau de pilotage. GVISION privil\u00e9gie des r\u00e8gles explicables : chaque action automatique a une condition, un journal et une voie d\u2019escalade. Commencez par les cas r\u00e9p\u00e9titifs \u00e0 faible risque, puis mesurez les faux positifs avant d\u2019automatiser une correction de donn\u00e9es ou une r\u00e9\u00e9mission.<\/p><\/section><section class=\"gv-blog-section\" id=\"roles\"><h2>Attribuer les r\u00f4les et niveaux d\u2019escalade<\/h2><p>Un processus robuste nomme quatre r\u00f4les. Le propri\u00e9taire m\u00e9tier d\u00e9cide de la r\u00e9alit\u00e9 de la transaction. Finance valide le traitement comptable et fiscal. L\u2019administrateur applicatif contr\u00f4le la configuration, les donn\u00e9es et les int\u00e9grations. Le prestataire ou point d\u2019acc\u00e8s intervient lorsque la preuve indique un probl\u00e8me de transport ou de conformit\u00e9 technique. Pour chaque famille d\u2019erreur, pr\u00e9cisez qui analyse, qui corrige, qui approuve et qui informe le client.<\/p><p>D\u00e9finissez aussi des priorit\u00e9s. Une facture isol\u00e9e sans \u00e9ch\u00e9ance imm\u00e9diate n\u2019a pas le m\u00eame impact qu\u2019un blocage de toutes les \u00e9missions en fin de p\u00e9riode. Utilisez le volume, la valeur, l\u2019\u00e9ch\u00e9ance, le client et le risque de duplication. L\u2019escalade contient un dossier minimal reproductible, jamais un simple \u00ab Peppol ne marche pas \u00bb. Cela acc\u00e9l\u00e8re l\u2019aide externe et \u00e9vite les \u00e9changes de captures contradictoires.<\/p><\/section><section class=\"gv-blog-section\" id=\"testing\"><h2>Tester avant et apr\u00e8s chaque changement<\/h2><p>Construisez un petit catalogue de sc\u00e9narios : facture simple, plusieurs taux, remise, note de cr\u00e9dit, r\u00e9f\u00e9rence de commande, client \u00e9tranger concern\u00e9, partenaire non trouv\u00e9 et valeur limite d\u2019arrondi. Les sc\u00e9narios doivent refl\u00e9ter vos flux r\u00e9els sans reprendre des donn\u00e9es personnelles de production. Lorsque le fournisseur propose un environnement de test, v\u00e9rifiez ce qu\u2019il simule r\u00e9ellement ; un succ\u00e8s de test ne garantit pas l\u2019inscription du destinataire r\u00e9el.<\/p><p>Apr\u00e8s une mise \u00e0 jour d\u2019Odoo, d\u2019un module ou d\u2019un connecteur, rejouez les sc\u00e9narios critiques. Comparez le document produit, les statuts et le rapprochement. Conservez la version, la date et le r\u00e9sultat. Testez aussi les droits : un utilisateur doit voir assez d\u2019information pour agir, sans pouvoir modifier des donn\u00e9es fiscales ou renvoyer une facture hors de son r\u00f4le.<\/p><\/section><section class=\"gv-blog-section\" id=\"metrics\"><h2>Piloter les exceptions avec peu d\u2019indicateurs<\/h2><p>Suivez le nombre de rejets par centaine de documents, la r\u00e9partition par cause, le temps m\u00e9dian de qualification, le temps de r\u00e9solution, le taux de r\u00e9ouverture et le nombre de doublons \u00e9vit\u00e9s ou d\u00e9tect\u00e9s. Ces indicateurs servent \u00e0 am\u00e9liorer les donn\u00e9es et le processus, pas \u00e0 sanctionner les \u00e9quipes. Un taux global peut masquer qu\u2019un seul connecteur, client ou entit\u00e9 produit l\u2019essentiel des incidents.<\/p><p>Examinez les tendances chaque semaine au d\u00e9marrage, puis adaptez la fr\u00e9quence. Les erreurs r\u00e9currentes doivent produire une action sur la cause : r\u00e8gle de saisie, contr\u00f4le avant envoi, correction d\u2019int\u00e9gration ou formation. Conservez aussi une liste des statuts sans issue claire. Elle alimente la documentation et les demandes au fournisseur. Ne publiez pas de d\u00e9lai cible sans capacit\u00e9 r\u00e9elle de support et sans distinguer incident technique et d\u00e9cision m\u00e9tier.<\/p><\/section><section class=\"gv-blog-section\" id=\"plan\"><h2>Mettre en place le runbook en 30 jours<\/h2><p>La premi\u00e8re semaine, inventoriez les statuts, preuves disponibles, partenaires fr\u00e9quents et r\u00f4les. La deuxi\u00e8me, cr\u00e9ez la taxonomie des causes et le mod\u00e8le de ticket. La troisi\u00e8me, testez cinq sc\u00e9narios et documentez la correction, le renvoi et l\u2019escalade. La quatri\u00e8me, activez les alertes simples, formez finance et support, puis mesurez les premi\u00e8res exceptions. Un runbook court et utilis\u00e9 vaut mieux qu\u2019un manuel exhaustif jamais consult\u00e9.<\/p><p>Les erreurs fr\u00e9quentes sont connues : renvoyer avant de v\u00e9rifier, modifier le XML au lieu de la source, confondre livraison et approbation, partager des donn\u00e9es sensibles dans un canal public, fermer sans preuve, ou automatiser une r\u00e9\u00e9mission risqu\u00e9e. Revoyez le processus apr\u00e8s chaque incident important et \u00e0 chaque \u00e9volution du logiciel. Le portail f\u00e9d\u00e9ral a annonc\u00e9 le 7 avril 2026 la fin de la tol\u00e9rance g\u00e9n\u00e9rale ; les difficult\u00e9s techniques exceptionnelles sont examin\u00e9es individuellement, ce qui renforce l\u2019int\u00e9r\u00eat de preuves dat\u00e9es.<\/p><\/section><aside class=\"gv-blog-takeaway\"><h2>\u00c0 retenir<\/h2><p>Une facture Peppol rejet\u00e9e ne doit pas \u00eatre renvoy\u00e9e \u00e0 l\u2019aveugle. Relevez d\u2019abord le statut, l\u2019horodatage, l\u2019identifiant du document et le message de validation. Classez ensuite la cause : destinataire introuvable, donn\u00e9e obligatoire absente, r\u00e8gle de calcul, doublon, incident de transport ou contestation m\u00e9tier. Corrigez la source dans Odoo, r\u00e9g\u00e9n\u00e9rez le document si n\u00e9cessaire et conservez la preuve du nouvel envoi et de son acceptation.<\/p><\/aside><section class=\"gv-blog-section gv-blog-faq\" id=\"faq\"><h2>Questions fr\u00e9quentes<\/h2><details><summary>Une facture \u00ab envoy\u00e9e \u00bb est-elle forc\u00e9ment re\u00e7ue ?<\/summary><p>Non. V\u00e9rifiez le statut de transport et l\u2019accus\u00e9 disponible ; un envoi initi\u00e9 n\u2019\u00e9tablit pas la livraison.<\/p><\/details><details><summary>Peut-on simplement renvoyer la m\u00eame facture ?<\/summary><p>Seulement apr\u00e8s avoir \u00e9tabli l\u2019\u00e9tat du premier envoi et le risque de doublon. La proc\u00e9dure d\u00e9pend aussi du traitement comptable d\u00e9j\u00e0 r\u00e9alis\u00e9.<\/p><\/details><details><summary>Faut-il modifier directement le XML ?<\/summary><p>Non en exploitation normale. Corrigez la donn\u00e9e source et laissez l\u2019application r\u00e9g\u00e9n\u00e9rer un document tra\u00e7able.<\/p><\/details><details><summary>Un rejet Peppol signifie-t-il qu\u2019Odoo est en panne ?<\/summary><p>Non. La cause peut \u00eatre une donn\u00e9e partenaire, une r\u00e8gle de validation, un incident de transport ou une exigence m\u00e9tier.<\/p><\/details><details><summary>Que conserver dans le ticket ?<\/summary><p>Identifiants, horodatages, statut exact, code et message, environnement, action, approbation et preuve finale.<\/p><\/details><details><summary>Quand \u00e9mettre une note de cr\u00e9dit ?<\/summary><p>La d\u00e9cision d\u00e9pend du statut juridique et comptable du document. Finance ou le comptable doit la valider.<\/p><\/details><details><summary>Peut-on automatiser le renvoi ?<\/summary><p>Seulement pour des cas pr\u00e9cis\u00e9ment d\u00e9finis et \u00e0 faible risque, avec contr\u00f4le du doublon, journal et escalade.<\/p><\/details><\/section><section class=\"gv-blog-section gv-blog-conclusion\"><h2>Conclusion : transformer le rejet en processus ma\u00eetris\u00e9<\/h2><p>Un rejet bien trait\u00e9 devient une am\u00e9lioration de donn\u00e9es, de contr\u00f4le ou d\u2019int\u00e9gration. Le r\u00e9sultat attendu n\u2019est pas seulement une facture \u00ab verte \u00bb, mais une preuve compr\u00e9hensible, un propri\u00e9taire et une pr\u00e9vention de la r\u00e9cidive. Pour transformer ce runbook en flux Odoo, ticketing et responsabilit\u00e9s adapt\u00e9s \u00e0 votre organisation, vous pouvez <a href=\"https:\/\/gvision.be\/contacts\/\">cadrer le traitement de vos exceptions avec GVISION<\/a>.<\/p><\/section><footer class=\"gv-blog-footer gv-blog-sources\"><h2>Sources officielles<\/h2><ul><li><a href=\"https:\/\/efacture.belgium.be\/fr\/article\/les-factures-electroniques-structurees-entre-entreprises-sont-obligatoires-depuis-2026\" target=\"_blank\" rel=\"noopener\">Belgique \u2014 obligation de facturation \u00e9lectronique structur\u00e9e depuis 2026<\/a><\/li><li><a href=\"https:\/\/efacture.belgium.be\/fr\/news\/fin-de-la-periode-de-tolerance-pour-le-facturation\" target=\"_blank\" rel=\"noopener\">Belgique \u2014 fin de la p\u00e9riode g\u00e9n\u00e9rale de tol\u00e9rance, 7 avril 2026<\/a><\/li><li><a href=\"https:\/\/docs.peppol.eu\/poacc\/billing\/3.0\/rules\/ubl-peppol\/PEPPOL-EN16931-R120\/\" target=\"_blank\" rel=\"noopener\">OpenPeppol \u2014 r\u00e8gle de validation Peppol BIS Billing<\/a><\/li><li><a href=\"https:\/\/www.odoo.com\/documentation\/19.0\/applications\/finance\/fiscal_localizations\/belgium.html\" target=\"_blank\" rel=\"noopener\">Odoo 19 \u2014 electronic invoicing in Belgium<\/a><\/li><\/ul><\/footer><\/article>\n","protected":false},"excerpt":{"rendered":"<p>Runbook belge pour choisir un point sain, restaurer Microsoft 365 par vagues et valider la reprise.<\/p>","protected":false},"author":4,"featured_media":13253,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_price":"","_stock":"","_tribe_ticket_header":"","_tribe_default_ticket_provider":"","_tribe_ticket_capacity":"0","_ticket_start_date":"","_ticket_end_date":"","_tribe_ticket_show_description":"","_tribe_ticket_show_not_going":false,"_tribe_ticket_use_global_stock":"","_tribe_ticket_global_stock_level":"","_global_stock_mode":"","_global_stock_cap":"","_tribe_rsvp_for_event":"","_tribe_ticket_going_count":"","_tribe_ticket_not_going_count":"","_tribe_tickets_list":"[]","_tribe_ticket_has_attendee_info_fields":false,"footnotes":""},"categories":[96,20],"tags":[],"class_list":["post-13250","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fr","category-microsoft"],"_links":{"self":[{"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/posts\/13250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/comments?post=13250"}],"version-history":[{"count":2,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/posts\/13250\/revisions"}],"predecessor-version":[{"id":13260,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/posts\/13250\/revisions\/13260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/media\/13253"}],"wp:attachment":[{"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/media?parent=13250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/categories?post=13250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gvision.be\/nl\/wp-json\/wp\/v2\/tags?post=13250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}