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.