Code 381 ou 384 — et comment référence et signes s'articulent dans une facture Factur-X conforme EN 16931.
Qu’un système destinataire comptabilise un document comme une facture ou le passe en avoir dépend d’un seul champ : le code de type de facture (BT-3). Il porte un code de la liste UNTDID 1001, le répertoire UN/EDIFACT des fonctions de document, dont la norme EN 16931 admet un sous-ensemble. Un mauvais code ne provoque aucune erreur de schéma — il provoque des écritures comptables fausses. Ce guide situe les codes 381, 384 et la famille 380, puis montre à quoi doivent ressembler la référence à la facture initiale et la logique des signes en UBL et en CII (Factur-X).
Un avoir (381) est un document commercial autonome qui crédite un montant à l’acheteur — après un retour, une réclamation ou une remise rétroactive. Il porte son propre numéro et n’annule pas la facture initiale : il la compense en tout ou en partie. En pratique française, l’avoir doit mentionner la facture d’origine — d’où l’importance du groupe BG-3 décrit plus bas. À ne pas confondre avec l’autofacturation (la facture émise par le client au nom du fournisseur) : c’est le code 389.
Une facture rectificative (384) remplace une facture antérieure sur le fond — mauvais taux de TVA, mauvaise adresse, mauvais identifiant de routage. Fonctionnellement, la 384 se substitue entièrement à la facture initiale, qui devient caduque.
Pour la facturation par étapes, il y a la famille 380 : 326 (facture partielle), 386 (facture d’acompte), et la facture de solde comme une 380 ordinaire qui impute les acomptes versés via BT-113.
Particularité UBL : un 381 circule habituellement dans son propre élément racine, CreditNote, avec cbc:CreditNoteTypeCode, tandis que 380/384/326 restent dans la racine Invoice avec cbc:InvoiceTypeCode. La syntaxe CII — celle de Factur-X et de ZUGFeRD — ne connaît que CrossIndustryInvoice ; le code s’y trouve toujours dans ram:ExchangedDocument/ram:TypeCode :
<!-- UBL, racine Invoice (380, 384, 326 …) -->
<cbc:InvoiceTypeCode>384</cbc:InvoiceTypeCode>
<!-- UBL, racine CreditNote (381) -->
<cbc:CreditNoteTypeCode>381</cbc:CreditNoteTypeCode>
<!-- CII (Factur-X, ZUGFeRD, XRechnung CII) -->
<ram:TypeCode>381</ram:TypeCode>
Un avoir ou une rectificative sans référence est quasi inexploitable pour la comptabilité fournisseurs du destinataire. La norme EN 16931 prévoit pour cela le groupe BG-3 : le numéro de la facture antérieure (BT-25) et, en option, sa date d’émission (BT-26). Le groupe est facultatif et répétable dans la norme (un avoir couvrant plusieurs factures), mais en pratique chaque 381 et chaque 384 devrait le porter — beaucoup de systèmes de workflow font le rapprochement automatiquement sur ce champ.
En UBL :
<cac:BillingReference>
<cac:InvoiceDocumentReference>
<cbc:ID>FA-2026-0417</cbc:ID>
<cbc:IssueDate>2026-05-12</cbc:IssueDate>
</cac:InvoiceDocumentReference>
</cac:BillingReference>
En CII, la référence se place dans ApplicableHeaderTradeSettlement ; comme toujours, la date exige format="102" (AAAAMMJJ) :
<ram:ApplicableHeaderTradeSettlement>
<!-- … devise, taxes, totaux … -->
<ram:InvoiceReferencedDocument>
<ram:IssuerAssignedID>FA-2026-0417</ram:IssuerAssignedID>
<ram:FormattedIssueDateTime>
<qdt:DateTimeString format="102">20260512</qdt:DateTimeString>
</ram:FormattedIssueDateTime>
</ram:InvoiceReferencedDocument>
</ram:ApplicableHeaderTradeSettlement>
La norme EN 16931 autorise explicitement des valeurs négatives dans les champs de totaux (BT-106 à BT-115) et n’impose aucun schéma particulier. Deux conventions se sont établies dans la pratique.
D’abord le 381 avec des montants positifs : le type de document inverse lui-même le sens comptable, les montants ne chiffrent que la valeur créditée. Ensuite la facture négative : une 380 ou 384 avec des totaux négatifs, admise notamment par XRechnung depuis la version 2.0.
Ce qu’il faut éviter, c’est la combinaison : un 381 avec des totaux négatifs est doublement inversé, voire rejeté, par de nombreux systèmes destinataires. Choisissez un schéma — au besoin celui qu’indique le destinataire ou la plateforme — et tenez-le de bout en bout.
De bout en bout signifie : les règles arithmétiques BR-CO de l’EN 16931 calculent en valeurs signées et s’appliquent sans changement. BT-106 doit être la somme des montants de ligne, BT-112 doit valoir BT-109 + BT-110. Ne rendre négatif que le total final en laissant les lignes positives fait échouer la validation à coup sûr.
Sur les avoirs et rectificatives, cinq messages reviennent surtout. BH-TYPE-01 signale un code de type exotique tiré du catalogue UNTDID complet (comme 80 ou 261) — restez sur 380, 381, 384 et 326. BR-CO-10 se déclenche quand BT-106 ne correspond pas à la somme des montants nets de ligne (BT-131) — le grand classique : totaux inversés, lignes non. BR-CO-13 touche les rectificatives qui reprennent les remises ou majorations (BT-107/108) de la facture initiale sans inverser leur signe. BR-CO-14 relève un total de TVA qui ne correspond pas à la ventilation (BG-23) — typique quand on a oublié les montants par catégorie lors du changement de signe. Et BR-CO-15 attrape les totaux TTC calculés en valeurs absolues au lieu de la somme signée BT-109 + BT-110.
Le validateur Billhorse contrôle le code de type, la référence à la facture initiale et toute l’arithmétique BR-CO directement dans le navigateur — le fichier ne quitte pas votre machine. Le même moteur existe en API avec les points d’accès validate et parse, actuellement en bêta privée.
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