Aller au contenu principal
VeriFactu

Ce que fait le bouton Generate Access Export (art.15) de VeriFactu

Le bouton Generate Access Export (art.15) du DSAR Wizard cherche, dans la société choisie, les enregistrements et les annulations qui correspondent à un NIF ou à un nom, enregistre le résultat dans un fichier JSON (le code tente aussi d'enregistrer un PDF) et laisse un événement dans le registre d'événements du module.

FlexigoTech · Responsable : Víctor Gómez · Mis à jour le 5 novembre 2026

L'essentiel

Module
VeriFactu
Versions
Odoo 17, 18, 19 et 20
Vérifié
dans le code du module, version 20.0 · dans les sources citées à la fin
Lecture
5 min

Le cas : une demande d'accès dans un cabinet de gestion

Exemple Cas illustratif : l'entreprise et ses chiffres sont inventés pour expliquer le flux.

Asesoría Ribera, un cabinet de gestion inventé pour cet exemple, reçoit la demande d'une personne qui veut savoir quelles données la concernant figurent dans la facturation d'un client. La responsable de la confidentialité du cabinet travaille dans Odoo avec VeriFactu España (AEAT RRSIF Compliance) et doit extraire cette information du module.

Le bouton existe dans les branches 17, 18, 19 et 20 du module, publié sur Odoo Apps pour ces quatre versions. Ce qui suit décrit le code d'Odoo 20.0.

Schéma réalisé à partir du code, pas un écran d'Odoo : le chemin du menu jusqu'au DSAR Wizard et, en dessous, le bouton Generate Access Export (art.15)
Schéma généré à partir du code du module (avec les libellés en anglais du code) : le menu et le bouton, présent dans Odoo 17, 18, 19 et 20.

Comment elle arrive au bouton

La fiche s'ouvre depuis Verifactu / SIF › Privacy / GDPR › DSAR Wizard. Chaque niveau du menu demande des droits et, si vous n'en avez pas un, vous ne voyez pas ce niveau : Privacy / GDPR est visible pour Privacy Officer et SIF Manager ; Verifactu / SIF est visible aussi pour Accountant, Asesoría Operator et Auditor (read-only).

Une fois dans la fiche, le bouton ne dépend d'aucune condition de la vue : il s'affiche dans les quatre versions. Voici les étapes qu'elle suit :

  1. Ouvrez le menu et entrez dans la fiche du DSAR Wizard. Les champs de la demande se trouvent dans le groupe Request Details.
  2. Regardez le champ Company. Par défaut, il reprend la société active, et la recherche se fait uniquement dans la société indiquée là.
  3. Saisissez dans Data Subject NIF / Name le NIF de la personne ou son nom.
  4. Si le cabinet utilise un numéro de dossier, notez-le dans Request Reference.
  5. Cliquez sur Generate Access Export (art.15).

Le libellé du bouton change avec la langue d'Odoo. Avec Odoo en espagnol, c'est celui ci-dessus ; avec Odoo en catalan, Generar Exportació d'Accés (art.15).

Schéma réalisé à partir du code et des traductions du module, pas un écran d'Odoo : le texte Generate Access Export (art.15) et sa version en espagnol et en catalan
Schéma avec le libellé du bouton selon la langue d'Odoo.

Ce que fait le bouton, dans l'ordre

Lorsqu'on clique dessus, le code procède ainsi, étape par étape :

  • Il prend le texte saisi dans Data Subject NIF / Name, retire les espaces aux extrémités et lance la recherche avec ce texte dans la société choisie.
  • Il assemble le résultat, qui contient le texte saisi, le nom de la société et deux listes : les enregistrements et les annulations trouvés.
  • Il enregistre ce résultat dans un fichier JSON dans l'assistant lui-même, nommé dsar_access_export_ suivi des vingt premiers caractères de ce que vous avez saisi et de l'extension .json.
  • Il tente en plus de générer un PDF (plus bas, ce que fait le code si cela échoue).
  • Il consigne un événement (section suivante).
  • Il rouvre la même fiche de l'assistant dans une fenêtre contextuelle, avec le même enregistrement.

Le code décrit cette extraction comme une lecture des champs de données personnelles sans modifier aucun enregistrement de la chaîne.

Ce qu'il cherche et ce qu'il exporte

BlocOù il chercheQuelles données il extrait
EnregistrementsIdentifiant ou nom de la contrepartieNuméro de série, date d'émission, nom, type d'identifiant, identifiant et total
AnnulationsUniquement l'identifiant de la contrepartieNuméro de série, date d'émission et identifiant

La correspondance est de type « contient », sans tenir compte de la casse. Si Asesoría Ribera ne saisit qu'un morceau de nom, tous les enregistrements de cette société dont le nom ou l'identifiant contient ce morceau sont retenus. Et si elle saisit un nom, les annulations ne sont pas recherchées par ce nom, seulement par identifiant.

Ce qui est consigné

Une fois le fichier généré, le bouton crée un événement dans le registre d'événements du module, pour la société choisie. L'événement contient la date et l'heure, l'utilisateur qui a cliqué sur le bouton, une description avec le NIF ou le nom saisi, le NIF ou le nom et la référence de la demande comme contexte (la référence reste vide si vous ne l'avez pas remplie), une empreinte calculée sur ces données et un numéro de séquence propre à la société.

La référence de la demande est transmise à l'événement ; le fichier JSON de l'export ne l'inclut pas. Et l'ordre compte : si la génération du fichier s'arrête sur une erreur, le code n'arrive pas à consigner l'événement.

Autres actions qui laissent des événements

L'événement du bouton n'est pas le seul consigné de cette manière. Lors de l'enregistrement de la fiche d'une société, si l'environnement de l'AEAT, le responsable du SIF ou le périmètre de VeriFactu a changé, un événement est aussi créé. De plus, le bouton standard d'annulation d'une facture, que le module étend, et la tâche planifiée Verifactu: Clock Drift Check, qui s'exécute toutes les heures et est active dès l'installation, alimentent ce même registre. Pour ce que le module ajoute aux factures, consultez cet article.

Le PDF que le code tente d'enregistrer

En plus du JSON, le code tente de générer un PDF avec le même assistant et, s'il y parvient, l'enregistre sous le nom dsar_access_export_ plus les vingt premiers caractères du texte saisi et l'extension .pdf. Si cette génération échoue, le code intercepte l'erreur, note un avertissement dans le journal du serveur et poursuit avec le JSON et l'événement.

Ce que le cas enseigne

  • Confirmez le champ Company avant de cliquer : la recherche s'y limite.
  • Saisissez le NIF complet quand vous l'avez ; un nom partiel peut ramener plus d'enregistrements que prévu, et les annulations ne ressortent que par identifiant.
  • Notez la Request Reference si vous voulez que l'événement la porte : le JSON exporté ne l'inclut pas.

Comment FlexigoTech vous aide

FlexigoTech met en place Odoo 17, 18, 19 et 20 et développe des connecteurs et des intégrations sur mesure. Si vous souhaitez vérifier qui doit avoir les droits du menu de confidentialité, ou adapter le module à votre processus, écrivez-nous.

À lire aussi

Ce que VeriFactu España ajoute à la facture Odoo et quand il intervientChamps que VeriFactu España ajoute à la facture Odoo, quand il crée l'enregistrement à la validation et comment vérifier qu'il est intervenu, pas à pas.«Only a SIF Manager can retry AEAT submissions.» : quand il apparaît et que faireQue signifie l'avertissement «Only a SIF Manager can retry AEAT submissions.» dans VeriFactu pour Odoo : quand il apparaît et comment le résoudre.Ce que fait le bouton Generate Export de VeriFactu España dans OdooCe que fait le bouton Generate Export de VeriFactu España dans Odoo : qui le voit, ce que génère chaque type d'exportation et l'événement consigné.
Vérifié dans le code du module (version 20.0) et dans les sources citées

Sources