Retours, consignes, acomptes déduits : les lignes négatives sont admises par l'EN 16931 — à condition que quantité, prix et totaux soient corrects. Voici comment.
Trois cas reviennent constamment en pratique. Premièrement, la correction dans la même facture : un article saisi deux fois ou mal facturé est contre-passé juste en dessous, plutôt que d’émettre une facture rectificative séparée. Deuxièmement, consignes et retours : les emballages consignés ou les marchandises retournées sont imputés sur la livraison suivante — le retour apparaît comme une ligne à part, avec un montant négatif, à côté des nouveaux articles. Troisièmement, la déduction d’acomptes : la facture de solde liste toutes les prestations et déduit les acomptes déjà facturés sous forme de lignes négatives.
Le troisième cas mérite un examen attentif : pour les montants déjà payés, l’EN 16931 prévoit aussi le champ BT-113 (montant payé d’avance), déduit du total TTC après la TVA selon BR-CO-16. Une ligne négative agit au contraire avant la taxe et réduit la base imposable. Le bon choix dépend de la question de savoir si la facture d’acompte a déjà fait apparaître la TVA — une question fiscale, pas technique. Les deux approches sont conformes.
Le montant net de ligne BT-131 peut être négatif. La construction propre est : quantité négative, prix positif. La quantité facturée BT-129 est explicitement signée — la reprise d’une unité s’écrit simplement -1. Le prix net unitaire BT-146, en revanche, ne doit pas être négatif : c’est exactement ce qu’exige la règle de gestion BR-27 de l’EN 16931. Billhorse ne vérifie pas encore BR-27 — mais les systèmes destinataires et d’autres validateurs (comme l’outil KOSIT) le font, et une facture avec un prix négatif y est rejetée. Ne mettez donc jamais le signe sur le prix : mettez-le toujours sur la quantité.
En UBL, un retour se présente ainsi — quantité négative, prix positif, LineExtensionAmount résultant de quantité × prix :
<cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">-1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">-89.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Reprise chargeur</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>20</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">89.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
La même chose en CII (Factur-X/ZUGFeRD) : la quantité figure dans la partie livraison comme BilledQuantity, le prix comme ChargeAmount dans NetPriceProductTradePrice, et le montant de ligne comme LineTotalAmount dans la récapitulation monétaire de la ligne :
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>2</ram:LineID>
</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<ram:Name>Reprise chargeur</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>89.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="C62">-1</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>20</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>-89.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
Toute déduction n’a pas vocation à devenir une ligne. Une remise sur un article — remise quantitative, prix promotionnel — est une remise de niveau ligne (BG-27), avec son montant en BT-136 ; elle reste dans la même ligne et réduit son BT-131. Une remise sur l’ensemble de la facture — remise de fidélité, réduction globale convenue — est une remise de niveau document (BG-20, montant en BT-92) et alimente le total des remises BT-107. Une ligne négative est le bon outil quand vous représentez une opération à part entière, avec sa propre quantité et son propre article : un retour, un remboursement de consigne, un acompte déduit. Règle simple : si la déduction porte sur la livraison de quelque chose, c’est une ligne ; si ce n’est qu’une composante du prix, c’est une remise.
Les lignes négatives ne changent rien à l’arithmétique de la norme — elles entrent simplement dans les sommes. BR-CO-10 exige que le total des lignes BT-106 soit exactement égal à la somme de tous les montants nets de lignes (BT-131), valeurs négatives comprises. La chaîne se construit dessus : selon BR-CO-13, le total HT BT-109 = BT-106 − remises (BT-107) + majorations (BT-108), et selon BR-CO-15, le total TTC BT-112 = BT-109 + TVA (BT-110). Calculez toujours ces champs à partir des lignes au lieu de les maintenir séparément. Si la somme des lignes devient globalement négative, c’est formellement admis — mais dans la plupart des cas, un avoir (code de type 381) est le document le plus approprié.
Une ligne négative porte la même catégorie de TVA et le même taux que la prestation qu’elle corrige — la reprise d’un article facturé à 20 % relève de la catégorie S à 20 %, pas de Z ni de E. La base imposable de chaque catégorie est la somme des montants de ses lignes ; la ligne négative réduit donc la base de sa catégorie. Placée dans la mauvaise, la ventilation de TVA (BG-23) et les règles de la famille BR-S se contredisent — jusqu’à des incohérences comme un motif d’exonération dans une catégorie taxée (BR-S-10), et le total de TVA ne satisfait plus BR-CO-14.
Pour vérifier qu’une facture avec lignes négatives passe, utilisez le validateur dans le navigateur — le fichier ne quitte pas votre machine. Pour intégrer le même moteur dans votre logiciel, la même vérification existe en API développeur (bêta privée) avec les endpoints validate et parse.
Le validateur Billhorse vérifie Factur-X, XRechnung et ZUGFeRD directement dans votre navigateur — votre fichier n'est jamais envoyé.
Ouvrir le validateur← Tous les guides · Mis à jour: 2026-07-04