---
title: "Configuration"
weight: 20
description: "Paramétrer l'accès à la plateforme FNE, la correspondance des taxes et des modes de paiement, et les champs à renseigner sur vos fiches."
---

# Configuration

La configuration se trouve dans **Accueil > Configuration > Modules/Applications**,
puis sur l'icône d'engrenage du module. Elle comporte trois onglets :
**Paramètres**, **Diagnostic** et **À propos**.

Seul un administrateur Dolibarr accède à ces écrans : ils portent l'identité de
votre dossier auprès de la DGI et la clé d'API.

> [!IMPORTANT]
> **L'enregistrement est tout ou rien.** Si un seul champ est refusé, rien n'est
> enregistré et l'écran affiche le message "Aucune valeur n'a été enregistrée".
> Corrigez les champs signalés, puis enregistrez de nouveau. Une configuration à
> moitié écrite serait une configuration que personne n'a décrite.

## Onglet Paramètres

### Environnement

Deux valeurs : **Test** et **Production**.

- **Test** est la valeur par défaut, et c'est voulu. Les factures n'y sont pas
  certifiées fiscalement.
- **Production** certifie pour de vrai, à chaque envoi. Ne basculez que lorsque
  la DGI a validé vos spécimens et vous a transmis votre adresse de production.

Le bandeau en haut de l'écran rappelle en permanence l'environnement courant. Le
même rappel figure sur la page d'accueil du module et sur chaque onglet FNE d'une
facture : vous ne pouvez pas envoyer sans voir où cela part.

> [!CAUTION]
> Une facture certifiée ne s'annule pas. Elle se corrige par un avoir, et l'avoir
> de la plateforme est un simple retour de marchandise. Passer en Production par
> curiosité coûte donc une écriture fiscale, pas un clic.

### Adresse d'essai

L'adresse de la plateforme d'essai. Le module n'admet que l'adresse publiée par
la DGI, `http://54.247.95.108/ws`, et les bouchons locaux que vous déclarez
explicitement ci-dessous. Toute autre adresse est refusée : un environnement de
test pointant vers la production certifierait pour de vrai.

Laisser ce champ vide y remet l'adresse publiée par la DGI, jamais "nulle part".

Une adresse saisie sans le chemin `/ws` est complétée automatiquement : sans ce
chemin, tous les appels échoueraient avec un message incompréhensible. De même,
les barres finales, la casse et le port implicite sont normalisés. L'onglet
Diagnostic vous montre côte à côte ce que vous avez saisi et l'adresse réellement
appelée.

### Bouchons locaux admis

Adresses supplémentaires acceptées en environnement de Test, séparées par des
virgules. Cela sert aux essais contre un simulateur installé chez vous, jamais à
joindre la production. Laissez ce champ vide si vous n'en avez pas.

### Adresse de production

L'adresse transmise par la DGI après validation de vos spécimens. **HTTPS est
obligatoire, sans dérogation** : une adresse en `http://` est refusée, parce que
la clé d'API est un jeton porteur qu'un appel en clair remet à quiconque écoute
le réseau.

### Clé d'API d'essai et clé d'API de production

Deux clés distinctes, une par environnement. Basculer en production n'enverra
donc jamais la clé d'essai, et revenir en test n'exposera jamais la clé de
production.

Comment ces champs se comportent :

- **La clé ne s'affiche jamais en clair**, nulle part : ni à l'écran, ni dans les
  journaux du serveur. Seuls les quatre premiers et les quatre derniers
  caractères sont visibles, le reste est masqué. Une clé trop courte pour que ce
  soit sans risque est masquée entièrement.
- **Le champ de saisie est toujours vide**, même lorsqu'une clé est enregistrée :
  la clé ne repart jamais vers votre navigateur. Sous le champ, le module indique
  si une clé est enregistrée, et sous quelle forme masquée.
- **Laisser le champ vide conserve la clé enregistrée.** Un champ vide ne veut
  donc pas dire "efface la clé". Pour effacer une clé, cochez la case **Effacer
  la clé enregistrée**.
- **La clé est acceptée ou refusée, jamais corrigée.** Sont admis les lettres,
  les chiffres et les signes `- _ . + / = :`, ce qui couvre un jeton simple, une
  valeur base64, un JWT ou une clé préfixée. Tout autre caractère (guillemet,
  espace, balise) fait refuser la saisie avec un message, et rien n'est
  enregistré. Le module ne retire jamais un caractère en silence : une clé
  tronquée à votre insu ferait échouer tous les envois en erreur
  d'authentification, derrière une empreinte masquée d'apparence normale.

