docs: update README for V1 release candidate

This commit is contained in:
2026-06-21 18:26:14 +02:00
parent 19ffc45fbc
commit d91ad72a5b
+231 -90
View File
@@ -1,65 +1,130 @@
# Enuxia E-Invoice
Application open source de facturation électronique française pour **Frappe Framework et ERPNext v16**.
Application open source de facturation électronique française pour **Frappe Framework** et **ERPNext v16**.
Enuxia E-Invoice connecte les factures de vente et dachat standards dERPNext aux services de facturation électronique de **SuperPDP**.
> **État du projet :** développement actif et tests en environnement de laboratoire.
> Un audit de sécurité, de conformité réglementaire et de configuration comptable reste nécessaire avant toute utilisation en production.
> **État du projet : Release Candidate V1.**
> Le périmètre fonctionnel principal, les contrôles daccès et les tests automatisés sont en place.
> Lapplication est prête pour une préproduction et un pilote encadré. Une validation sur un environnement SuperPDP de production, ainsi quun audit de déploiement, de sécurité et de configuration comptable, restent nécessaires avant une mise en production générale.
---
## Fonctionnalités
### Factures de vente
* Utilisation des factures de vente standards ERPNext
* Génération des données sémantiques EN 16931
* Conversion au format UBL
* Validation des factures générées
* Envoi des factures par lintermédiaire de SuperPDP
* Enregistrement de lidentifiant distant SuperPDP
* Protection contre les doubles envois
* Synchronisation des statuts
* Historique des événements de transmission
* Gestion des identifiants et informations de routage françaises
* Recherche dans lannuaire français de facturation électronique
- utilisation des factures de vente standards dERPNext ;
- contrôle des données nécessaires à la facturation électronique ;
- génération des données sémantiques conformes à EN 16931 ;
- conversion au format UBL ;
- validation du document généré ;
- envoi des factures par lintermédiaire de SuperPDP ;
- enregistrement de lidentifiant distant SuperPDP ;
- protection contre les doubles envois ;
- synchronisation des statuts de transmission ;
- historique des événements de transmission ;
- gestion des identifiants et informations de routage françaises ;
- recherche dans lannuaire français de facturation électronique ;
- suivi de l’état de paiement ;
- déclaration des encaissements auprès de SuperPDP ;
- gestion des erreurs et nouvelle tentative de déclaration dencaissement.
### Factures fournisseurs
* Synchronisation incrémentale des factures reçues
* Synchronisation manuelle depuis linterface ERPNext
* Synchronisation automatique horaire
* Protection contre les synchronisations concurrentes avec Redis
* Archivage des données sémantiques EN 16931
* Archivage du document original
* Rapprochement fournisseur par identifiant fiscal
* Correspondance des articles, taxes, entrepôts et comptes comptables
* Prévisualisation de la facture dachat
* Création dune facture dachat ERPNext en brouillon
* Protection contre les doublons
* Restauration de l’échange entrant lorsquune facture dachat brouillon est supprimée
- synchronisation incrémentale des factures reçues ;
- synchronisation manuelle depuis linterface ERPNext ;
- synchronisation automatique horaire ;
- protection contre les synchronisations concurrentes avec Redis ;
- archivage des données sémantiques EN 16931 ;
- archivage du document original ;
- création dun échange électronique entrant traçable ;
- rapprochement fournisseur par identifiant fiscal ;
- association manuelle dun fournisseur existant ;
- création dun fournisseur depuis les données reçues ;
- correspondance des articles, taxes, entrepôts et comptes comptables ;
- préparation et validation des lignes dachat ;
- prévisualisation de la facture dachat ;
- calcul ERPNext en mémoire avant import ;
- création dune facture dachat ERPNext en brouillon ;
- protection contre les doublons ;
- restauration de l’échange entrant lorsquune facture dachat brouillon est supprimée ;
- accès au document original et aux données EN 16931 depuis la facture dachat.
### Intégration ERPNext
* Workspace dédié à la facturation électronique
* Configuration des comptes de facturation électronique
* Intégration aux factures de vente
* Intégration aux factures dachat
* Gestion des identifiants électroniques des clients
* Accès aux documents reçus depuis les factures dachat
* Application visible dans le Desk Frappe v16
* Sidebar et icône Desk dédiées
- workspace dédié à la facturation électronique ;
- configuration des comptes de facturation électronique ;
- intégration aux factures de vente standards ;
- intégration aux factures dachat standards ;
- gestion des identifiants électroniques des sociétés et des clients ;
- accès aux échanges et documents liés ;
- vues rapides pour les factures et les échanges ;
- statuts de transmission et dencaissement traduits ;
- application visible dans le Desk Frappe v16 ;
- sidebar et icône Desk dédiées ;
- interface française intégrée au système de traduction Frappe.
---
## Rôles et permissions
Lapplication crée trois rôles métier :
### Facturation électronique - Lecture
Permet notamment de :
- consulter les échanges électroniques autorisés ;
- consulter les statuts de transmission et de paiement ;
- utiliser les vues de suivi ;
- ouvrir les documents liés lorsque les permissions ERPNext le permettent.
### Facturation électronique - Opérateur
Inclut les capacités de lecture et permet notamment de :
- vérifier une facture ;
- préparer, générer, valider et envoyer une facture électronique ;
- synchroniser les statuts ;
- déclarer un encaissement ;
- synchroniser les factures entrantes ;
- rapprocher les fournisseurs ;
- préparer et importer une facture dachat ;
- utiliser lannuaire de facturation électronique.
### Facturation électronique - Responsable
Inclut les capacités de lOpérateur et permet notamment de :
- créer et modifier les comptes de facturation électronique ;
- renseigner les identifiants SuperPDP ;
- tester la connexion à SuperPDP ;
- administrer la configuration sensible de lintégration.
`System Manager` et `Administrator` conservent un accès privilégié pour ladministration Frappe.
Les permissions ERPNext natives restent appliquées aux factures, sociétés, clients, fournisseurs et documents comptables.
Les `User Permission` Frappe permettent de limiter laccès aux sociétés autorisées.
Les contrôles côté interface améliorent lexpérience utilisateur, mais les contrôles côté serveur restent lautorité de sécurité.
---
## Prérequis
* Frappe Framework v16
* ERPNext v16
* Une installation Bench compatible
* Redis
* Un compte SuperPDP
* Des identifiants dAPI SuperPDP
- Frappe Framework v16 ;
- ERPNext v16 ;
- une installation Bench compatible ;
- Redis ;
- un compte SuperPDP ;
- des identifiants dAPI SuperPDP.
ERPNext est déclaré comme dépendance obligatoire et doit être installé avant Enuxia E-Invoice.
---
## Installation
Depuis une installation Bench Frappe/ERPNext v16 existante :
@@ -93,22 +158,28 @@ Redémarrer les services lorsque le mode de déploiement lexige :
bench restart
```
---
## Configuration initiale
Après linstallation :
1. Ouvrir lapplication **Facturation électronique** depuis le Desk.
2. Ouvrir **Comptes de facturation électronique**.
3. Créer un compte `Electronic Invoicing Account`.
4. Sélectionner la société ERPNext concernée.
5. Choisir lenvironnement SuperPDP.
6. Renseigner les identifiants dAPI SuperPDP.
7. Tester la connexion.
8. Configurer les identifiants électroniques de la société et des clients.
9. Configurer les correspondances comptables des factures fournisseurs.
1. ouvrir lapplication **Facturation électronique** depuis le Desk ;
2. attribuer les rôles de facturation électronique aux utilisateurs concernés ;
3. configurer les `User Permission` de société ;
4. ouvrir **Comptes de facturation électronique** ;
5. créer un compte `Electronic Invoicing Account` ;
6. sélectionner la société ERPNext concernée ;
7. choisir lenvironnement SuperPDP ;
8. renseigner les identifiants dAPI SuperPDP ;
9. tester la connexion ;
10. configurer les identifiants électroniques de la société et des clients ;
11. configurer les correspondances comptables des factures fournisseurs.
Les identifiants et jetons SuperPDP sont propres à chaque site. Ils ne sont pas inclus dans ce dépôt.
---
## Envoi dune facture client
Lenvoi seffectue depuis une facture de vente ERPNext validée.
@@ -124,6 +195,10 @@ Lapplication :
Les factures déjà envoyées sont protégées contre les doubles transmissions.
Lorsquune facture transmise est encaissée, un utilisateur autorisé peut déclarer lencaissement à SuperPDP depuis la facture de vente.
---
## Synchronisation des factures reçues
Les factures reçues sont synchronisées automatiquement par le scheduler horaire.
@@ -143,6 +218,8 @@ Elle ne valide pas automatiquement les écritures comptables.
Les factures dachat ERPNext sont toujours créées en statut **Brouillon** et doivent être contrôlées par un utilisateur autorisé avant validation.
---
## Développement
Appliquer les migrations :
@@ -157,80 +234,144 @@ Construire les assets :
bench build --app enuxia_einvoice
```
Lancer les tests :
### Tests unitaires
```bash
./env/bin/python -m unittest discover \
-s apps/enuxia_einvoice/enuxia_einvoice/tests
```
État actuel :
```text
101 tests unitaires
```
### Tests dintégration Frappe
```bash
bench --site votre-site.example run-tests \
--app enuxia_einvoice
--app enuxia_einvoice \
--module enuxia_einvoice.tests.permissions_integration \
--test-category integration
```
Le projet contient notamment des tests pour :
État actuel :
* les appels à lAPI SuperPDP ;
* la génération EN 16931 ;
* la conversion UBL ;
* la validation des factures ;
* le workflow denvoi ;
* la synchronisation entrante ;
* les calculs de facture dachat ;
* les correspondances fournisseurs et articles ;
* la protection contre les doublons ;
* lhistorique des événements ;
* la sécurité des URLs de documents ;
* les identifiants dentreprise français.
```text
5 tests dintégration
```
Les tests couvrent notamment :
- les appels à lAPI SuperPDP ;
- la génération EN 16931 ;
- la conversion UBL ;
- la validation des factures ;
- le workflow denvoi ;
- la synchronisation entrante ;
- la déclaration des encaissements ;
- les calculs de facture dachat ;
- les correspondances fournisseurs et articles ;
- la protection contre les doublons ;
- lhistorique des événements ;
- la sécurité des URL de documents ;
- les identifiants dentreprise français ;
- la hiérarchie des rôles ;
- les permissions des DocTypes ;
- les restrictions de société par `User Permission`.
---
## Sécurité
Ne publiez jamais dans les issues, logs ou pull requests :
* les secrets client SuperPDP ;
* les jetons daccès ;
* les jetons de rafraîchissement ;
* des factures de production ;
* des données personnelles ;
* des informations confidentielles de clients ou fournisseurs ;
* des fichiers de configuration privés ;
* des clés privées.
- les secrets client SuperPDP ;
- les jetons daccès ;
- les jetons de rafraîchissement ;
- des factures de production ;
- des données personnelles ;
- des informations confidentielles de clients ou fournisseurs ;
- des fichiers de configuration privés ;
- des clés privées.
Les identifiants doivent être configurés dans linterface ERPNext et stockés dans les champs protégés de Frappe.
Les vulnérabilités sensibles ne doivent pas être publiées dans une issue publique. Elles doivent être signalées directement aux mainteneurs Enuxia.
Avant un déploiement réel :
- attribuez les rôles selon le principe du moindre privilège ;
- configurez les `User Permission` par société ;
- vérifiez les droits ERPNext natifs ;
- activez HTTPS ;
- protégez les sauvegardes ;
- testez la restauration ;
- contrôlez les journaux et la supervision ;
- vérifiez quaucun secret nest exposé dans les logs.
---
## Données et conformité
Cette application facilite le transport et le traitement de données de facturation électronique.
Elle ne garantit pas, à elle seule, la conformité :
* comptable ;
* fiscale ;
* juridique ;
* réglementaire ;
* RGPD ;
* organisationnelle.
- comptable ;
- fiscale ;
- juridique ;
- réglementaire ;
- RGPD ;
- organisationnelle.
Chaque déploiement doit être contrôlé selon :
* lorganisation concernée ;
* sa configuration comptable ;
* sa plateforme de dématérialisation partenaire ;
* les exigences françaises et européennes applicables ;
* ses obligations de sécurité et de protection des données.
- lorganisation concernée ;
- sa configuration comptable ;
- sa plateforme de dématérialisation partenaire ;
- les exigences françaises et européennes applicables ;
- ses obligations de sécurité et de protection des données.
---
## État du projet
Le projet est actuellement destiné :
Le projet est actuellement adapté :
* au développement ;
* aux démonstrations ;
* aux tests en laboratoire ;
* à la préparation de pilotes encadrés.
- au développement ;
- aux démonstrations ;
- aux tests en laboratoire ;
- à une préproduction ;
- à la préparation de pilotes encadrés.
Il nest pas encore déclaré prêt pour un déploiement en production sans audit complémentaire.
Le périmètre fonctionnel principal de la V1 est terminé et couvert par des tests automatisés.
Lapplication nest pas encore déclarée prête pour un déploiement en production générale sans validation complémentaire.
Avant une version stable `v1.0.0`, les points suivants doivent notamment être validés :
- installation sur un site ERPNext v16 vierge ;
- migrations répétables ;
- échanges avec lenvironnement SuperPDP de production ;
- tests réels denvoi, de réception, davoir et dencaissement ;
- validation des principaux cas comptables ;
- sauvegarde et restauration ;
- supervision des synchronisations ;
- documentation dexploitation ;
- pilote sans anomalie bloquante.
Version recommandée pour la prochaine étape :
```text
v1.0.0-rc.1
```
---
## Licence
Ce projet est distribué sous licence MIT.
Copyright © 2026 Enuxia contributors.