Utilisation
Le principe : rien ne part sans vous
Le module ne certifie jamais de sa propre initiative. Valider une facture dans Dolibarr ne déclenche aucun envoi, et aucune tâche planifiée ne rattrape les pièces en attente. Chaque certification est une décision prise pièce par pièce, depuis l'onglet FNE de la facture.
Deux raisons à cela. D'abord, la plateforme date la facture à l'instant de l'appel : le corps de la requête ne porte aucune date, donc c'est le moment de l'envoi qui fait foi, et c'est à vous de choisir ce moment. Ensuite, une facture certifiée ne s'annule pas : un automatisme qui se trompe produit une écriture fiscale que seul un avoir peut corriger.
Certifier une facture de vente
1. Ouvrir l'onglet FNE
Ouvrez la facture client, puis son onglet FNE. Le haut de l'écran rappelle d'abord où irait la requête :
- l'environnement courant, Test ou Production, dans un bandeau ;
- l'adresse réellement appelée ;
- la clé d'API sous forme masquée.
Si votre configuration ne permet aucun envoi, un message rouge le dit ici, avec la raison exacte : identité du dossier incomplète, clé absente, adresse refusée. Corrigez-la dans les paramètres du module avant d'aller plus loin.
Seule une facture validée ou classée payée se certifie. Sur un brouillon ou sur une facture abandonnée, le module refuse et le dit : les lignes d'un brouillon changent encore, sa référence n'est pas définitive, et la plateforme date la facture à l'instant de l'appel. Certifier un brouillon déposerait à la DGI une pièce qui bouge la minute d'après - et une facture certifiée ne s'annule pas, elle se corrige par un avoir.
2. Lire la simulation
La simulation s'affiche d'office, sans rien envoyer et sans rien écrire. Vous y voyez la requête telle qu'elle partirait :
- la méthode et l'adresse complète ;
- les en-têtes, clé d'API masquée ;
- le corps JSON, champ par champ ;
- l'empreinte SHA-256 de ce corps, qui servira ensuite à repérer une facture modifiée après sa certification.
Si un contrôle refuse la pièce, c'est ici que vous l'apprenez, avec le code d'erreur nommé et, le cas échéant, le numéro de la ligne fautive. Vous n'avez pas besoin de cliquer pour découvrir qu'une facture est bloquée.
Le bouton Simuler rejoue cet affichage à la demande, par exemple après avoir corrigé une fiche tiers dans un autre onglet.
3. Lire les avertissements
Sous la requête, le module signale ce qui mérite votre attention sans bloquer l'envoi. Par exemple :
- le client n'a pas d'adresse électronique, que la procédure de la DGI déclare obligatoire alors que la plateforme a déjà accepté une facture sans ;
- le NCC du client ressemble à une valeur d'exemple, est un caractère répété, fait moins de quatre caractères, ou est déjà porté par un autre tiers ;
- une ligne ne porte aucune désignation ;
- les remises de la facture ont été réparties dans les prix unitaires nets envoyés ;
- la somme des quantités par les prix unitaires s'écarte de plus d'un centime du total hors taxes de la facture ;
- aucun taux de change n'est renseigné alors que la facture est en devise étrangère.
Ces avertissements ne disparaissent pas tout seuls : ils décrivent ce qui partira réellement.
4. Confirmer, puis envoyer
Le bouton Certifier auprès de la DGI n'envoie rien tant que la case Je confirme l'envoi réel de cette facture à la DGI n'est pas cochée. Sans la case, le bouton se contente de simuler et vous le dit.
Cette case est volontairement indépendante de toute confirmation générique de Dolibarr : aucun outil qui parcourt les pages d'un module ne doit pouvoir certifier une facture par accident.
5. Lire l'issue
Quatre issues possibles, et elles ne se ressemblent pas.
| Message | Ce qui s'est passé | Ce qu'il faut faire |
|---|---|---|
| Facture certifiée sous la référence ... | La plateforme a accepté et renvoyé une référence lisible. | Rien. La référence FNE est désormais votre référence fiscale. |
| La plateforme a refusé la facture. | Refus net : rien n'a été créé chez la DGI. | Corriger ce que le code d'erreur indique, puis renvoyer. La pièce repart. |
| Issue inconnue : la DGI détient peut-être cette facture. | Erreur serveur, absence de réponse dans le délai, ou réponse dont aucune référence n'est lisible. | Ne renvoyez pas. Consultez le portail de la DGI, puis inscrivez votre constat sur la fiche de la certification. Voir plus bas. |
| Envoi refusé avant tout départ. | Un contrôle du module ou le registre a refusé : rien n'est parti. | Corriger ce que le code d'erreur indique. |
[!CAUTION] Une issue inconnue n'est pas un échec. 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. Traiter cette situation comme un échec et renvoyer, c'est exactement ce qui a déjà produit une facture déposée deux fois.
Les six états d'une pièce
| État | Ce qu'il veut dire | La pièce peut-elle repartir ? |
|---|---|---|
| Connue, pas encore contrôlée | Le registre connaît la pièce, rien n'est parti. | oui |
| Contrôlée, prête à partir | Les contrôles sont passés, le corps est calculé. | oui |
| Envoyée, issue inconnue | Une requête est partie et nous ne savons pas ce qu'elle est devenue. | non |
| Constatée au portail, sans référence publiée | Un opérateur a vu la pièce au portail, mais aucun numéro exploitable n'y figure. | non |
| Certifiée | La plateforme l'a certifiée, la référence est enregistrée. | non, c'est terminé |
| Refusée | Refus net de la plateforme, ou blocage par nos contrôles. Rien n'existe chez la DGI. | oui, une fois corrigée |
Les deux états bloquants, Envoyée et Constatée sans référence publiée, ne se quittent jamais tout seuls. Aucun code de retour ne les débloque : seul un opérateur qui a regardé le portail de la DGI le fait, et le module le lui dit partout où ces états s'affichent.
Ce que Dolibarr n'autorise plus sur une pièce partie à la DGI
Dès qu'une pièce est Certifiée, Envoyée ou Constatée au portail, la DGI en détient une version que rien ne peut reprendre. Le module interpose donc un garde-fou sur la facture Dolibarr, de vente comme d'achat :
| Opération Dolibarr | Ce que fait le module | Pourquoi |
|---|---|---|
| Dévalider (repasser en brouillon) | Refusé, l'opération est annulée | Un brouillon peut voir sa référence réattribuée et ses lignes modifiées, alors que la DGI détient la version certifiée |
| Supprimer | Refusé, l'opération est annulée | La pièce reste certifiée chez la DGI et la ligne du registre pointerait dans le vide |
| Modifier (note, échéance, projet...) | Autorisé, inscrit au journal, avertissement à l'écran | Refuser bloquerait le travail courant pour un risque que l'empreinte détecte déjà au prochain envoi |
Un avertissement s'affiche après chaque modification : à partir de là, un avoir est le seul moyen de corriger ce que la DGI détient. Le journal du registre garde qui a modifié la pièce et quand.
Une pièce qui n'est jamais partie (Connue, Prête ou Refusée) n'est pas concernée : rien n'existe chez la DGI, Dolibarr reprend la main entière.
La page d'accueil du module
Le menu du haut donne accès à l'accueil du module. Il présente, dans cet ordre :
- Les pièces bloquées, en premier et en capitales quand il y en a. Ce sont celles dont l'issue est inconnue : la DGI les détient peut-être.
- Le stock de stickers, tel que la dernière réponse de la plateforme l'a renvoyé, avec la date de ce relevé et l'alerte si le seuil est atteint.
- Les derniers refus, avec leur code d'erreur.
- Les compteurs par état, chacun cliquable vers la liste filtrée.
Le bandeau d'environnement y figure aussi : un module resté en Production par inadvertance certifie pour de vrai.
[!NOTE] Si le registre ne peut pas être lu, cette page s'arrête sur un message d'erreur au lieu d'afficher des compteurs à zéro. C'est délibéré : zéro se lirait "rien n'a jamais été certifié", donc "tout peut repartir".
Le registre des certifications
Le second lien du menu ouvre la liste de toutes les certifications : ventes, bordereaux d'achat et avoirs y figurent ensemble, distingués par une colonne Sens. Deux listes séparées éviteraient la confusion, mais aussi la vue d'ensemble.
Colonnes : sens, pièce Dolibarr, référence FNE, état, environnement, nombre de requêtes parties, date d'ouverture, date d'envoi.
Filtres disponibles : sens, référence FNE, état, environnement, et une période sur la date d'ouverture.
[!NOTE] Les deux bornes de période se saisissent au format AAAA-MM-JJ. Une saisie d'un autre format n'est pas appliquée, et le module vous le dit en toutes lettres plutôt que de vous laisser croire que vous voyez tout le registre.
La fiche d'une certification
Le bouton Ouvrir de la liste mène à la fiche d'une certification. Elle rassemble tout ce que le registre détient :
- la pièce Dolibarr d'origine, avec un lien vers son onglet FNE ;
- le sens, l'état, l'environnement ;
- la référence FNE, l'identifiant DGI de la facture, le code de vérification ;
- l'empreinte du corps envoyé ;
- le nombre de requêtes parties et le dernier code HTTP ;
- le stock de stickers relevé et l'éventuelle alerte de la plateforme ;
- le dernier refus, le cas échéant ;
- l'origine de ce qui est affirmé : réponse de la plateforme, déclaration d'un opérateur, ou origine inconnue ;
- la réponse brute de la plateforme, conservée telle quelle, y compris en échec.
[!IMPORTANT] La réponse brute n'est pas un détail technique. C'est elle qui porte les identifiants d'articles attribués par la DGI, et sans eux aucun avoir n'est possible. Ne la supprimez pas, ne purgez pas le registre.
Quand plus d'une requête est partie pour la même pièce, la fiche l'écrit en capitales : la DGI en détient peut-être plusieurs exemplaires, et aucune interface de programmation ne permet de le vérifier.
Le journal
Le journal est en ajout seul : le module n'offre aucun moyen de modifier ni de supprimer une ligne. Corriger une entrée se fait en ajoutant une autre qui le dit.
Chaque ligne porte en plus une empreinte calculée sur son contenu et sur l'empreinte de la ligne précédente. Une modification faite directement en base de données - changer un motif, une date, un code HTTP, supprimer une ligne - casse cette chaîne, et l'onglet Diagnostic le signale. Ce n'est pas une signature : l'algorithme est public et sans secret, donc une main déterminée peut tout recalculer. Cela rend visibles la modification négligente et la corruption silencieuse, qui sont ce qu'un contrôle rencontre en pratique.
En dessous, le journal en ajout seul : une ligne par requête partie, par réponse reçue et par décision d'opérateur. Chaque ligne porte la date des faits, la date de la saisie, l'événement, son genre (constaté ou reconstitué), son origine, le code HTTP, le changement d'état, le motif écrit et son auteur.
Les lignes sont classées par date des faits, pas par date de saisie. Une entrée reconstituée prend donc sa place dans la chronologie tout en restant marquée comme reconstituée.
Rien ne s'y modifie et rien ne s'y supprime : c'est précisément la reconstruction d'une trace à neuf qui a produit, ailleurs, un doublon réel.
Débloquer une pièce dont l'issue est inconnue
C'est la manoeuvre centrale du module, et la seule qui puisse créer un doublon. Elle demande la permission de déblocage, distincte de celle d'envoyer.
[!IMPORTANT] Aucune de ces décisions n'appelle la plateforme FNE. L'API ne propose aucune lecture. Ce que vous inscrivez ici est votre constat, fait en regardant le portail de la DGI, et le journal le conserve comme tel.
Allez au portail de la DGI, cherchez la pièce, puis revenez sur sa fiche et inscrivez ce que vous avez vu. Trois constats, exclusifs l'un de l'autre.
Présente au portail sous ce numéro
Vous avez vu la pièce et relevé sa référence. C'est une preuve positive : aucun délai n'est demandé. La référence est exigée, elle ne se déduit jamais d'un champ laissé vide. Vous pouvez aussi relever l'identifiant DGI de la facture, le code de vérification et le NCC.
La pièce passe à l'état Certifiée.
[!CAUTION] Ne recopiez que ce que le portail affiche. Une référence inventée désigne chez la DGI une facture qui n'existe pas, et elle figurera ensuite sur vos documents et dans votre comptabilité.
Présente au portail, sans numéro publié
Vous avez vu la pièce, mais aucun numéro exploitable n'y figure. Ce cas existe réellement, et il s'exige : sans lui, une faute de frappe dans le champ référence passerait pour lui. Un motif écrit est obligatoire.
La pièce passe à l'état Constatée au portail, sans référence publiée. Elle reste bloquée et ne repart pas. Si le numéro est publié plus tard, revenez inscrire le premier constat.
Absente du portail
Vous n'avez pas trouvé la pièce. C'est la seule décision capable de créer un doublon, et le module la protège doublement :
- le délai configuré depuis l'envoi doit être écoulé (15 minutes par défaut), le temps que le portail publie ;
- un motif écrit est obligatoire.
La pièce repasse à l'état Refusée et peut donc repartir. Dans six mois, le motif que vous avez écrit sera la seule chose qui restera de cette décision : écrivez-y ce que vous avez vérifié, pas "renvoi".
Réconcilier une certification dont la trace manque
Si une pièce est certifiée chez la DGI mais que le registre n'en porte pas la trace, utilisez Réconcilier une certification dont la trace manque sur sa fiche. Là encore, rien n'est demandé à la plateforme : la référence vient de vous, un motif écrit est obligatoire, et le journal écrit en toutes lettres que ce n'est pas un aller-retour automatique.
Reconstituer un événement antérieur
Quand des faits se sont produits avant que le registre ne les suive, vous pouvez les inscrire au journal. Choisissez l'événement, la date des faits (et non celle de la saisie), l'origine de ce que vous affirmez, et écrivez le motif, qui est obligatoire.
Deux garde-fous :
- une entrée reconstituée est marquée comme telle pour toujours et n'a pas la même valeur qu'un fait constaté ;
- elle ne déplace jamais l'état de la pièce. Un journal inventé vaut moins qu'un journal vide, parce qu'on le croit.
L'origine par défaut est inconnue, jamais "la DGI l'a dit". La date des faits ne peut pas être dans le futur.
Le QR code et le document de certification
Dès qu'une pièce est certifiée et qu'un code de vérification a été conservé, sa fiche et son onglet FNE affichent le QR code de vérification, accompagné de l'adresse qu'il encode.
Sur une facture de vente certifiée, l'onglet FNE propose en plus de produire le document de certification et de le télécharger. Ce document reprend la référence FNE et le QR code tels que la plateforme les a renvoyés. Rien n'y est inventé : le fichier est produit dans les documents joints de la facture, sous un nom construit à partir de sa référence.
[!WARNING] Ce document ne vaut pas facture normalisée conforme et ne doit pas être présenté comme telle. 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. Le module écrit cet avertissement à l'écran et sur le document lui-même. Voir la FAQ.
Quelques refus possibles, chacun explicite :
- la facture n'est pas certifiée : aucun document n'est produit, parce qu'un document mis en page comme une certification serait lu comme telle ;
- la facture est certifiée mais aucune référence n'a été publiée : aucun document n'est produit, une référence ne s'invente pas ;
- aucun code de vérification n'a été conservé, ou le code conservé n'est pas une adresse de vérification : aucun QR code n'est fabriqué autour de lui, parce qu'un QR code qui ne mène nulle part ne vérifie rien.
En environnement de Test, le document porte la mention "ENVIRONNEMENT DE TEST - cette pièce n'est pas certifiée fiscalement".
Où retrouver la référence FNE
La référence FNE est votre référence fiscale. Le module l'affiche :
- 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, sur la fiche de la certification et dans le registre.
Le stock de stickers
Le modèle est prépayé. Le solde n'apparaît que dans la réponse d'une certification : aucune interface de programmation ne permet de le consulter ni de le recharger. Le module affiche donc le dernier solde reçu, avec la date de ce relevé, et vous alerte dès qu'il passe sous le seuil que vous avez réglé.
Quand l'alerte apparaît, commandez auprès de la DGI sans attendre : le module ne peut rien faire d'autre que vous prévenir.