---
title: Les 50 champs EN 16931 expliqués : le dictionnaire de la facture électronique
source: https://synapx.fr/blog/champs-en-16931-expliques/
date: 2026-06-27
category: Facturation électronique
site: SynapxLab
---

# Les 50 champs EN 16931 expliqués : le dictionnaire de la facture électronique européenne

La norme EN 16931-1 (publiée par le CEN en 2017, mise à jour en 2024) définit le **modèle sémantique** commun à toutes les factures électroniques européennes. C'est le « dictionnaire » qui fixe la signification de chaque information — indépendamment du format technique. Factur-X en est une implémentation concrète : il mappe ce modèle sur la syntaxe **CII (Cross Industry Invoice)** de la norme UN/CEFACT.

Le modèle EN 16931 définit environ **160 Business Terms (BT)**, regroupés en **Business Groups (BG)**. Dans la pratique, une cinquantaine de ces champs couvre l'immense majorité des factures B2B courantes. C'est ce sous-ensemble que nous allons parcourir ici.

> **Note de rigueur** : les identifiants `BT-xx` et `BG-xx` cités dans cet article correspondent à des champs dont l'existence et le numéro sont vérifiés dans la spécification publiée. Lorsqu'un numéro n'est pas indiqué, le champ est décrit par sa fonction — référez-vous à la liste normative complète disponible sur le site du CEN ou auprès de la FNFE-MPE.

---

## Pourquoi EN 16931 plutôt que « le format Factur-X » ?

Factur-X est une **syntaxe** (XML embarqué dans un PDF). EN 16931 est la **sémantique** : elle dit ce que signifie « montant HT », « identifiant TVA vendeur », « date de facture ». Comprendre les BT vous permet de lire n'importe quelle facture conforme — Factur-X, Peppol BIS, XRechnung — avec le même référentiel.

> 🔎 Avant de lire la suite, testez vos propres fichiers Factur-X dans le **[testeur Factur-X SynapxLab](/sdk/FactureX/)** — il identifie les BT manquants ou mal formés en quelques secondes.

Articles connexes :
- [Factur-X : comprendre et valider](/blog/factur-x-comprendre-valider/)
- [20 erreurs Factur-X fréquentes](/blog/20-erreurs-factur-x-frequentes/)
- [Générer Factur-X en PHP](/blog/generer-factur-x-php/)

---

## Groupe 1 — En-tête / Contrôle du processus

Ces champs décrivent la facture elle-même : son identité, son type, ses dates et sa devise.

| BT | Libellé | Obligatoire EN 16931 | Exemple |
|----|---------|----------------------|---------|
| **BT-1** | Numéro de facture | Oui | `FAC-2024-00042` |
| **BT-2** | Date d'émission | Oui | `20240315` (format YYYYMMDD — code 102 UNCL2379) |
| **BT-3** | Code type de document | Oui | `380` (facture commerciale), `381` (avoir) |
| **BT-5** | Code devise de la facture | Oui | `EUR` (ISO 4217) |
| **BT-6** | Code devise de comptabilité TVA | Non | `EUR` (si différente de BT-5) |
| **BT-7** | Date de fait générateur TVA | Non | `20240301` |
| **BT-9** | Date d'échéance | Non | `20240415` |
| **BT-10** | Référence acheteur | Non* | `SERV-COMPTA-42` |
| **BT-11** | Référence projet | Non | `PROJ-2024-07` |
| **BT-12** | Référence contrat | Non | `CONTRAT-ABC-2023` |
| **BT-13** | Référence bon de commande acheteur | Non | `BC-00098` |

> **Piège — format de date (code 102)** : EN 16931 impose le format `YYYYMMDD` (code de qualification `102` dans la nomenclature UNCL2379). Un format `DD/MM/YYYY` ou ISO 8601 avec tirets (`2024-03-15`) sera rejeté par les validateurs conformes. En CII Factur-X : `<udt:DateTimeString format="102">20240315</udt:DateTimeString>`.

> **Piège — BT-3** : ne confondez pas `380` (facture) et `381` (avoir/note de crédit). Un avoir avec `380` passe les validateurs XML mais sera mal interprété par les ERP.

*BT-10 est obligatoire dans plusieurs profils Peppol et devient de facto incontournable dans les échanges B2G.

---

