Loi article 88 finances 2016 France et NF525

De Dolibarr Open Source ERP CRM Wiki.

Ceci est une page de suivi du projet Article 88 de la Loi finance 2016 (n° 2015-1785 du 29 décembre 2015), applicable au 1er janvier 2018 en France.


Contents

Résumé

La loi finances 2016, article 88, par contre, impose à tous les commerçants, *assujettis à la TVA* (et seulement ces derniers) ET qui sont équipés d'un *logiciel qui enregistre les encaissements* d'utiliser un logiciel dans un cadre "conforme" à la loi fincance 2016, et ce dès le 1er janvier 2018.

Cette conformité peut s'obtenir de 2 manières différentes (une seule des 2 solutions suffit):

  • Par l'utilisation d'une version *certifiée* du logiciel (Exemple via l'obtention de la certification LNE ou l'obtention de la norme NF525 de l'AFNOR).

ou bien


Voici l'article de la loi finance du 29/12/2015: https://www.legifrance.gouv.fr/affichTexteArticle.do?cidTexte=JORFTEXT000031732865&idArticle=LEGIARTI000031734740&dateTexte=20151230

Voici l'article publié au BOFIP original du 03/08/2016: http://bofip.impots.gouv.fr/bofip/10691-PGP.html?identifiant=BOI-TVA-DECLA-30-10-30-20160803


Voyons par un système de question-réponse comment synthétiser tout cela:



Warning.png MAJ 15 juin 2017: Communiqué de presse du cabinet du ministère: http://proxy-pubminefi.diffusion.finances.gouv.fr/pub/document/18/22503.pdf -> Seules les logiciels de caisse seraient concernés. Dolibarr étant dans la catégorie logiciel de gestion et non de caisse, l'obligation de mise en conformité et tout ce qui suit n'est plus avéré (sauf si vous utilisez le module "POS" de Dolibarr qui est un module de caisse). Mais de toute façon, même si Dolibarr n'est plus concerné, nous allons quand même mettre en oeuvre la mise en conformité pour le 1er janvier 2018 (le travail étant presque fini, autant aller au bout, "Qui peut le plus, peut le moins !"...)

Questions réponses

Quelles sont les conditions pour etre conforme (obtenir la certification ou l'attestation de conformité)

  • Principe d'inaltérabilité
    • Logs non modifiable par chainage pour tout ce qui concerne les ventes et encaissements (inclut toutes les mentions obligatoires d'une facture)
    • Quand une facture est validée on ne peut plus modifier ni la facture ni les paiements => Quid si on détecte une erreur de saisie dans la seconde qui suit la validation ?
    • Liens de correspondance afin de vérifier différence entre les logs/achives et les tables de factures et paiements
  • Conservation sur 6 ans ou plus (Remarque: Dolibarr conserve les données en base à vie)
  • Fonction "Archiver" annuellement qui permet d'exporter dans un fichier externe dans un format lisible sans le logiciel et par l'administration pour consulter l'archive (et retrouver les infos qui compose la facture, les paiements).
  • Fournir, soit la certification de conformité du logiciel, soit une attestation de conformité (Voir dans les FAQ suivantes sur comment l'obtenir)


!!! En d'autres termes, il ne sera plus possible d'utiliser des logiciels tableurs comme Excel, Google Apps, ou autre solution développée soi même sans considération de cette loi, pour tracer ses encaissements (sauf à continuer de saisir en parallèle soit dans un autre système conforme ou sur le bon vieux carnet à souche numéroté, auquel cas ce sont ces derniers qui feront foi de pièce comptables). Des logiciels, engagés dans la mise en conformité loi finance 2016, comme Dolibarr ERP CRM deviennent alors obligatoires dès lors que l'on veut une saisie unique informatique.


L'application Dolibarr sera-t-elle certifiée par l'éditeur

Pour Dolibarr, et de nombreux logiciels Open Source, il n'y a pas un éditeur bien identifié car de nombreuses sociétés différentes contribuent à son évolution.

Au sens de la loi, l'éditeur du logiciel est le "dernier" qui a modifié/validé le code. L'entité qui postule pour une certification peut donc être, aussi bien l'association Dolibarr, comme tout intégrateur ou autre institution externe.

L'association Dolibarr, qui a pour role la promotion du logiciel, fera les démarches pour obtenir la certification pour certaines versions majeures, celles qui sont officiellement packagées par le release manager et qui sont mises à disposition sur l'espace de téléchargement officiel par l'association. Il est fort probable que seules quelques versions bien identifiées feront l'objet d'une demande de certification.

Toutefois, cette obention de certification n'est pas obligatoire pour être conforme. L'autre solution, celle de l'obtention d'une attestation peut s'avérer plus simple.


L'attestation de conformité, autre possibilité, sera-t-elle fournie par l'éditeur

L'autre solution pour être en règle est d'obtenir une attestation de conformité de votre version. L'association pourra aussi fournir un telle attestation pour une version et une configuration donnée.

Toutefois, en tant qu'utilisateur, vous pourrez aussi obtenir une attestation auprès de n'importe quel intégrateur prêt à la fournir, ou vous la délivrer à vous même si vous êtes une société d'édition de logiciel. Voir les 2 FAQ suivantes pour savoir qui pourra délivrer les attestations de conformité...


La loi finance est-elle compatible avec les licences libres ?

La conséquence des 2 points précédents et, que ce soit par utilisation de la version certifiée ou par obtention d'une attestation de conformité, la nouvelle loi vous prive donc de votre liberté de *modifier le logiciel sur les parties qui concernent l'encaissement*. En effet, en faisant une telle modification, la version a changée (la certification n'est plus valable, l'attestation d'un tiers non plus). Les logiciels libres sont donc tout à fait légaux et compatible avec la loi, par contre, c'est à condition de ne pas faire n'importe quelle modification. Vous perdez donc une liberté (non pas du fait de la licence du logiciel qui le permet, mais du fait de la loi qui est prioritaire sur les droits accordés par la licence. Le logiciel libre est donc bien compatible avec la loi, mais la loi vous prive d'une des 4 libertés que le logiciel libre apportait, celle de le modifier librement. Vous pouvez toujours le faire, mais à condition que cela ne porte pas sur le comportement de l'encaissement, ou, si cela porte sur l'encaissement, que vous réobteniez soit la certification à nouveau (complexe et payant), soit une nouvelle attestation.


Pour ma propre utilisation, puis-je m'auto délivré l'attestation de conformité pour une version que j'ai modifié moi même de Dolibarr

Uniquement un nombre très restreints d'entreprise avec un code NACE particulier le pourront (Code NACE = terme européen du code NAF/APE). Il faut un code NACE dans l'Edition de logiciel de comptabilité ou de gestion ou de système de caisse. A priori, nous supposons qu'il s'agit du code 58.29 qui signifie Edition de logiciel autre et/ou 62.01Z qui signifie Développement de logiciels (la valeur du code n'a pas été cité dans les textes de loi et il n'existe pas de code NACE en rapport avec le libellé cité dans le texte de loi non plus. Il s'agit donc d'une supposition).

Si vous n'avez pas ce code NACE, vous devez obtenir l'attestation de conformité auprès d'un tiers.


Je suis intérateur ou développeur informatique, je sais que Dolibarr répond aux exigences, puis-je délivrer l'attestation de conformité, à mon client, moi même ?

A priori oui. Le certificat engage la responsabilité de celui qui l'émet. A vous de fournir la version que vous attester avec la signature que vous pouvez généré depuis l'outil *generate_filelist_xml.php* Cette signature vous permettra de vérifier que votre client n'a pas fait de *modification de code sur les parties qui concernent l'encaissement*. Auquel cas, il devient éditeur, et votre attestation n'est plus valide, vous n'êtes alors plus responsable d'une apparition d'une fonctionnalité non conforme dans le logiciel.


Quel outil ai-je à ma disposition pour m'assurer que les exigences du logiciel sont bien assurées

La configuration par défaut sera-t-elle que dès lors que le pays géré par Dolibarr est à France, les fonctionnalités obligatoires pour être conforme s'activeront d'elle même. L'application est une application Open Source, le client utilisateur peut réussir à modifier le code (notons que ceci est aussi possible avec du propriétaire, juste plus difficile). De même, un hacker peut toujours réussir à trafiquer un logiciel. Face à cela, Dolibarr fourni, à partir de la version 6.0, un outil pour obtenir la liste de tous les fichiers qui auraient été modifiés par rapport à la version officielle ainsi que les paramètres de configuration obligatoire pour la conformité qui aurait aussi été modifié. Le certificat étant délivré pour une version avec une configuration donnée, si un utilisateur ou hacker a pu altérer partiellement l'application sur du code ou des paramètres sensibles, l'outil de contrôle pourra le révéler, auquel cas, la responsabilité de non conformité n'est plus du ressort de l'entité qui a fournit le certificat, puisque ce n'est plus la même application, mais de la responsabilité de celui qui est à l'origine des modifications.

Travaux en cours et à venir dans Dolibarr pour permettre la conformité via attestation

Fonction de signature d'une version avec sa configuration

  • Améliorer l'outil de fabrication de signature d'une version de Dolibarr pour permettre l'ajout de la configuration ou une partie de configuration dans la signature.

-> Fait en v6

Fonction pour forcer l'activation d'un module selon le pays lors de l'activation d'un modules

  • Améliorer la proriété ->depends afin de pouvoir faire une dépendance selon le pays = array('FR'=> array('modBlockedLog', ...))

Ainsi en activant le module Facture, cela force l'activation du module modBlockedLog si le pays est France.

-> Fait en v6

  • Ajouter un controle si on change le pays après coup dans la page de configuration pour activer les dépendences dépendant du pays.

-> A faire

Module de tracabilité modBlockedLog

  • Trigger sur les actions facture et paiement pour tracer l'action, avec les informations d'origine, dans une log chainée (difficilement modifiable localement).

On parle d'archivage temps réel.

Chaque ligne intégrant dans sa somme de controle MD5, la somme de controle de la ligne précédente, rendant impossible la modification d'une ligne sans corrompre toute la chaine (la cas de réécriture complete de toute la chaine restera toujours techniquement faisable, mais le système 100% infaillible n'existe pas, et on considère qu'avec ce procédé, le niveau de difficulté devient tel qu'il est jugé suffisant pour être en conformité, une tentative de masquer un encaissement devient alors hors de portée des utilisateurs et même de la plupart des informaticiens, mais restera toujours "techniquement envisageable" à des hackers de haut niveaux).

Les champs à intégrer dans cette log sont:

  • Id ligne (séquence continue obtnue par max + 1)
  • Date et heure (pour signature = date facture ou date paiement)
  • Code trigger (action)
  • Id tiers
  • Libellé tiers
  • Num tva tiers
  • Pays tiers
  • Nom societe
  • Num tva societe
  • Pays societe
  • Id auteur
  • Nom auteur
  • Id facture
  • Ref facture
  • Date facture
  • Id paiement
  • Ref paiement
  • Date paiement
  • Montant paiement (total)
  • Montant paiement (part sur la facture)
  • Mode paiement
  • Montant hors taxe
  • Montant tva
  • Montant local tax 1
  • Montant local tax 2
  • Montant avec taxes
  • Comment
  • Timestamp auto
  • Empreinte de line = signature de la ligne = SHA2(join('|',liste des champs précédents hors comment et timestamp auto))
  • Version checksum (ce champ permettra de savoir sur quelle cumul de champ a été fait le checksum et quel alogrithme. Si on ajoute plus tard d'autres champ, ou on change l'algorithme pour les prochaines lignes, on est toujours capable de vérifier la validité d'un checksum).
  • Hash de chainage = SHA2(Empreinte de ligne + Hash de chainage de la ligne précédente)


-> A faire

  • Ajout de PHP Unit pour valider erreur de suppression de facture validée.

-> A faire


  • Inclure les actions d'impression ou envoi de factures par email, dans cette log

-> A faire

Fonction pour affichage d'un warning selon pays en cas d'install de module ou module externe

  • Améliorer le descripteur de module par une propriété ->warnings_activation et ->warnings_activation_ext = array('FR'=>'KeyForMessage', ...) pour permettre à un module de déclarer un message de warning qui sera affiché selon le pays lors de l'activation du module ou d'un module externe autre.

La première condition affiche un warning quand on active le module. La deuxième affiche un warning quand on active un module externe. Ceci permettra de mettre en garde l'utilisateur sur le risque encouru à installer des modules externes dans les pays où la législation requiert d'être vigilent sur les fonctionnalités de son logiciel.

-> Fait en v6

  • Ajouter warning sur module comptabilite pour indiquer qu'il ne peut servir que comme logiciel comptable alternatif.

-> A faire.

Fonction pour affichage d'un warning en cas de désintallation d'un module

  • Améliorer le descripteur de module par une propriété ->warnings_unactivation = array('FR'=>'TranslationKeyMessage', ...). Si défini, Message de confirmation à la désactivation du module si pays de la société correspond au pays dans le descripteur. Ceci permettra d'avertir l'utilisateur si il tente de désactiver un module obligatoire fortement recommandé pour être en conformité avec la loi de son pays.

-> A faire

Export archive

  • Dans le module modBlockedLog, possibiliter de générer un fichier CSV depuis la log verrouillée avec signature et infos de chainage, avec colonne action faite (impression, validation...), date, ref facture, ref paiement (si paiement), nature modification, info complémentaires, checksum md5 line (cumul des info)

-> A faire

  • Ajouter le nom et ip de la personne qui a activé un module, en plus de la date.

-> Fait en v6

Ajouter consultation du ChangeLog

  • Rendre lisible/consultable le fichier ChangeLog depuis une page d'administration (accès distant vers page du fichier ChangeLog GitHub via tag de la version).

-> A faire


=> Un intégrateur pourra alors attester de la conformité d'une version de Dolibarr en fournissant la signature de la version pour laquelle il a fourni l'attestation.

Travaux en cours et à venir dans Dolibarr pour permettre la conformité via certification (non obligatoire si l'autre méthode est mise en oeuvre)

Une certification peut etre demandée, par exemple auprès de l'organisme LNE. Elle est payante. Et ne s'obtient que pour une version donnée.

En plus des évolutions déjà évoquées ci-dessus, un gros (très gros) travail documentaire doit etre réalisé pour etre en situation de passer la certification. Voir le document "Référentiel de certification des systèmes de caisse" produits par le LNE (organisme à contacter pour obtenir le document. Si il faut payer pour obtenir le certificat, il faut aussi payer pour avoir les informations sur le périmètre de la certification, mais le document a le mérite d'etre compréhensible).

=> Ce sujet et le processus de demande de certification sera donc la seconde phase.

Planning

  • La solution 1 de mise en conformité (conformité via attestation), sera prête avec la version v7 qui sort en janvier 2018. Une mise à jour sera donc possible. Il sera alors possible d'obtenir une attestation auprès d'un partenaire qui délivre ces attestations. La liste sera disponible sur une page dédiée ouverte en temps et en heure.
  • La solution 2 de mise en conformité (conformité via certification, non obligatoire du fait que la solution 1 sera disponible), sera mise en oeuvre courant 2018 dans une version non déterminée. Elle ne fait qu'apporter un plus pour permettre de ne pas avoir à demander d'attestation. Son calendrier n'est par contre pas encore établie.

Autres ressources diverses sur le sujet

Outils personnels
  • Ask to contact@dolibarr.org to request an account to contribute to this documentation
  • Connexion
Autres langues
Anglais
Pas de traduction en Anglais.
Espagnol
Pas de traduction en Espagnol.
Allemand
Pas de traduction en Allemand.
Italien
Pas de traduction en Italien.
Grèque
Pas de traduction en Grèque.
<multilanguagemanager_cn>
Pas de traduction en &lt;multilanguagemanager_cn&gt;.

Social networks
Follow us on Google+ Follow us on Facebook Follow us on LinkedIn Follow us on Twitter