Documentation9 min de lecture

Contrôler une facture : total vérifié, doublons, échéances et validation

Dix-sept modules OCA du dépôt `account-invoicing` encadrent la saisie des factures dans Odoo 18 Community : `account_invoice_check_total` ajoute un **total de vérification** à saisir d'après le document reçu, et `account_invoice_supplier_ref_unique` **empêche d'enregistrer deux fois la même facture fournisseur** en contrôlant l'unicité de son numéro. Les quinze autres, de la taxe obligatoire à la validation par paliers des pièces comptables.

Contrôle d'une facture fournisseur avant comptabilisation

Une facture fournisseur saisie deux fois est payée deux fois. Une ligne sans taxe passe en comptabilité et se découvre à la déclaration. Une échéance calculée par un code de paiement que personne n'a vérifié décale une trésorerie.

Dix-sept modules communautaires posent les contrôles que la saisie comptable réclame — et rendent visible ce qu'Odoo calcule sans le montrer.

Résumé

Quatre modules contrôlent la saisie : un total de vérification comparé au total calculé, l'unicité du numéro de facture fournisseur, l'obligation d'une taxe sur chaque ligne, et la cohérence entre dates de réception et date comptable.

Trois traitent les échéances : la date d'échéance rendue modifiable malgré une condition de paiement, la date calculée affichée au lieu du seul libellé de la condition, et la date limite d'escompte remontée en en-tête.

Quatre encadrent la validation : une confirmation avec motif avant annulation, la validation par paliers des pièces comptables, un approbateur par défaut défini sur la fiche fournisseur, et la possibilité de garder un paiement en brouillon.

Le reste améliore le quotidien : un avertissement client sur la facture, des messages d'avertissement prédéfinis, des motifs d'avoir configurables, des menus réunissant factures et avoirs, une vue en tableau croisé sur les factures, et une référence reportée sur les factures récurrentes générées automatiquement.

L'essentiel

  • Un total de vérification : on saisit le total du document, Odoo refuse si le calcul diffère.
  • Le numéro de facture fournisseur rendu unique — le contrôle anti double paiement.
  • Une taxe obligatoire sur chaque ligne, à la comptabilisation.
  • La date d'échéance modifiable, même avec une condition de paiement.
  • La date d'échéance calculée affichée, au lieu du seul libellé « 30 jours ».
  • Une confirmation avec motif avant d'annuler une facture ou un paiement.
  • La validation par paliers des pièces comptables, avec approbateur par fournisseur.
  • Factures et avoirs dans un même menu, et une vue en tableau croisé.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Contrôles de saisieaccount_invoice_check_total, account_invoice_supplier_ref_unique, account_invoice_tax_required, account_invoice_check_picking_date4
Échéancesaccount_invoice_date_due, account_invoice_payment_term_date_due, account_invoice_discount_date3
Validation et annulationaccount_move_cancel_confirm, account_move_tier_validation, account_move_tier_validation_approver, account_payment_state_keep_draft4
Confort et lisibilitéaccount_invoice_warn_message, account_warn_option, account_invoice_refund_reason, account_menu_invoice_refund, account_move_pivot_view, account_move_auto_post_ref6

Les menus ajoutés : Facturation ▸ Configuration ▸ Gestion ▸ Refund Reasons, et deux menus réunissant factures et avoirs côté clients comme côté fournisseurs.

Les quatre contrôles qui évitent les erreurs coûteuses

Le total de vérification

account_invoice_check_total ajoute un champ où l'on saisit le total TTC imprimé sur le document reçu. Odoo compare avec son propre calcul et refuse la validation en cas d'écart. C'est la double saisie volontaire — celle qui attrape la ligne oubliée, la quantité fausse et le taux de TVA mal choisi.

Le principe est ancien et éprouvé : en comptabilité, on ne vérifie pas en relisant, on vérifie en recomptant par un autre chemin.

Le doublon de facture fournisseur

account_invoice_supplier_ref_unique contrôle l'unicité du numéro de facture pour un même fournisseur. Saisir deux fois la même facture — parce qu'elle est arrivée par courriel puis par courrier — est l'erreur qui conduit au double paiement.

La taxe obligatoire

account_invoice_tax_required empêche de comptabiliser une facture dont une ligne n'a aucune taxe. Une ligne sans taxe ne remonte pas dans la déclaration de TVA : l'erreur se découvre au contrôle, des mois plus tard.