## Groupe 2 — Vendeur (BG-4)

Le vendeur est l'émetteur de la facture. En France, c'est l'entité immatriculée qui facture.

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-27** | Nom du vendeur | Oui | `ACME SAS` |
| **BT-28** | Nom commercial du vendeur | Non | `ACME Digital` |
| **BT-29** | Identifiant du vendeur | Non | `0002:123456789` (SIRET avec schème 0002) |
| **BT-30** | Identifiant d'immatriculation légale | Non | `123 456 789 RCS Paris` |
| **BT-31** | Numéro de TVA intracommunautaire | Non* | `FR12345678901` |
| **BT-34** | Adresse électronique du vendeur (PEPPOL) | Non | `acme@peppol.eu` |

**Adresse postale du vendeur (BG-5) :**

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-35** | Ligne d'adresse 1 | Non | `12 rue de la Paix` |
| **BT-37** | Ville | Oui | `Paris` |
| **BT-38** | Code postal | Non | `75001` |
| **BT-40** | Code pays ISO 3166-1 alpha-2 | Oui | `FR` |

*BT-31 est obligatoire dès que la facture porte de la TVA (cas général en B2B). Son absence bloque la validation EN 16931 dans ce contexte.

---

## Groupe 3 — Acheteur (BG-7)

L'acheteur est le destinataire de la facture.

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-44** | Nom de l'acheteur | Oui | `CLIENT SARL` |
| **BT-46** | Identifiant de l'acheteur | Non | `0002:987654321` |
| **BT-47** | Identifiant d'immatriculation légale | Non | `987 654 321 RCS Lyon` |
| **BT-48** | Numéro de TVA intracommunautaire | Non | `FR98765432100` |
| **BT-49** | Adresse électronique acheteur (PEPPOL) | Non | `client@peppol.eu` |

**Adresse postale de l'acheteur (BG-8) — champs principaux :**

Les BT correspondant à la ligne d'adresse 1, la ville, le code postal et le code pays de l'acheteur suivent la même structure que BG-5. Le code pays (équivalent BT-40 côté acheteur) est **obligatoire**.

---

## Groupe 4 — Paiement

EN 16931 définit plusieurs sous-groupes pour le paiement. Les champs les plus utilisés en pratique :

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-81** | Code moyen de paiement (UNCL4461) | Non* | `30` (virement), `49` (prélèvement), `10` (chèque) |
| **BT-83** | Référence remise (référence virement) | Non | `FAC-2024-00042` |
| **BT-84** | Identifiant du compte de paiement | Non | `FR7612345678901234567890189` (IBAN) |
| **BT-86** | Identifiant du prestataire de services de paiement | Non | `BNPAFRPP` (BIC) |

*BT-81 est obligatoire si vous renseignez le groupe de paiement. L'absence d'IBAN (BT-84) n'est pas bloquante techniquement, mais l'acheteur ne pourra pas payer par virement automatiquement.

> **Piège — conditions de paiement** : EN 16931 gère les conditions de paiement via un champ texte libre et la date d'échéance BT-9. Les escomptes conditionnels ou les pénalités de retard s'expriment dans des champs dédiés que certains profils étendus supportent — vérifiez le profil cible.

---

## Groupe 5 — Totaux et montants (BG-22)

C'est le groupe le plus critique. Toute incohérence arithmétique ici invalide la facture.

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-106** | Somme des montants nets des lignes | Oui | `1000.00` |
| **BT-107** | Somme des remises sur document | Non | `50.00` |
| **BT-108** | Somme des frais sur document | Non | `10.00` |
| **BT-109** | Montant total HT de la facture | Oui | `960.00` |
| **BT-110** | Montant total de TVA | Oui | `192.00` |
| **BT-112** | Montant total TTC de la facture | Oui | `1152.00` |
| **BT-113** | Montant déjà payé (acompte) | Non | `200.00` |
| **BT-114** | Montant d'arrondi | Non | `0.01` |
| **BT-115** | Montant dû au paiement | Oui | `952.00` |

> **Piège — cohérence arithmétique** : les validateurs EN 16931 vérifient les équations suivantes :
>
> ```
> BT-109 = BT-106 - BT-107 + BT-108
> BT-112 = BT-109 + BT-110
> BT-115 = BT-112 - BT-113 + BT-114
> ```
>
> Un arrondi non déclaré dans BT-114 (même de 0,01 €) provoque une erreur de validation. Tous les montants sont exprimés avec 2 décimales en EUR.

