FAQ
Je me suis trompé sur une facture déjà certifiée. Comment l'annuler ?
On ne l'annule pas. La plateforme FNE ne propose aucune annulation, et le module ne peut pas en inventer une.
La seule correction possible est un avoir, et l'avoir de la plateforme est un simple retour de marchandise : il rend des articles de la facture d'origine, dans la limite des quantités certifiées. Il ne sait porter ni un montant, ni une remise commerciale accordée après coup, ni une régularisation.
Concrètement : vérifiez vos factures avant de les certifier, pas après. La simulation affichée d'office dans l'onglet FNE est faite pour cela. Voir la page Avoirs.
Pourquoi le module est-il en environnement de Test après l'installation ?
Parce qu'un défaut de Production ferait certifier pour de vrai, auprès de la DGI, des factures produites par une configuration que personne n'a relue. Et une facture certifiée par erreur ne s'annule pas.
Le module reste donc en Test tant que vous ne basculez pas explicitement, et il affiche l'environnement courant sur tous les écrans d'envoi. Même une valeur illisible ou inattendue dans ce réglage est lue comme "Test" : le doute ne fait jamais pencher vers la production.
Quand puis-je passer en Production ?
Quand la DGI a validé vos factures spécimens et vous a transmis votre adresse de production, et que la clé d'API de production est enregistrée. Pas avant.
Le module exige HTTPS en production, sans dérogation : la clé d'API est un
jeton porteur, et une adresse en clair la remet à quiconque écoute le réseau. Si
l'adresse transmise est en http://, revenez vers la DGI plutôt que de chercher
à contourner le refus.
Ma clé d'API de test est-elle en danger ?
Oui, et le module vous le dit à l'écran.
L'adresse d'essai publiée par la DGI est en HTTP clair, sur une adresse IP nue. Votre clé d'essai circule donc lisiblement sur le réseau dès le premier envoi. Tenez-la pour compromise. Ne la réutilisez jamais en production, et demandez son remplacement à la DGI si elle a servi à autre chose qu'à des essais.
Le module, lui, ne l'expose jamais : la clé n'est affichée nulle part en entier, ni à l'écran, ni dans les journaux du serveur, et le champ de saisie ne la renvoie jamais vers votre navigateur.
Toutes mes factures sont refusées d'un coup. Par où commencer ?
Regardez d'abord le point de vente et l'établissement dans les paramètres du module.
Ces deux valeurs sont validées par la DGI, aucune liste n'est publiée, et l'API ne permet pas de les découvrir. Une valeur fausse ou approchante fait refuser toutes vos factures, avec un message qui ne désigne pas la cause. C'est le refus le plus coûteux du dispositif, et il se reconnaît à ceci : rien ne passe, quelle que soit la facture.
Ouvrez l'onglet Diagnostic : il vous dit champ par champ ce qui manque ou ce qui est refusé, sans rien appeler chez la DGI. Si ces deux valeurs sont renseignées et que tout est quand même refusé, c'est à la DGI qu'il faut demander les valeurs exactes de votre dossier.
Le module refuse ma saisie en disant "Un paramètre porte encore une valeur d'exemple et partirait telle quelle"
Ce que cela veut dire. La valeur saisie ressemble à un exemple jamais
remplacé : un mot connu (A_COMPLETER, TODO, XXX, EXEMPLE, SPECIMEN,
NEANT...), un préfixe de gabarit (VOTRE_, MON_, YOUR_, MY_), une valeur
faite uniquement de ponctuation, ou un texte contenant des signes typographiques
qu'un traitement de texte a laissés derrière lui lors d'un copier-coller
(guillemets courbes, tirets longs, espaces insécables).
Pourquoi ce refus existe. Des valeurs de ce genre sont réellement parties en production ailleurs, et ont fait refuser toutes les factures du dossier concerné.
Quoi faire. Saisissez la valeur réelle communiquée par la DGI. Si vous copiez-collez depuis un document, retapez la valeur à la main plutôt que de la coller : c'est souvent un caractère invisible qui déclenche le refus. Si votre vraie valeur tombe malgré tout sous l'une de ces règles, faites-la confirmer par la DGI.
La plateforme a répondu une erreur serveur, ou n'a pas répondu du tout. Ma facture est-elle partie ?
Personne ne le sait, et c'est exactement ce que le module affiche : "Issue inconnue : la DGI détient peut-être cette facture."
Ce que cela veut dire. Une erreur 500, un dépassement du délai d'attente ou une réponse dont aucune référence n'est lisible ne prouvent rien. La plateforme d'essai de la DGI a déjà été observée en train de certifier des factures tout en répondant une erreur serveur, et son portail ne les publiait pas immédiatement.
Ce que fait le module. La pièce reste à l'état Envoyée, issue inconnue. Elle n'est jamais déclarée en échec, et elle ne peut pas repartir toute seule.
Quoi faire. Allez voir le portail de la DGI, puis revenez inscrire ce que vous avez constaté sur la fiche de la certification. Trois constats possibles, détaillés à la question suivante.
[!CAUTION] Ne renvoyez jamais une pièce dans cet état sans être passé par le portail. C'est précisément cet enchaînement - envoi, erreur 500, portail consulté trop tôt, facture déclarée absente, renvoi - qui a déjà produit une facture déposée deux fois chez la DGI.
Comment savoir si la DGI détient déjà ma facture ?
En regardant son portail. Il n'y a pas d'autre moyen : l'API ne propose aucune lecture, aucune clé d'idempotence, aucun moyen d'interroger l'administration sur une facture.
Une fois au portail, trois constats sont possibles, et le module les traite différemment parce qu'ils n'ont pas la même valeur de preuve :
| Constat | Ce que le module en fait | Conditions |
|---|---|---|
| Présente au portail sous ce numéro | La pièce passe à Certifiée, avec la référence que vous relevez. | La référence est exigée. Aucun délai : c'est une preuve positive. |
| Présente au portail, sans numéro publié | La pièce passe à Constatée au portail, sans référence publiée. Elle reste bloquée. | Motif écrit obligatoire. Aucun délai. |
| Absente du portail | La pièce repasse à Refusée et peut repartir. | Motif écrit obligatoire et délai configuré écoulé depuis l'envoi (15 minutes par défaut). |
Seul le troisième constat attend un délai, parce que c'est le seul qui puisse créer un doublon : il faut laisser au portail le temps de publier. Constater une présence, à l'inverse, n'attend pas.
Puis-je saisir moi-même une référence qui ressemble à ce que la DGI produit ?
Non, jamais. Une référence inventée désigne, chez la DGI, une facture qui n'existe pas. Elle se retrouvera ensuite sur vos documents, dans votre comptabilité, et sur le QR code que vos clients scanneront.
Ne recopiez que ce que le portail affiche. Si la pièce est bien certifiée mais qu'aucun numéro exploitable n'y figure, utilisez le constat Présente au portail, sans numéro publié, qui existe pour ce cas précis. Ce constat s'exige : sans lui, une faute de frappe dans le champ référence passerait pour lui.
La fiche affiche en capitales que plusieurs requêtes sont parties. Que faire ?
Ce que cela veut dire. Plus d'une requête a quitté votre serveur pour cette pièce. La DGI en détient peut-être plusieurs exemplaires, et aucune interface de programmation ne permet de le vérifier.
Quoi faire. Consultez le portail avant toute nouvelle décision. Si deux factures y figurent, c'est un doublon réel : il se corrige par un avoir sur celle qui est en trop, et il faut en parler à votre comptable. N'envoyez surtout pas une troisième requête.
Ma facture est bloquée sur "Ligne à 0 % sans régime d'exonération déclaré"
Ce que cela veut dire. La ligne indiquée porte un taux de TVA de 0 %, et rien ne dit au titre de quel régime elle est exonérée.
Pourquoi c'est bloquant. La nomenclature FNE comporte deux codes qui valent tous deux 0 % : TVAC (exonération conventionnelle) et TVAD (exonération légale, TEE et RME). Rien, dans un logiciel de gestion, ne porte ce qui les sépare, parce que ce qui les sépare est un fait juridique. Le module refuse donc de choisir : la facture est arrêtée plutôt que certifiée sous un code que personne n'a voulu.
Quoi faire. Déclarez le régime à l'endroit qui correspond à votre situation. Le module les consulte dans cet ordre :
- le régime de l'acheteur (TEE ou RME) sur la fiche du tiers ;
- le régime du produit ;
- le régime de la famille du produit ;
- le régime d'exonération du client sur la fiche du tiers ;
- le régime par défaut du dossier, dans les paramètres du module.
Le régime de l'acheteur prime sur tout le reste : un client TEE ou RME est exonéré par la loi sur ce qu'il achète, quelle que soit la nature du produit.
Deux familles de mon produit déclarent deux régimes différents et la pièce est bloquée
C'est normal : rien ne permet de choisir entre elles. Déclarez le régime sur le produit lui-même, qui est consulté avant les familles.
J'ai une ligne à 12 %. Pourquoi est-elle refusée ?
Ce que l'écran affiche. "Taux de TVA hors nomenclature FNE".
Ce que cela veut dire. La plateforme ne connaît que trois taux : 18 % (code TVA), 9 % (code TVAB) et 0 % (codes TVAC ou TVAD). Un taux positif qui n'est ni 18 ni 9 ne correspond à aucun code, et ce n'est pas une exonération.
Quoi faire. Corrigez le taux de la ligne. Si votre activité relève réellement d'un autre taux, c'est une question à poser à la DGI avant de facturer.
"Mode de paiement sans valeur FNE déclarée"
Ce que cela veut dire. Le mode de règlement de cette facture n'a pas de correspondance FNE déclarée dans les paramètres du module.
Pourquoi ce n'est pas deviné. Le libellé n'est pas le code : le portail FNE
affiche "Virement", mais l'API attend transfer. Un mode supposé plutôt que
choisi finirait sur une facture certifiée, donc incorrigible.
Quoi faire. Ouvrez les paramètres du module, section Correspondance des
modes de paiement, et associez ce mode Dolibarr à l'une des six valeurs FNE :
cash, card, check, mobile-money, transfer, deferred.
"Prélèvement sans nom FNE déclaré"
Ce que cela veut dire. Une ligne porte une taxe locale non nulle (AIRSI ou assimilé) dont le nom attendu par la plateforme n'est pas déclaré.
Ce qu'il faut savoir. Les prélèvements ne sont pas de la TVA : ils partent dans un champ qui leur est propre, et indépendamment du régime de TVA. Une ligne exonérée porte quand même son AIRSI.
Quoi faire. Renseignez le nom exact attendu par la plateforme dans la section Correspondance des prélèvements des paramètres. N'inventez rien : un nom deviné fait refuser la facture.
"NCC du client absent alors que le gabarit l'exige"
Ce que cela veut dire. La facture part en gabarit B2B, qui suppose un client professionnel identifié, et le champ NCC du client de la fiche tiers est vide.
Quoi faire. Renseignez le NCC du client sur sa fiche, tel qu'il figure sur ses documents. Si ce client n'a pas de NCC, c'est que le gabarit n'est pas le bon : vérifiez son type et son pays, ou forcez le gabarit sur sa fiche.
"Le gabarit ne peut pas être déterminé pour ce client"
Ce que cela veut dire. Rien sur la fiche du tiers ne permet de dire s'il s'agit d'une vente B2B, B2C, B2G ou B2F : le pays est vide, le type de tiers n'est pas renseigné et aucun NCC n'est saisi.
Quoi faire. Renseignez l'un de ces éléments sur la fiche du tiers, ou choisissez directement la valeur dans le champ Gabarit de facturation (FNE). Rappel de la déduction automatique : pays renseigné hors Côte d'Ivoire donne B2F, type administration donne B2G, NCC renseigné donne B2B, particulier donne B2C.
"L'API FNE ne couvre pas ce type de pièce"
Ce que cela veut dire. Seules les factures standard se certifient comme des ventes. Les factures d'acompte, les factures de situation, les proforma et les factures de remplacement ne sont pas couvertes par l'API, et le module les refuse plutôt que d'en approcher une.
Les avoirs, eux, ne passent pas par ce chemin : voir Avoirs.
"Nom du client absent", "Téléphone du client absent", "La pièce ne porte aucune ligne"
Ces trois refus désignent des informations que la plateforme exige et que la facture ne porte pas. Ils se corrigent sur la fiche du tiers ou sur la facture, puis la pièce repart : rien n'est parti, donc rien n'existe chez la DGI.
Le module les lève avant l'envoi, au moment de la simulation : vous n'avez pas besoin de cliquer pour les découvrir.
"Ligne négative, que l'API FNE n'accepte pas"
La plateforme n'accepte pas de ligne à quantité ou à montant négatif sur une vente. Une ligne négative servant à corriger une autre ligne doit devenir une remise sur la ligne concernée, ou faire l'objet d'un avoir après certification.
"Devise hors de la liste FNE"
La plateforme accepte onze devises seulement. Si votre facture est libellée dans une autre, elle ne peut pas être certifiée en l'état.
Notez aussi que les montants partent dans la devise de votre dossier Dolibarr. Si votre dossier n'est pas en francs CFA, le module le signale dans son journal technique : vérifiez ce point avec la DGI avant de certifier.
"La plateforme a refusé la clé d'API"
Ce que cela veut dire. La plateforme a renvoyé un refus d'authentification (code 401). La clé enregistrée n'est pas celle qu'elle attend pour cet environnement.
Quoi faire. Vérifiez que vous n'avez pas saisi la clé de test dans le champ de production ou l'inverse : les deux clés sont enregistrées séparément, exprès. Ressaisissez la clé depuis l'onglet Paramétrage de votre espace FNE. Si elle est correcte et toujours refusée, demandez à la DGI si elle est encore valide.
"Aucune clé d'API enregistrée pour cet environnement"
Le champ de clé correspondant à l'environnement courant est vide. Rappel : laisser le champ vide conserve la clé déjà enregistrée, il ne l'efface pas - donc ce message signifie qu'aucune clé n'a jamais été saisie pour cet environnement, ou qu'elle a été effacée avec la case prévue pour cela.
"Cette adresse n'est pas admise dans l'environnement de test"
Ce que cela veut dire. En environnement de Test, le module n'accepte que
l'adresse publiée par la DGI, http://54.247.95.108/ws, et les bouchons locaux
que vous avez explicitement déclarés.
Pourquoi. Un environnement de test pointant vers la production certifierait pour de vrai, sans que rien à l'écran ne le laisse supposer.
Quoi faire. Remettez l'adresse publiée par la DGI, ou videz le champ : le module y remet alors cette adresse de lui-même.
"La production exige HTTPS, sans dérogation"
L'adresse de production saisie ne commence pas par https://. Le module ne
transige pas : la clé d'API est un jeton porteur. Faites confirmer l'adresse par
la DGI.
"Certifiée puis modifiée : il faut un avoir, pas un nouvel envoi"
Ce que cela veut dire. Cette pièce a été certifiée, puis son contenu a changé. Le module s'en aperçoit parce qu'il conserve l'empreinte du corps exactement tel qu'il est parti, et que cette empreinte ne correspond plus.
Quoi faire. Ne renvoyez pas : la DGI détient déjà une version certifiée de cette facture. La correction passe par un avoir. Voir Avoirs.
Notez qu'une modification qui ne change rien à ce qui part - une note interne, par exemple - ne déclenche pas cette alerte : l'empreinte porte sur le corps envoyé, pas sur la fiche Dolibarr.
"Le registre est illisible, tout s'arrête ici"
Ce que cela veut dire. Les tables du registre ne peuvent pas être lues.
Pourquoi tout s'arrête. Un registre vide se lit "rien n'a jamais été certifié", donc "tout peut repartir". Le module préfère donc bloquer entièrement l'écran plutôt que d'afficher des compteurs à zéro qui vous feraient renvoyer des factures déjà certifiées.
Quoi faire. C'est une question technique : vérifiez que le module a bien été réactivé après une mise à jour, et faites examiner la base de données. Ne certifiez rien tant que le registre n'est pas lisible.
Le stock de stickers est épuisé ou proche du seuil
Ce que cela veut dire. Le modèle est prépayé : chaque certification consomme un sticker. Le solde n'apparaît que dans la réponse d'une certification.
Ce que le module peut faire. Vous afficher le dernier solde connu, la date de ce relevé, et vous alerter sous le seuil que vous avez réglé. C'est tout : aucune interface de programmation ne permet de consulter ce solde à la demande ni de le recharger.
Quoi faire. Commandez auprès de la DGI, sans attendre la rupture. Une rupture se découvre au milieu d'un flux de facturation, et rien dans le module ne peut la compenser.
Le document produit par le module est-il ma facture normalisée ?
Non, et il ne faut pas le présenter comme tel.
La DGI n'a publié ni le visuel FNE, ni la maquette de la facture normalisée, ni la liste des mentions obligatoires, ni le format imposé de la numérotation, alors qu'elle valide la conformité de fond et de forme des spécimens. Sans ces éléments, aucun modèle de document conforme n'est livrable.
Ce que le module produit est un document de certification : il reprend la référence FNE et le QR code de vérification tels que la plateforme les a renvoyés, et rien d'autre. L'avertissement figure à l'écran et sur le document lui-même.
Réclamez ces éléments à la DGI, à support.fne@dgi.gouv.ci. Voir
Inscription auprès de la DGI.
Le QR code ne s'affiche pas
Trois raisons possibles, chacune annoncée explicitement :
- Aucun code de vérification n'a été conservé pour cette pièce : il n'y a rien à encoder.
- Le code conservé n'est pas une adresse de vérification, mais un identifiant nu. Le module ne fabrique aucune adresse autour de lui : un QR code qui ne mène nulle part ne vérifie rien.
- La bibliothèque d'images GD n'est pas disponible sur votre serveur. Seule l'image affichée à l'écran en dépend ; le QR code du document PDF, lui, est produit quand même.
Pourquoi la date de la facture chez la DGI n'est-elle pas celle de ma facture Dolibarr ?
Parce que le corps de la requête ne porte aucune date : la plateforme date la facture à l'instant de l'appel. C'est une contrainte de l'API, pas un choix du module.
Conséquence pratique : aucune certification a posteriori correctement datée n'est possible. Décidez à quel moment de votre processus vous certifiez, et tenez-vous-y.
Mon client n'a pas d'adresse électronique. Est-ce bloquant ?
Non, c'est un avertissement. La procédure publiée par la DGI déclare ce champ obligatoire, mais la plateforme a déjà accepté une facture sans. Le module vous signale la contradiction et vous laisse décider, plutôt que de trancher à la place de l'administration.
Comment les remises sont-elles envoyées ?
Le module envoie le prix unitaire net de chaque ligne, c'est-à-dire le montant hors taxes de la ligne divisé par sa quantité. Les remises de ligne, la remise globale et les remises fixes de Dolibarr sont donc déjà comprises dans ce prix.
La raison est simple : la plateforme multiplie un prix unitaire par une quantité. Envoyer un prix brut sur une ligne remisée certifierait plus que ce que le client a réellement payé, et cette erreur ne se corrige que par un avoir.
Le module vous signale quand les remises ont été réparties ainsi, et quand la somme recalculée s'écarte de plus d'un centime du total hors taxes de la facture.
Puis-je certifier automatiquement mes factures à leur validation ?
Non, et c'est délibéré. Aucun automatisme n'envoie quoi que ce soit : ni la validation d'une facture, ni une tâche planifiée.
Trois raisons. La plateforme date la facture à l'instant de l'appel, donc le moment de l'envoi est une décision. Une facture certifiée ne s'annule pas, donc une erreur automatisée est une erreur fiscale. Et une issue inconnue demande un constat humain au portail de la DGI, ce qu'aucun automatisme ne sait faire.
Dois-je certifier les factures de mes fournisseurs ?
Non. Côté acheteur, une facture fournisseur ordinaire n'a rien à certifier : c'est le fournisseur qui certifie sa vente auprès de la DGI.
L'onglet Bordereau FNE des factures fournisseurs ne sert qu'aux bordereaux d'achat de produits agricoles, c'est-à-dire au document que vous émettez quand votre fournisseur, un producteur, ne peut pas facturer lui-même. Voir Bordereaux d'achat de produits agricoles.
Puis-je purger le registre pour gagner de la place ?
Non. Le registre est la seule mémoire de ce que vous avez envoyé à la DGI : aucune interface de programmation ne permet de demander à l'administration si une facture existe déjà chez elle. Le perdre, c'est renvoyer des factures déjà certifiées sans moyen de le savoir.
Il contient de plus les réponses brutes de la plateforme, et ce sont elles qui portent les identifiants d'articles sans lesquels aucun avoir n'est possible.
Désactiver le module ne supprime pas ces tables. Incluez-les dans vos sauvegardes au même titre que vos factures.
Ce que vous pouvez faire, si la conservation de données personnelles est le sujet : régler une durée dans Conservation des corps de requête et de réponse (jours) et activer la tâche planifiée correspondante. Au-delà de cette durée, le module efface le corps envoyé et réduit le corps reçu à ce qu'il sait exploiter : la référence FNE, le jeton de vérification, les identifiants de facture et d'articles, le stock de stickers. Le nom, le téléphone, le courriel du client et le détail des lignes disparaissent ; le journal, la référence, l'empreinte et les identifiants d'articles restent intacts, donc un avoir reste possible. Voir la configuration.
Toutes mes certifications finissent en "issue inconnue" et rien n'arrive à la DGI
Regardez d'abord si votre serveur sort par un proxy. Le module utilise les réglages de proxy de Dolibarr (Accueil > Configuration > Autres, section Proxy) : s'ils ne sont pas renseignés alors que votre réseau en impose un, chaque appel attend jusqu'au délai puis revient en issue inconnue, et chaque pièce reste bloquée.
Renseignez-les, puis consultez le portail de la DGI avant toute autre chose : les pièces déjà parties peuvent très bien y figurer. Ne relancez pas un envoi sans avoir vérifié.
Où retrouver la référence FNE d'une facture ?
Sur la fiche de la facture client, à côté de la référence Dolibarr ; dans une colonne dédiée de la liste des factures clients ; sur l'onglet FNE de la facture ; et dans le registre des certifications, qui se filtre par référence.
C'est elle, et non la référence Dolibarr, qui est votre référence fiscale.