Champs par défaut d'un modèle¶
À sa création, un modèle ne naît pas vide : il reçoit les champs que sa nature impose, plus ceux que tout le monde ajoutait à la main. Cette page les liste, dans l'ordre où ils deviennent les colonnes du fichier généré.
Deux obligations à distinguer :
- Structurel — le module ne sait pas lire un fichier sans ce champ. Il ne se retire pas et reste obligatoire.
- Semé — le champ est lié d'avance par commodité, mais reste facultatif : vous pouvez le retirer du modèle ou le rendre obligatoire.
Les portées s'affichent Facture pour ce qui décrit le document entier et Ligne pour ce qui décrit une de ses lignes.
Factures de vente¶
Vingt-cinq champs, dont quinze structurels.
Portée Facture¶
| Libellé | Code | Type | Obligation |
|---|---|---|---|
| Etablissement | establishment |
Texte | Structurel |
| Point de vente | pointOfSale |
Texte | Structurel |
| Vendeur | seller |
Texte | Semé |
| Référence interne | reference |
Texte | Structurel |
| Date d'émission interne | issueDate |
Date | Structurel |
| Type de facturation | invoiceTemplate |
Énuméré | Structurel |
| Devise | currency |
Texte | Structurel |
| Taux de change | currencyRate |
Décimal | Semé |
| Mode de paiement | paymentMethod |
Énuméré | Structurel |
| Référence client | customerReference |
Texte | Semé |
| Client | customerName |
Texte | Structurel |
| NCC du client | customerFiscalIdentifier |
Texte | Semé |
| Téléphone client | customerPhone |
Texte | Semé |
| Email client | customerEmail |
Texte | Semé |
| Objet | object |
Texte | Semé |
| Condition de paiement | paymentCondition |
Texte | Semé |
Portée Ligne¶
| Libellé | Code | Type | Obligation |
|---|---|---|---|
| Référence facture | invoiceReference |
Texte | Structurel |
| N° ligne | lineNo |
Entier | Structurel |
| Référence produit | productReference |
Texte | Semé |
| Désignation | productName |
Texte | Structurel |
| Quantité | quantity |
Décimal | Structurel |
| Unité de mesure | measureUnit |
Texte | Semé |
| Prix unitaire HT | unitPrice |
Monétaire | Structurel |
| Remise (%) | discountPercent |
Pourcentage | Structurel |
| TVA | vat |
Énuméré | Structurel |
Référence facture, la clé de regroupement
Les lignes qui partagent la même Référence facture forment une seule facture. C'est ce champ qui rassemble les lignes du fichier en documents.
Bordereaux d'achat¶
Vingt-quatre champs : les mêmes que la vente, moins la TVA — l'endpoint d'achat de la DGI n'accepte aucune taxe sur les lignes.
Cinq champs semés changent de libellé, sans changer de code, puisque le tiers nommé est un fournisseur :
| Libellé sur un bordereau | Code | Libellé sur une facture |
|---|---|---|
| Référence fournisseur | customerReference |
Référence client |
| Nom du fournisseur | customerName |
Client |
| NCC du fournisseur | customerFiscalIdentifier |
NCC du client |
| Téléphone du fournisseur | customerPhone |
Téléphone client |
| Email du fournisseur | customerEmail |
Email client |
Le reste — obligations, types, ordre — est identique au tableau de la vente.
Avoirs¶
Sept champs, tous structurels : le catalogue de l'avoir appartient au module et ne se règle pas. Un avoir ne décrit pas une vente, il désigne la facture qu'il corrige et les quantités qu'il annule.
| Libellé | Code | Type | Portée |
|---|---|---|---|
| Référence avoir | reference |
Texte | Facture |
| Réf. facture initiale | initialInvoiceReference |
Texte | Facture |
| Date d'émission | issueDate |
Date | Facture |
| Description | description |
Texte | Facture |
| Référence avoir | creditNoteReference |
Texte | Ligne |
| N° ligne initiale | targetLineNo |
Entier | Ligne |
| Quantité à annuler | quantityToCancel |
Décimal | Ligne |
Aucun des champs semés de la vente ne s'y ajoute : la liste ci-dessus est exhaustive.
Valeurs des champs énumérés¶
La feuille Légende du classeur généré récapitule ces valeurs sous le titre Valeurs permises, mais elle n'en donne que les codes pour le type de facturation et la TVA. Voici leur signification.
Type de facturation¶
| Valeur | Signification |
|---|---|
B2B |
Le client est une entreprise ou un professionnel possédant un NCC |
B2G |
Le client est une institution gouvernementale |
B2C |
Le client est un particulier |
B2F |
Le client est à l'international |
L'interface n'affiche que le code : il est transmis tel quel à la FNE.
À ne pas confondre avec le type de facturation de l'import
Ce champ porte le libellé Type de facturation, mais il désigne le type de transaction FNE. Il n'a rien à voir avec les types de facturation — facturation classique, BTP/TELECOM, distribution… — qui décrivent la présentation du document. Les deux notions partagent malheureusement le même nom à l'écran.
Mode de paiement¶
| Valeur | Libellé |
|---|---|
cash |
Espèce |
card |
Carte bancaire |
check |
Chèque |
mobile-money |
Mobile money |
transfer |
Virement bancaire |
deferred |
A terme |
TVA¶
| Valeur | Signification |
|---|---|
TVA |
TVA normale de 18 % |
TVAB |
TVA réduite de 9 % |
TVAC |
TVA exonérée conventionnelle de 0 % |
TVAD |
TVA exonérée légale de 0 %, pour les TEE, les RME et opérations exonérées légalement |
TVAE |
TVA exonérée export de 0 % |
Là encore, seul le code s'écrit dans le fichier.
Devise¶
Le champ Devise n'est pas énuméré dans le modèle : rien ne vous empêche d'y saisir n'importe quel texte. La FNE, elle, n'accepte que ces onze devises :
| Valeur | Devise | Valeur | Devise |
|---|---|---|---|
XOF |
Franc CFA | AUD |
Dollar australien |
USD |
Dollar américain | CNH |
Yuan chinois |
EUR |
Euro | CHF |
Franc suisse |
JPY |
Yen japonais | HKD |
Dollar de Hong Kong |
CAD |
Dollar canadien | NZD |
Dollar néo-zélandais |
GBP |
Livre sterling |
Règles de contrôle à l'import¶
Aucun champ du catalogue n'arrive avec une règle de validation ni une formule de calcul de modèle : les deux sont vides partout, et se posent ensuite champ par champ, comme le décrit Personnaliser les champs d'un modèle.
Le module applique en revanche ses propres contrôles à la lecture du fichier. Chaque manquement devient une ligne de la section Erreurs et avertissements de l'import, avec sa feuille et son numéro de ligne.
Champs obligatoires¶
Un champ obligatoire laissé vide bloque l'import — sauf s'il porte une formule de calcul dans le modèle : le module le calcule alors et n'attend plus rien du fichier.
Formats attendus¶
| Type | Ce qui est accepté |
|---|---|
| Date | aaaa-mm-jj en CSV, XML et JSON ; jj/mm/aaaa en Excel |
| Entier | Un nombre sans décimale |
| Décimal, Monétaire, Pourcentage | Un nombre, virgule ou point au choix comme séparateur |
| Booléen | oui, non, yes, no, true, false |
| Texte, Énuméré | Aucun contrôle de forme |
Les deux conventions de date se ressemblent peu, et c'est voulu : un classeur se remplit à la main, les trois autres formats sont écrits par un autre système.
En Excel, ne reformatez rien
Si la cellule est réellement de type date, le module la convertit lui-même, quel que soit son affichage — 2026-12-25, 25 décembre 2026, format américain. La forme jj/mm/aaaa ne concerne que les cellules de texte.
Un fichier de collecte encore écrit en jj/mm/aaaa est refusé, avec un message qui nomme la cause plutôt qu'une simple erreur de type.
La date est par ailleurs vérifiée pour de bon, et pas seulement dans sa forme : 2026-13-45 a beau avoir la bonne allure, il n'existe pas, et l'import le refuse.
Règles entre champs¶
| Règle | Portée |
|---|---|
Si le Type de facturation vaut B2B, le NCC du client devient obligatoire |
Facture |
Si le Type de facturation vaut B2B, le Téléphone client et l'Email client deviennent obligatoires |
Facture |
| Le NCC, dès qu'il est renseigné, doit comporter 7 chiffres suivis d'une lettre majuscule — quel que soit le type de facturation | Facture |
| Si Lié au RNE vaut oui, le champ RNE lié à devient obligatoire | Facture |
| Dès qu'une Autre taxe porte un nom, son pourcentage devient obligatoire | Ligne |
| La Remise (%) ne peut pas être négative | Ligne |
La règle sur les autres taxes ne joue que si vous avez lié ces champs, qu'aucune nature ne sème ; un bordereau d'achat ne les propose même pas. La remise, elle, est semée et structurelle dans les deux natures.
Changelog¶
- 1.0 (4 août 2026) : création du document.