La clé de production est visible dans l'onglet Paramétrage de votre espace FNE,
par le seul gestionnaire principal, après validation de votre dossier par la DGI.

> [!WARNING]
> Quand la clé enregistrée voyage vers une adresse en HTTP clair, ce qui est le
> cas de la plateforme d'essai de la DGI, le module l'affiche en toutes lettres
> dans un bandeau d'avertissement. Tenez alors cette clé pour compromise et
> demandez son remplacement avant de passer en production.

**Chiffrement en base.** Dolibarr chiffre lui-même les constantes dont le nom se
termine par `_KEY`, ce qui couvre les deux clés du module - mais seulement si
votre instance possède une clé de chiffrement. Sur une installation ancienne ou
reprise à la main, `instance_unique_id` peut manquer dans `conf.php` : Dolibarr
enregistre alors la valeur **en clair** dans la table des constantes, sans rien
dire, et chaque sauvegarde de base emporte la clé.

Le module le contrôle pour vous : l'onglet Diagnostic affiche une ligne
**Chiffrement de la clé au repos**, et l'enregistrement d'une clé sur une telle
instance affiche un avertissement. Si la ligne est rouge, faites ajouter un
`instance_unique_id` (ou un `dolcrypt_key`) dans `conf.php` par votre
hébergeur, puis ressaisissez la clé pour qu'elle soit réécrite chiffrée.

**Clé enregistrée mais illisible.** Le symétrique du cas précédent : la clé a
bien été chiffrée, puis la clé de chiffrement de `conf.php` a changé ou
disparu. Dolibarr rend alors la valeur chiffrée telle quelle. Le module refuse
de l'envoyer - elle partirait sur le réseau et reviendrait en erreur
d'authentification sans que rien ne l'explique - et affiche **Clé enregistrée
mais illisible** au diagnostic comme sous le champ de saisie. La correction
n'est pas de ressaisir une clé : c'est de restaurer la clé de chiffrement de
`conf.php`. Si elle est définitivement perdue, ressaisissez alors la clé d'API,
elle sera réécrite avec la nouvelle.

### Point de vente et Établissement

Ces deux valeurs identifient votre dossier auprès de la DGI. Elles ne viennent
pas de votre logiciel de facturation : c'est la DGI qui vous les communique.

> [!CAUTION]
> Aucune liste de valeurs valides n'est publiée et l'API ne permet pas de les
> découvrir. Une valeur d'exemple laissée en place fait refuser **toutes** vos
> factures, avec un message qui ne dit pas d'où vient le problème. C'est le refus
> le plus coûteux de tout le dispositif.

Pour cette raison, le module refuse à la saisie toute valeur qui ressemble à un
exemple :

- les mots connus : `A_COMPLETER`, `A_REMPLIR`, `TODO`, `FIXME`, `XXX`, `NEANT`,
  `EXEMPLE`, `SPECIMEN`, `DEFAUT`, `INCONNU` et leurs équivalents anglais ;
- les préfixes de gabarit jamais remplacés : `VOTRE_`, `MON_`, `YOUR_`, `MY_` ;
- les signes typographiques qu'un traitement de texte laisse derrière lui lors
  d'un copier-coller : guillemets courbes, tirets longs, espaces insécables ;
- une valeur faite uniquement de ponctuation, comme `-` ou `...`.

Le message affiché est alors "Un paramètre porte encore une valeur d'exemple et
partirait telle quelle". Si votre vraie valeur tombe sous l'une de ces règles,
c'est à la DGI qu'il faut demander confirmation, pas au module qu'il faut la
faire accepter.

### NCC de l'entreprise

Le numéro de compte contribuable de votre entreprise, tel qu'il figure sur votre
espace FNE. Même contrôle de valeur d'exemple que ci-dessus.

### Délai avant réouverture d'un envoi (minutes)

Valeur par défaut : **15**. Bornes acceptées : de 0 à 10080 minutes (sept jours).

C'est le temps que vous laissez au portail de la DGI pour publier une facture
avant qu'un opérateur puisse la déclarer absente et renvoyer la pièce. Déclarer
une pièce absente est la **seule** manoeuvre du module capable de créer un
doublon chez la DGI : ce délai est ce qui vous protège d'une conclusion tirée
trop vite.

