Aller au contenu principal
Diag Invoice

Un prix unitaire négatif peut-il faire rejeter ma facture électronique ?

Oui : dans le socle EN16931 vérifié ici, le prix unitaire net ne peut pas être négatif, y compris sur une ligne d’avoir. Avant de corriger, vérifiez le profil et le contexte du document : certains contrats bidirectionnels suivent une branche particulière des contrôles français.

Intégrateurs · équipes comptablesPublié le Mis à jour le

Lire le prix de la ligne, pas seulement son montant

Une ligne qui réduit le total peut porter plusieurs informations : quantité, prix unitaire, remise et montant net. Le contrôle cité en fin de page porte sur le prix unitaire net. Il ne faut donc pas confondre un montant de ligne négatif avec un prix unitaire négatif.

Dans le test UBL EN16931 consulté, zéro est admis par cette assertion. Dire que cette règle exige toujours un prix strictement supérieur à zéro serait inexact. D’autres règles peuvent toutefois contrôler les autres valeurs de la ligne.

Le même contrôle existe dans les contextes de ligne de facture et de ligne d’avoir. Transformer le document en avoir ne dispense donc pas, à lui seul, de vérifier le signe du prix.

Un exemple pour comprendre le signe

Le jeu de test synthétique consulté contient une ligne de régularisation de quantité 1, avec un prix unitaire de −300,00 € et un montant de ligne de −300,00 €. Il ne s’agit pas d’une facture client.

Sur le seul plan arithmétique, une quantité de −1 multipliée par un prix de 300,00 € conserve le montant de −300,00 €. Cette égalité aide à comprendre pourquoi le signe peut se trouver au mauvais endroit dans un export.

Elle ne suffit pas à valider une correction métier. L’intégrateur doit confirmer que la quantité négative représente bien l’opération et que le format, le profil, les remises, les taxes et les références restent cohérents. Ne changez pas uniquement le prix en conservant la quantité positive : le montant de la ligne changerait de sens.

Illustration arithmétique issue du banc synthétique
ÉcritureCalcul du montant de ligne
Valeurs de la variante fautive1 × (−300,00 €) = −300,00 €
Écriture à examiner selon le cas métier(−1) × 300,00 € = −300,00 €

Vérifier le contrat et le profil avant toute exception

La couche française consultée prévoit une branche pour des cadres de contrat bidirectionnel. Cela n’autorise pas à choisir un autre code de contrat pour faire disparaître un rejet : ce code doit décrire la situation réelle.

Une exception dans une couche de contrôle ne dit pas quelles autres couches s’appliquent au document. Comparez le profil annoncé, le scénario exécuté et la règle réellement remontée par la plateforme. La version et la sévérité font partie du diagnostic.

Pour vérifier

Sources et repères techniques

CEN · Validation UBL EN16931

1.3.16 · 10 avril 2026

EN16931-UBL-validation-preprocessed.sch, BR-27, contextes InvoiceLine et CreditNoteLine.

Le test du prix unitaire net impose une valeur supérieure ou égale à zéro. Cette référence porte sur le socle UBL EN16931.

FNFE-MPE · Contrôles France Flux 2 UBL

1.4.0.04 · 4 septembre 2026

BR-FR-Flux2-Schematron-UBL.sch, BR-FR-DEC-03_BT-146 ; fonction custom:isSpecialContractBD.

Le contrôle français prévoit une branche particulière pour les cadres S9, B9 et M9. L’applicabilité de l’ensemble des couches du profil doit être vérifiée.

FNFE-MPE · Modes de contrôle France Flux 2 UBL

1.4.0.04 · 4 septembre 2026

En-têtes de BR-FR-Flux2-Schematron-UBL.sch et BR-FR-Flux2-Schematron-UBL_WARNING.sch.

L’en-tête du mode FATAL indique une application en réception au plus tard le 1er octobre 2026 et en émission à compter du 1er octobre 2026.

BR-27, CEN 1.3.16 du 10/04/2026 : le test UBL compare cac:Price/cbc:PriceAmount à zéro avec >=. Le champ métier concerné est BT-146.

BR-FR-DEC-03_BT-146, FNFE 1.4.0.04 du 04/09/2026 : custom:isSpecialContractBD reconnaît les cadres S9, B9 et M9. Cette page ne conclut pas à l’acceptation globale d’un document dans ces cadres.

Ce qu’il faut faire

  1. Retrouver la valeur du prix unitaire dans le fichier transmis et la ligne désignée par le retour.
  2. Vérifier le format, le profil, le contexte métier et les versions de contrôle.
  3. Faire confirmer la correction dans le logiciel source, puis recalculer la facture complète.
  4. Contrôler le nouvel export et rechercher le même défaut sur les autres lignes issues du paramétrage.

Diag Invoice automatise le contrôle des factures et la lecture des écarts techniques décrits dans ces réponses.