Vos préférences cookies

Procura utilise des cookies essentiels au fonctionnement du site, et — avec votre accord — des cookies de mesure d'audience pour comprendre ce qui vous est utile. Aucun tracker tiers, aucun partage avec des publicitaires. En savoir plus

Ressources / Guide pratique
Conformité Côte d'Ivoire

FNE Côte d'Ivoire : facture normalisée électronique en pratique

Comment Procura intègre nativement le dispositif FNE de la DGI Côte d'Ivoire : configuration, flux d'API, multi-pays et passage en production.

Équipe Procura · Mai 2026 · 9 min de lecture
01 · Qu'est-ce que la FNE et pourquoi02 · Les champs à configurer03 · Le flux de signature en une étap04 · Multi-pays : FNE + MECeF en para05 · Checklist de mise en production
1 appel API
Flux complet de signature
4 templates
B2B · B2C · B2F · B2G
4 taxes
TVA · TVAB · TVAC · TVAD
Per-contribuable
URL de production DGI
Retour aux ressources
01

Qu'est-ce que la FNE et pourquoi c'est important en Côte d'Ivoire

La FNE (Facture Normalisée Électronique) est le dispositif de facturation électronique normalisée géré par la Direction Générale des Impôts (DGI) de Côte d'Ivoire. Chaque contribuable assujetti à la TVA doit transmettre en temps réel ses factures B2B à la plateforme FNE et faire figurer une référence officielle + un token QR vérifiable sur la copie imprimée. Sans cette signature, la facture n'est plus admissible pour la déduction de TVA pour l'acheteur ni pour l'imputation en charge du vendeur.

Le dispositif est l'équivalent ivoirien du MECeF béninois, mais avec une architecture technique sensiblement différente. FNE utilise une API en une seule étape : un POST sur /external/invoices/sign retourne la référence certifiée, le NCC, un token QR vérifiable et le solde de stickers restant — il n'y a pas d'étape de confirmation séparée. La DGI fournit également l'URL de production par contribuable après certification, plutôt qu'un endpoint partagé unique.

Le portail officiel se trouve sur fne.dgi.gouv.ci, avec une plateforme de test publique à http://54.247.95.108/ws et un document de procédure publié en mai 2025 expliquant le parcours d'inscription. Un SDK PHP publié par PRODESTIC reflète les constantes, la structure de payload et les clés de réponse que nous utilisons dans Procura, ce qui garantit qu'une intégration qui fonctionne sur la plateforme de test fonctionnera en production.

Procura a été conçu pour s'intégrer nativement à la FNE : dès qu'une organisation est configurée avec le pays Côte d'Ivoire, la section FNE apparaît dans ses paramètres avec exactement les champs attendus par la DGI (NCC, token API, point de vente, établissement, URL de production), et chaque facture approuvée peut être signée en un clic sur l'endpoint officiel.

02

Les champs à configurer

Une intégration FNE dans Procura repose sur cinq champs principaux. Le NCC (Numéro Compte Contribuable) est votre identifiant fiscal — le même qui figure déjà sur chaque facture émise, typiquement de 8 à 14 caractères selon le régime. Le token API est un secret Bearer remis par la DGI lors de l'enregistrement de votre entreprise sur le portail FNE. Le point de vente et l'établissement sont des identifiants opérationnels qui voyagent avec chaque transmission et peuvent être surchargés par facture.

Deux champs complètent la configuration : l'environnement (Sandbox vs Production) et l'URL de production optionnelle. Le Sandbox pointe toujours sur la plateforme de test publique — pas besoin de fournir d'URL. La Production exige l'URL par contribuable que la DGI remet après certification. Procura valide ce point au moment de l'enregistrement : passer en Production sans URL est refusé au niveau du formulaire, ce qui empêche une organisation de soumettre silencieusement des factures réelles sur l'endpoint sandbox.

Procura expose aussi un troisième environnement, Mock Procura, qui simule la FNE localement pour valider la chaîne complète avant de contacter la DGI. Le mock applique la même validation B2B-sans-NCC-est-400, la même authentification Bearer, et renvoie la même structure de réponse (reference, ncc, token, balance_sticker) que l'API réelle, garantissant qu'une intégration fonctionnant sur le mock fonctionnera en production.

L'écran de paramètres embarque une carte d'onboarding bilingue détaillant les cinq étapes pour passer de l'inscription à la production : s'inscrire sur fne.dgi.gouv.ci, soumettre les spécimens, recevoir le token Sandbox, obtenir le token + URL de production, basculer en Production. Chaque étape comporte un lien direct vers la page DGI concernée.

03

Le flux de signature en une étape

La FNE utilise un modèle d'état en une seule étape pour chaque facture. Procura envoie la structure (invoiceType, paymentMethod, template, items, taxes, client) en POST sur /external/invoices/sign et reçoit la référence officielle, le NCC en retour, un token URL que l'acheteur peut scanner pour vérifier la facture sur fne.dgi.gouv.ci, et le solde de stickers restant pour votre entreprise dans le quota DGI. Aucun appel de confirmation à faire ensuite.