Ne descendez pas sous 15 minutes sans une bonne raison. La valeur 0 est acceptée
mais supprime la protection.

### Seuil d'alerte du stock de stickers

Valeur par défaut : **50**. Bornes acceptées : de 0 à 1 000 000.

Dès que le solde renvoyé par la plateforme passe à ce niveau ou en dessous, le
module l'affiche en alerte sur la page d'accueil et sur la certification
concernée. Réglez-le sur ce que consomme votre facturation pendant le temps qu'il
vous faut pour recharger auprès de la DGI.

### Délai d'attente d'une réponse (secondes)

Valeur par défaut : **30**. Bornes acceptées : de 1 à 300 secondes.

Au-delà de ce délai, l'issue de l'envoi est tenue pour **inconnue** : la pièce
reste bloquée et n'est jamais déclarée en échec. Un délai trop court ne fait donc
pas gagner de temps, il produit des pièces bloquées à vérifier à la main.

### Conservation des corps de requête et de réponse (jours)

Le module garde, pour chaque certification, le corps exact envoyé à la DGI et
le corps exact reçu. C'est ce qui rend un refus corrigeable, c'est la seule
preuve de ce qui est parti, et c'est **le seul endroit où existent les
identifiants d'articles** sans lesquels aucun avoir n'est possible.

Ces corps reprennent aussi le nom, le téléphone et le courriel du client, ainsi
que le détail des lignes. Les garder indéfiniment, c'est conserver des données
personnelles sans durée annoncée.

Ce réglage tranche : au-delà du nombre de jours indiqué, sur les pièces closes
(certifiées, constatées au portail, ou refusées), le module

- **efface** le corps envoyé ;
- **réduit** le corps reçu à ce qu'il sait exploiter : référence FNE, jeton de
  vérification, identifiant de facture, identifiants et libellés d'articles,
  stock de stickers.

Ce qui n'est **jamais** touché, quelle que soit la durée : le journal du
registre, la référence FNE, l'empreinte de ce qui est parti, les identifiants
d'articles et l'état de la pièce. Une pièce dont l'issue est inconnue est
également laissée intacte : quelqu'un peut encore avoir besoin de relire ce qui
est parti.

**`0` (valeur par défaut) désactive la réduction : rien n'est jamais effacé.**
C'est volontaire. Effacer des preuves est une décision du dossier, pas un
comportement par défaut.

La réduction est appliquée par une tâche planifiée Dolibarr, **livrée
désactivée**, à activer dans *Accueil > Configuration > Modules > Tâches
planifiées*. Les deux interrupteurs doivent donc être actionnés sciemment : la
durée ici, et la tâche là-bas.

### Régime d'exonération par défaut du dossier

Trois choix : **Aucun, bloquer la pièce** (valeur par défaut), **TVAC -
Exonération conventionnelle**, ou **TVAD - Exonération légale (TEE, RME)**.

La nomenclature FNE comporte deux codes qui valent tous deux 0 % : TVAC et TVAD.
Rien, dans un logiciel de gestion, ne porte ce qui les sépare, parce que ce qui
les sépare est un fait juridique : une convention d'un côté, la loi de l'autre.

Le module cherche donc le régime d'une ligne à 0 % dans cet ordre, et s'arrête au
premier qui déclare quelque chose :

1. le **régime de l'acheteur** (TEE ou RME) sur la fiche du tiers ;
2. le **régime du produit** de la ligne ;
3. le **régime de la famille** du produit ;
4. le **régime d'exonération du client** sur la fiche du tiers ;
5. ce **régime par défaut du dossier**.

Si aucun des cinq ne déclare rien, la facture est **bloquée** avec l'erreur
"Ligne à 0 % sans régime d'exonération déclaré" et le numéro de la ligne fautive.
C'est volontaire : mieux vaut une facture arrêtée qu'une facture certifiée sous
un code fiscal que personne n'a choisi.

Ne renseignez ce régime par défaut que si votre activité entière relève
réellement du même régime.

### Correspondance des modes de paiement

Un tableau qui reprend chaque mode de règlement de votre dictionnaire Dolibarr
(les modes désactivés sont affichés comme tels) et vous demande la valeur FNE
correspondante parmi les six que la plateforme accepte :

| Valeur FNE | Sens |
|---|---|
| `cash` | Espèces |
| `card` | Carte bancaire |
| `check` | Chèque |
| `mobile-money` | Mobile money |
| `transfer` | Virement bancaire |
| `deferred` | A terme |