La cohérence des dates

account_invoice_check_picking_date vérifie que les dates des réceptions correspondent à la date comptable de la facture. C'est le contrôle du rattachement à l'exercice : une marchandise reçue en décembre facturée en janvier ne doit pas glisser d'un exercice à l'autre sans qu'on le sache.

Ces contrôles complètent ceux décrits dans contrôles de saisie comptable.

Les échéances : montrer ce qu'Odoo calcule

ModuleCe qu'il change
account_invoice_payment_term_date_dueAffiche la date d'échéance calculée, là où Odoo ne montre que le libellé de la condition de paiement
account_invoice_date_dueRend la date d'échéance modifiable manuellement, même avec une condition de paiement
account_invoice_discount_dateRemonte en en-tête la date limite d'escompte, gérée ligne par ligne

Le premier corrige une habitude d'interface discutable : afficher « 30 jours fin de mois » plutôt que « 31 mars ». Le comptable sait convertir ; le dirigeant qui regarde une facture, non — et c'est lui qui pilote la trésorerie.

Le second traite les cas réels de négociation : un fournisseur accorde un délai exceptionnel, un client obtient un report. Sans ce module, il faut changer la condition de paiement — qui s'appliquera aussi aux factures suivantes.

Le troisième sert les entreprises qui pratiquent l'escompte pour paiement anticipé : la date limite doit être visible au moment de décider de payer, pas enfouie dans une ligne d'échéancier.

Valider, approuver, annuler

  • account_move_tier_validation applique aux pièces comptables — factures clients et fournisseurs, avoirs, écritures — le moteur générique de validation par paliers.
  • account_move_tier_validation_approver permet de désigner, sur la fiche fournisseur, l'approbateur par défaut de ses factures.
  • account_move_cancel_confirm impose une confirmation, avec motif optionnel, avant d'annuler une facture, un avoir, une écriture ou un paiement.
  • account_payment_state_keep_draft autorise l'enregistrement d'un paiement en le gardant en brouillon.

L'approbateur par fournisseur est le détail qui rend le circuit praticable : désigner un valideur par montant produit un goulot sur une seule personne, alors que désigner un responsable par fournisseur répartit la charge sur ceux qui connaissent le dossier.

Le moteur de validation et ses pièges sont décrits dans base_tier_validation.

Le dernier module répond à un besoin de trésorerie : préparer un paiement sans le comptabiliser, pour le soumettre à validation ou attendre la date d'exécution.

Six améliorations du quotidien comptable

ModuleCe qu'il apporte
account_invoice_warn_messageUne alerte visuelle sur la facture quand le client porte un avertissement de facturation
account_warn_optionDes messages d'avertissement prédéfinis plutôt que du texte libre
account_invoice_refund_reasonDes motifs d'avoir configurables, choisis à l'émission
account_menu_invoice_refundFactures et avoirs réunis dans un même menu, côté clients et côté fournisseurs
account_move_pivot_viewUne vue en tableau croisé sur les factures et avoirs
account_move_auto_post_refLa référence reportée sur les factures générées par une récurrence

Le quatrième corrige une séparation discutable : Odoo met les avoirs dans un menu distinct des factures, alors que le travail comptable les traite ensemble. Réunir les deux évite de chercher un document dans le mauvais écran.

Les motifs d'avoir, eux, rendent analysable ce qui est habituellement expliqué en texte libre : combien d'avoirs pour erreur de prix, pour retour, pour geste commercial ? La réponse oriente des corrections de processus.

La vue en tableau croisé, enfin, fait d'un écran de saisie un écran d'analyse — sans passer par un module de reporting.

Limites connues

  • Le total de vérification est une double saisie : il coûte quelques secondes par facture, et c'est son intérêt.
  • L'unicité du numéro fournisseur gêne les avoirs portant le même numéro : vérifier le comportement attendu sur vos flux.
  • La taxe obligatoire bloque les lignes légitimement sans taxe : certaines écritures n'en ont pas.
  • Rendre la date d'échéance modifiable affaiblit la condition de paiement : à encadrer par un droit.
  • La validation par paliers sur les pièces comptables ralentit la clôture : à réserver aux montants significatifs.
  • account_invoice_check_picking_date est peu documenté dans le relevé : comportement à vérifier sur le dépôt.