---

## Groupe 6 — Ventilation TVA (BG-23)

Pour chaque taux de TVA applicable, un BG-23 distinct est créé.

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-116** | Assiette taxable de la catégorie TVA | Oui | `960.00` |
| **BT-117** | Montant de TVA de la catégorie | Oui | `192.00` |
| **BT-118** | Code catégorie de TVA | Oui | `S` |
| **BT-119** | Taux de TVA de la catégorie | Non* | `20` |
| **BT-120** | Motif d'exonération de TVA (texte) | Non** | `Livraison intracommunautaire exonérée` |
| **BT-121** | Code motif d'exonération de TVA | Non** | `vatex-eu-ic` |

*BT-119 est obligatoire pour les catégories `S` (taux standard) et `AA` (taux réduit). Inutile pour `Z` (taux zéro), `E` (exonéré), `O` (hors champ).

**BT-120/BT-121 sont obligatoires pour les catégories autres que `S` et `AA`.

**Codes catégorie TVA fréquents (UNCL5305) :**

| Code | Signification | Taux FR typique |
|------|---------------|-----------------|
| `S` | Taux standard | 20 %, 10 %, 5,5 % |
| `AA` | Taux réduit | 2,1 % |
| `Z` | Taux zéro | 0 % |
| `E` | Exonéré | — |
| `AE` | Auto-liquidation | — |
| `G` | Hors TVA (export) | — |
| `O` | Hors champ d'application | — |

> **Piège — cohérence catégorie/taux** : une ligne `BT-118 = "E"` avec `BT-119 = "20"` sera rejetée. Le code catégorie et le taux doivent être cohérents, et la somme des assiettes BT-116 de tous les BG-23 doit égaler BT-109.

---

## Groupe 7 — Lignes de facture (BG-25)

Chaque ligne de facture est un BG-25. Une facture doit en contenir au moins une.

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-126** | Identifiant de ligne | Oui | `1`, `2`, `3`... |
| **BT-127** | Note de ligne | Non | `Remise fidélité appliquée` |
| **BT-129** | Quantité facturée | Oui | `5.000` |
| **BT-130** | Code unité de mesure (UN/ECE Rec 20) | Oui | `HUR` (heure), `C62` (unité), `KGM` (kg) |
| **BT-131** | Montant net de la ligne | Oui | `500.00` |
| **BT-132** | Référence ligne bon de commande | Non | `BC-00098-L01` |
| **BT-133** | Référence comptable acheteur | Non | `CENTRE-COUT-42` |

**Détail prix (BG-29) :**

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-146** | Prix net unitaire | Oui | `100.00` |
| **BT-147** | Remise sur prix unitaire | Non | `5.00` |
| **BT-148** | Prix brut unitaire | Non | `105.00` |
| **BT-149** | Quantité de base du prix | Non | `1` |
| **BT-150** | Code unité de la quantité de base | Non | `C62` |

**Information article (BG-31) :**

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-153** | Désignation de l'article | Oui | `Prestation de conseil informatique` |
| **BT-154** | Description de l'article | Non | `Audit architecture cloud, 5h` |
| **BT-155** | Référence vendeur | Non | `SKU-CONS-CLOUD` |
| **BT-156** | Référence acheteur | Non | `ART-42` |
| **BT-158** | Identifiant de classification | Non | `72.19.30` (CPV, CPC, etc.) |
| **BT-159** | Pays d'origine | Non | `FR` |

**TVA sur la ligne (BG-30) :**

| BT | Libellé | Obligatoire | Exemple |
|----|---------|-------------|---------|
| **BT-151** | Code catégorie TVA de l'article facturé | Oui | `S` |
| **BT-152** | Taux de TVA de l'article facturé | Non* | `20` |

*BT-152 est obligatoire pour les catégories `S` et `AA`, facultatif pour les autres.

> **Piège — BT-131 vs BT-146 × BT-129** : le montant net de la ligne (BT-131) doit correspondre à `BT-146 × BT-129`. Si vous appliquez une remise ligne (via un groupe dédié aux remises/frais de ligne), l'équation s'ajuste. Un écart de plus de 0,01 € est une erreur bloquante dans EN 16931.