Les templates portent une sémantique propre. B2B est le flux principal pour facturer un autre contribuable et exige le NCC du client. B2C couvre la vente au consommateur final sans exigence de NCC. B2F vise les clients étrangers et requiert foreignCurrency + foreignCurrencyRate. B2G concerne les clients publics et peut nécessiter des champs additionnels. Procura sélectionne le bon template par facture selon les drapeaux du fournisseur, mais le champ reste surchargeable dans l'appel de signature.

Les types de taxes diffèrent légèrement des codes-lettres MECeF : la FNE accepte TVA (18 %, standard), TVAB (9 %, taux réduit), TVAC (0 % exonération conventionnelle) et TVAD (0 % exonération légale). Procura mappe le taux effectif de chaque ligne sur le bon code, en appliquant TVA par défaut lorsque la facture porte un montant de taxe positif et TVAC sinon.

Procura encapsule l'appel de signature dans une mutation unique trpc.fne.signInvoice idempotente au niveau de la facture : une facture portant déjà une fneReference ne peut pas être re-signée. En cas d'échec, la facture passe en fneStatus = error et la réponse brute de la DGI est stockée dans fneRawResponse pour le diagnostic. Des entrées d'audit log sont créées sur succès et sur échec pour que l'équipe conformité puisse rejouer chaque incident. Une mutation refundInvoice distincte émet les avoirs sur POST /external/invoices/{id}/refund.

04

Multi-pays : FNE + MECeF en parallèle

Une organisation qui opère à la fois en Côte d'Ivoire et au Bénin — par exemple un groupe avec des bureaux à Abidjan et Cotonou — a besoin de la FNE et du MECeF actifs en même temps. Procura le supporte nativement : FNE et MECeF sont deux slugs de module distincts dans le tableau activeModules, et les deux peuvent être activés sur le même tenant.

La barre latérale Paramètres → Finance affiche FNE (Côte d'Ivoire) et MECeF (Bénin) comme deux sections séparées. Chacune a ses propres identifiants (NCC + token + URL de production pour la FNE, IFU + token pour le MECeF), son propre sélecteur d'environnement, et sa propre piste d'audit. Les factures émises sous un régime ne sont jamais confondues avec celles émises sous l'autre.

Le provisionnement d'une organisation multi-pays depuis la console super-admin Procura tient en un seul formulaire : choisir un pays principal, puis cocher les slugs de modules applicables (fne, mecef, ou les deux). Le contrôle de pays accepte aussi bien les codes ISO que les noms complets dans les deux langues — Côte d'Ivoire, Cote d'Ivoire, Ivory Coast, CI déverrouillent la section FNE de la même façon.

Côté logique de visibilité, la règle est countryHit OR moduleHit : une section apparaît dès que le pays de l'organisation correspond aux variantes acceptées OU qu'un de ses slugs de module figure dans activeModules. C'est cette deuxième branche qui permet à une organisation multi-pays avec country='Côte d'Ivoire' mais activeModules=['fne','mecef'] de voir les deux régimes côte à côte sans changer son pays principal.

05

Checklist de mise en production

Avant de basculer la FNE en production, déroulez une checklist en cinq points. D'abord, validez l'intégration de bout en bout sur le mock Procura — chaque facture approuvée doit recevoir une référence factice, le token QR doit résoudre vers une URL placeholder, et la piste d'audit doit consigner chaque appel de signature avec sa réponse. Ensuite, inscrivez-vous sur fne.dgi.gouv.ci en soumettant votre RCCM, NCC et attestation de régularité fiscale, et obtenez le token API Sandbox depuis le portail FNE.

Troisièmement, configurez le Sandbox dans Procura avec votre NCC réel et le token Sandbox, puis relancez le test sur des factures spécimen réelles. La DGI valide la structure, les templates (B2B/B2C/B2F/B2G), les codes de taxes (TVA/TVAB/TVAC/TVAD), les modes de paiement et les champs obligatoires. Toute incohérence remonte sous forme de message d'erreur explicite que la page de paramètres Procura affiche tel quel.

Quatrièmement, demandez le token de production et l'URL de production par contribuable. La DGI livre les deux après validation des spécimens. Renseignez l'URL dans le champ URL de production, collez le token de production dans le champ token API, basculez l'environnement sur Production, laissez la bascule d'activation désactivée jusqu'à être prêt, et faites un dernier dry-run sur une facture interne pour vérifier toute la chaîne.

Cinquièmement, activez la bascule et commencez à signer les vraies factures. À partir de là, chaque facture approuvée devrait être signée en quelques secondes, la référence FNE doit apparaître sur la facture imprimée et sur le portail fournisseur, le token QR doit résoudre vers la page de vérification publique, et le solde de stickers restants doit décrémenter à chaque appel — vous pouvez ainsi suivre votre quota DGI. En cas de dérive, la piste d'audit rejoue requête et réponse de chaque transaction.

Prêt à activer la FNE dans Procura ?

Testez le flux complet avec le mock Procura aujourd'hui, puis basculez sur les vrais identifiants DGI dès qu'ils arrivent — même formulaire, aucune migration.