Default fields of a model¶
A model is not born empty: it receives the fields its nature imposes, plus the ones everybody used to add by hand. This page lists them, in the order they become the columns of the generated file.
Two obligations to tell apart:
- Structural — the module cannot read a file without this field. It cannot be removed and stays required.
- Seeded — the field is bound in advance for convenience, but stays optional: you may unbind it or make it required.
Scopes read Facture (Invoice) for what describes the whole document and Ligne (Line) for what describes one of its lines.
Sales invoices¶
Twenty-five fields, fifteen of them structural.
Invoice scope¶
| Label | Code | Type | Obligation |
|---|---|---|---|
| Etablissement (Establishment) | establishment |
Text | Structural |
| Point de vente (Point of sale) | pointOfSale |
Text | Structural |
| Vendeur (Seller) | seller |
Text | Seeded |
| Référence interne (Internal reference) | reference |
Text | Structural |
| Date d'émission interne (Internal issue date) | issueDate |
Date | Structural |
| Type de facturation (Invoicing type) | invoiceTemplate |
Enumerated | Structural |
| Devise (Currency) | currency |
Text | Structural |
| Taux de change (Currency rate) | currencyRate |
Decimal | Seeded |
| Mode de paiement (Payment method) | paymentMethod |
Enumerated | Structural |
| Référence client (Customer reference) | customerReference |
Text | Seeded |
| Client (Customer) | customerName |
Text | Structural |
| NCC du client (Customer TIN) | customerFiscalIdentifier |
Text | Seeded |
| Téléphone client (Customer phone) | customerPhone |
Text | Seeded |
| Email client (Customer email) | customerEmail |
Text | Seeded |
| Objet (Object) | object |
Text | Seeded |
| Condition de paiement (Payment condition) | paymentCondition |
Text | Seeded |
Line scope¶
| Label | Code | Type | Obligation |
|---|---|---|---|
| Référence facture (Invoice reference) | invoiceReference |
Text | Structural |
| N° ligne (Line no) | lineNo |
Integer | Structural |
| Référence produit (Product reference) | productReference |
Text | Seeded |
| Désignation (Description) | productName |
Text | Structural |
| Quantité (Quantity) | quantity |
Decimal | Structural |
| Unité de mesure (Measure unit) | measureUnit |
Text | Seeded |
| Prix unitaire HT (Unit price excl. tax) | unitPrice |
Money | Structural |
| Remise (%) (Discount) | discountPercent |
Percent | Structural |
| TVA (VAT) | vat |
Enumerated | Structural |
Invoice reference, the grouping key
The rows sharing the same Référence facture form a single invoice. That field is what gathers the rows of the file into documents.
Purchase slips¶
Twenty-four fields: the same as a sale, minus TVA — the purchase endpoint of the DGI accepts no tax on lines.
Five seeded fields change label, without changing code, since the party named is a supplier:
| Label on a purchase slip | Code | Label on an invoice |
|---|---|---|
| Référence fournisseur (Supplier reference) | customerReference |
Référence client |
| Nom du fournisseur (Supplier name) | customerName |
Client |
| NCC du fournisseur (Supplier TIN) | customerFiscalIdentifier |
NCC du client |
| Téléphone du fournisseur (Supplier phone) | customerPhone |
Téléphone client |
| Email du fournisseur (Supplier email) | customerEmail |
Email client |
Everything else — obligations, types, order — matches the sales table.
Credit notes¶
Seven fields, all structural: the credit note catalogue belongs to the module and cannot be tuned. A credit note does not describe a sale; it names the invoice it corrects and the quantities it cancels.
| Label | Code | Type | Scope |
|---|---|---|---|
| Référence avoir (Credit note reference) | reference |
Text | Invoice |
| Réf. facture initiale (Initial invoice reference) | initialInvoiceReference |
Text | Invoice |
| Date d'émission (Issue date) | issueDate |
Date | Invoice |
| Description | description |
Text | Invoice |
| Référence avoir (Credit note reference) | creditNoteReference |
Text | Line |
| N° ligne initiale (Initial line no) | targetLineNo |
Integer | Line |
| Quantité à annuler (Quantity to cancel) | quantityToCancel |
Decimal | Line |
None of the seeded fields of a sale is added here: the list above is exhaustive.
Values of the enumerated fields¶
The Légende (Legend) sheet of the generated workbook recaps these values under Valeurs permises (Allowed values), but it gives only the codes for the invoicing type and the VAT. Here is what they mean.
Invoicing type¶
| Value | Meaning |
|---|---|
B2B |
The customer is a company or a professional holding an NCC |
B2G |
The customer is a government institution |
B2C |
The customer is a private individual |
B2F |
The customer is abroad |
The interface only shows the code: it is passed to the FNE as it stands.
Not the invoicing type of an import
This field is labelled Type de facturation (Invoicing type), but it carries the FNE transaction type. It has nothing to do with the invoicing types — classic, BTP/TELECOM, distribution… — which describe the presentation of a document. The two notions unfortunately share the same name on screen.
Payment method¶
| Value | Label |
|---|---|
cash |
Espèce (Cash) |
card |
Carte bancaire (Bank card) |
check |
Chèque (Cheque) |
mobile-money |
Mobile money |
transfer |
Virement bancaire (Bank transfer) |
deferred |
A terme (Deferred) |
VAT¶
| Value | Meaning |
|---|---|
TVA |
Standard VAT of 18% |
TVAB |
Reduced VAT of 9% |
TVAC |
Conventional VAT exemption, 0% |
TVAD |
Legal VAT exemption, 0%, for TEE, RME and legally exempt operations |
TVAE |
Export VAT exemption, 0% |
Here too, only the code goes into the file.
Currency¶
The Devise (Currency) field is not enumerated in the model: nothing stops you from typing any text into it. The FNE, however, accepts only these eleven currencies:
| Value | Currency | Value | Currency |
|---|---|---|---|
XOF |
CFA franc | AUD |
Australian dollar |
USD |
US dollar | CNH |
Chinese yuan |
EUR |
Euro | CHF |
Swiss franc |
JPY |
Japanese yen | HKD |
Hong Kong dollar |
CAD |
Canadian dollar | NZD |
New Zealand dollar |
GBP |
Pound sterling |
Rules checked at import¶
No catalogue field arrives with a model validation rule or calculation formula: both are empty everywhere, and are set afterwards field by field, as Customize the fields of a model describes.
The module does apply its own checks when it reads the file. Every breach becomes a line of the Erreurs et avertissements (Errors and warnings) section of the import, with its sheet and its row number.
Required fields¶
A required field left empty blocks the import — unless it carries a calculation formula in the model: the module then computes it and expects nothing from the file.
Expected formats¶
| Type | What is accepted |
|---|---|
| Date | yyyy-mm-dd in CSV, XML and JSON; dd/mm/yyyy in Excel |
| Integer | A number without decimals |
| Decimal, Money, Percent | A number, comma or dot as the separator |
| Boolean | oui, non, yes, no, true, false |
| Text, Enumerated | No format check |
The two date conventions look nothing alike, and deliberately so: a workbook is filled by hand, the three other formats are written by another system.
In Excel, reformat nothing
If the cell is genuinely of type date, the module converts it itself, whatever its display — 2026-12-25, 25 December 2026, the American order. The dd/mm/yyyy shape only concerns text cells.
A collect file still written in dd/mm/yyyy is refused, with a message naming the cause rather than a plain type error.
A date is also checked for real, not merely for shape: 2026-13-45 looks right and does not exist, so the import refuses it.
Rules between fields¶
| Rule | Scope |
|---|---|
If the Type de facturation is B2B, the NCC du client becomes required |
Invoice |
If the Type de facturation is B2B, the Téléphone client and Email client become required |
Invoice |
| The NCC, once filled, must carry 7 digits followed by one capital letter — whatever the invoicing type | Invoice |
| If Lié au RNE is yes, the RNE lié à field becomes required | Invoice |
| Once an Autre taxe carries a name, its percentage becomes required | Line |
| The Remise (%) cannot be negative | Line |
The rule on other taxes only bites if you bound those fields, which no nature seeds; a purchase slip does not even offer them. The discount, on the other hand, is seeded and structural in both natures.
Changelog¶
- 1.0 (August 4, 2026): document created.