---

## Récapitulatif : obligatoire vs optionnel

```
OBLIGATOIRES (tout profil EN 16931 conforme)
├── BT-1  Numéro de facture
├── BT-2  Date d'émission
├── BT-3  Code type de document
├── BT-5  Devise
├── BT-27 Nom du vendeur
├── BT-37 Ville du vendeur
├── BT-40 Pays du vendeur
├── BT-44 Nom de l'acheteur
├── BT-106/109/110/112/115  Totaux
├── BT-116/117/118  Ventilation TVA (par taux)
└── Par ligne : BT-126, BT-129/130, BT-131, BT-146, BT-151, BT-153

TRÈS FRÉQUEMMENT REQUIS (obligatoires en pratique)
├── BT-31 TVA intracommunautaire vendeur
├── BT-9  Date d'échéance
├── BT-13 Référence bon de commande
└── BT-84 IBAN

OPTIONNELS UTILES
├── BT-10 Référence acheteur
├── BT-12 Référence contrat
├── BT-127/133  Notes et références comptables de ligne
└── BT-154/155  Description et référence SKU
```

---

## Pièges récapitulatifs

1. **Format de date** : toujours `YYYYMMDD` avec qualificateur `102`. Jamais de tirets ni de slashes.
2. **Devise ISO 4217** : `EUR`, pas `€` ni `euro`. BT-5 et tous les montants doivent utiliser la même devise (sauf BT-6 si comptabilité TVA dans une autre devise).
3. **Cohérence catégorie TVA / taux** : `S` impose un taux non nul, `E` impose un motif d'exonération. Les mélanges provoquent des erreurs sémantiques non détectées par les validateurs XML basiques.
4. **Équation HT + TVA = TTC** : `BT-109 + BT-110 = BT-112`, sans exception. Les arrondis passent par BT-114.
5. **Au moins un BG-25** : une facture sans ligne est techniquement invalide selon EN 16931.
6. **Identifiants de schème** : BT-29 (SIRET) doit être préfixé du schème ISO 6523 (`0002:` pour SIRET en France). Un SIRET brut sans schème est conforme XML mais sémantiquement ambigu.

---

## FAQ

**Quelle est la différence entre le profil EN 16931 et le profil EXTENDED de Factur-X ?**
Le profil EN 16931 implémente strictement la norme CEN sans ajout. Le profil EXTENDED autorise des champs supplémentaires définis dans le guide d'implémentation Factur-X de la FNFE-MPE. Pour la majorité des factures B2B, le profil EN 16931 suffit.

**Comment savoir quel BT correspond à quel élément XML dans un fichier Factur-X ?**
La table de correspondance BT ↔ XPath CII figure dans le guide d'implémentation Factur-X publié par la FNFE-MPE ([fnfe-mpe.org](https://fnfe-mpe.org)).

**Les ~160 BT totaux sont-ils tous utilisables dans Factur-X ?**
Oui, mais seulement les BT compris dans le profil choisi. Le profil MINIMUM n'expose qu'une vingtaine de BT ; le profil EXTENDED les couvre presque tous.

**Doit-on renseigner BT-31 (TVA vendeur) pour une micro-entreprise en franchise de TVA ?**
Non. Une micro-entreprise en franchise (art. 293 B du CGI) n'a pas de numéro de TVA intracommunautaire. Dans ce cas, BT-118 vaut `E` (exonéré), BT-119 est absent, et BT-120/121 indiquent le motif d'exonération. Renseigner un faux numéro de TVA est une non-conformité grave.

---

## Pour aller plus loin

- [Testeur Factur-X SynapxLab](/sdk/FactureX/) — validation EN 16931 + retour par BT
- [Factur-X : comprendre et valider](/blog/factur-x-comprendre-valider/)
- [20 erreurs Factur-X fréquentes](/blog/20-erreurs-factur-x-frequentes/)
- [Générer Factur-X en PHP](/blog/generer-factur-x-php/)
- FNFE-MPE — guides et ressources : [fnfe-mpe.org](https://fnfe-mpe.org) et [services.fnfe-mpe.org](https://services.fnfe-mpe.org/)
- Norme EN 16931 (CEN) : [standards.cen.eu](https://standards.cen.eu) — rechercher « EN 16931-1:2017 »