> [!NOTE]
> Le libellé n'est pas le code. Le portail FNE affiche "Virement", mais l'API
> attend `transfer`. C'est pour cela que la correspondance se déclare une fois
> ici plutôt que d'être devinée à chaque facture.

Un mode laissé sur **Non déclaré, bloquer la pièce** bloque les factures qui le
portent. C'est préférable à une valeur supposée qui se retrouverait sur une
facture certifiée, donc incorrigible autrement que par un avoir.

### Correspondance des prélèvements

Dolibarr connaît deux emplacements de taxe locale par ligne. La plateforme FNE
attend, elle, un **nom** de prélèvement (AIRSI et assimilés) qu'elle ne publie
nulle part.

Indiquez pour chaque emplacement que vous utilisez le nom exact attendu par la
plateforme. N'inventez rien : un nom deviné fait refuser la facture.

Deux points à retenir :

- Les prélèvements ne sont **pas** de la TVA. Ils partent dans un champ qui leur
  est propre, et ils partent **indépendamment du régime de TVA** : une ligne
  exonérée porte quand même son AIRSI.
- Un prélèvement non nul dont le nom FNE n'est pas déclaré bloque sa facture.

## Onglet Diagnostic

Cette page récapitule l'état de votre configuration et de votre registre. Elle
**n'appelle jamais la plateforme FNE**, sous aucun prétexte : l'API ne propose
aucune lecture, et un envoi certifierait une vraie facture.

Elle affiche :

- l'**environnement** courant et son avertissement ;
- l'état de la **simulation avant envoi** (activée par défaut) ;
- l'**adresse enregistrée**, l'**adresse normalisée** réellement appelée, le
  verdict sur cette adresse et la liste des adresses admises ;
- la **clé d'API** sous forme masquée, si elle est chiffrée en base, et si elle
  voyage en clair sur le réseau ;
- l'**identité de votre dossier** champ par champ, chacun marqué renseigné ou
  assorti de la raison de son refus ;
- un verdict global : "La configuration permet un envoi" ou "La configuration ne
  permet aucun envoi en l'état" ;
- l'état du **registre** : nombre de certifications, nombre d'entrées de journal,
  et le compte par état ;
- l'**intégrité du journal** : le module recalcule le chaînage de toutes les
  lignes et signale celles qui ne correspondent plus.

C'est la page à ouvrir en premier quand un envoi refuse de partir.

## Champs à renseigner sur vos fiches

Le module ajoute des champs complémentaires que vous remplissez au fil de l'eau,
en dehors de l'écran de configuration.

### Sur la fiche d'un tiers

| Champ | A quoi il sert |
|---|---|
| **NCC du client** | Numéro de compte contribuable du client, tel qu'il figure sur ses documents. Le module ne contrôle aucun format : il signale ce qui paraît douteux et ne bloque que si le gabarit B2B exige un NCC absent. |
| **Régime de l'acheteur (FNE)** | TEE ou RME. Prime sur tout le reste : ce client est exonéré par la loi sur ce qu'il achète. Laissez vide s'il n'en relève pas. |
| **Régime d'exonération du client (FNE)** | TVAC ou TVAD, appliqué aux lignes à 0 % de ce client quand ni son régime d'acheteur, ni le produit, ni la famille n'en déclarent un. |
| **Gabarit de facturation (FNE)** | Force le gabarit envoyé. Laissé vide, le module le déduit (voir ci-dessous). |

Déduction automatique du gabarit, dans cet ordre :

1. **B2F** si le pays du tiers est renseigné et n'est pas la Côte d'Ivoire ;
2. **B2G** si le type du tiers est une administration ;
3. **B2B** si le tiers porte un NCC ;
4. **B2C** si le tiers est un particulier.

Si rien ne tranche - pays vide, type non renseigné, pas de NCC - la pièce est
bloquée avec l'erreur "Le gabarit ne peut pas être déterminé pour ce client".
Renseignez alors le type du tiers, son pays, son NCC, ou forcez le gabarit.

### Sur la fiche d'un produit et sur une famille de produits

Un champ **Régime d'exonération** (TVAC ou TVAD), appliqué aux lignes à 0 %
portant ce produit ou appartenant à cette famille.

> [!NOTE]
> Si deux familles d'un même produit déclarent deux régimes différents, la pièce
> est bloquée : rien ne permet de choisir entre elles. Déclarez alors le régime
> sur le produit lui-même, qui est consulté avant les familles.