Identité technique

Les dix-sept modules viennent du dépôt OCA account-invoicing, branche 18.0 — 75 modules au total —, en licences AGPL-3 et LGPL-3 selon le module. Trois s'appuient sur des socles génériques du dépôt server-ux : validation par paliers, confirmation d'annulation, options d'avertissement.

Les familles voisines : contrôles de saisie comptable, l'import des factures fournisseurs et les conforts de facturation.

Questions fréquentes

Comment éviter de payer deux fois la même facture fournisseur ?

account_invoice_supplier_ref_unique contrôle l'unicité du numéro de facture pour un même fournisseur et bloque la saisie d'un doublon. C'est l'erreur classique de la facture arrivée par courriel puis par courrier, saisie par deux personnes différentes.

À quoi sert un total de vérification ?

À recompter par un autre chemin. account_invoice_check_total demande de saisir le total TTC imprimé sur le document ; Odoo compare avec son calcul et refuse la validation en cas d'écart. C'est ce qui attrape une ligne oubliée, une quantité fausse ou un taux de TVA mal choisi.

Pourquoi Odoo n'affiche-t-il pas la date d'échéance ?

Parce qu'avec une condition de paiement, il montre le libellé — « 30 jours fin de mois » — et non la date calculée. account_invoice_payment_term_date_due affiche la date. Et account_invoice_date_due la rend modifiable, pour les délais négociés au cas par cas.

Peut-on faire approuver les factures fournisseur par le bon interlocuteur ?

Oui : account_move_tier_validation applique la validation par paliers aux pièces comptables, et account_move_tier_validation_approver permet de désigner l'approbateur par défaut sur la fiche fournisseur. Cela répartit la charge sur ceux qui connaissent le dossier, au lieu d'un goulot sur un valideur unique.

Peut-on voir factures et avoirs dans le même écran ?

account_menu_invoice_refund réunit factures et avoirs dans un même menu, côté clients comme côté fournisseurs. Odoo les sépare, alors que le travail comptable les traite ensemble — et chercher un document dans le mauvais écran est une perte de temps quotidienne.

Se faire accompagner

Les contrôles de facturation ont une particularité : ils coûtent quelques secondes par document et évitent des corrections qui prennent des heures. Le total de vérification en est l'exemple parfait — une double saisie assumée, que les comptables adoptent sans discussion parce qu'ils en connaissent la raison.

Nous les posons donc en expliquant le pourquoi, et nous mesurons ensuite : combien de blocages par semaine, pour quelles causes. Un contrôle qui ne déclenche jamais peut être retiré ; un contrôle qui déclenche tous les jours révèle un problème en amont. Voir les prestations d'Atalios Consulting, notre méthode ou demander un rappel.

Pour aller plus loin

En résumé

Un total à recompter, un numéro fournisseur qui ne peut pas exister deux fois, une taxe obligatoire sur chaque ligne, et la date d'échéance enfin visible et modifiable. Plus la validation par paliers avec un approbateur par fournisseur, qui répartit la charge au lieu de créer un goulot. Parlons de vos contrôles comptables.

Documentation OCAComptabilitéFacturation

Partager

Fiches connexes

Équipe au travail sur des ordinateurs portables autour d'une table
Le module OCA `account_invoice_en16931` (dépôt `fr-einvoicing`, version 18.0.1.0.0, licence AGPL-3) est le socle qui fabrique le fichier de facture électronique conforme à la norme européenne **EN 16931** : Factur-X (PDF/A-3 avec XML CII embarqué), XML UBL, XML CII ou PDF accompagné d'un UBL — et il ajoute des **contrôles bloquants à la validation** d'une facture client. Les quatre modules qui s'y greffent pour la France, et ce que le socle ne fait pas.
Lire la suite
Documentation OCA, Facturation électronique
Réunion d'approbation autour d'un document de travail
Relevé sur une instance Odoo 18 Community, le module OCA `base_tier_validation` (dépôt `server-ux`, version 18.0.3.5.1, licence AGPL-3) ajoute 1 modèle, 101 champs et 3 menus, mais ne s'active sur aucun document métier par lui-même : il lui faut un module d'implémentation. C'est le point qui surprend le plus — voici ce qu'il fait réellement, et comment le mettre en service.
Lire la suite
Documentation OCA, Odoo