---
title: "FAQ"
weight: 50
description: "Les pièges de la certification FNE et les messages d'erreur du module, expliqués un par un."
---

# 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](/capcifne/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 :

1. le **régime de l'acheteur** (TEE ou RME) sur la fiche du tiers ;
2. le **régime du produit** ;
3. le **régime de la famille** du produit ;
4. le **régime d'exonération du client** sur la fiche du tiers ;
5. 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](/capcifne/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](/capcifne/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](/capcifne/inscription-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](/capcifne/bordereau-achat).

## 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](/capcifne/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.
