Naar hoofdinhoud
VeriFactu

Wat doet de knop Generate Access Export (art.15) van VeriFactu

De knop Generate Access Export (art.15) van de DSAR Wizard zoekt in het gekozen bedrijf de registraties en annuleringen die overeenkomen met een NIF of een naam, bewaart het resultaat als JSON-bestand (de code probeert ook een PDF te bewaren) en legt een gebeurtenis vast in het gebeurtenissenregister van de module.

FlexigoTech · Verantwoordelijk: Víctor Gómez · Bijgewerkt op 5 november 2026

In het kort

Module
VeriFactu
Versies
Odoo 17, 18, 19 en 20
Gecontroleerd
in de broncode van de module, versie 20.0 · in de bronnen onderaan
Leestijd
5 min

De casus: een inzageverzoek bij een administratiekantoor

Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.

Asesoría Ribera, een voor dit voorbeeld verzonnen administratiekantoor, ontvangt het verzoek van iemand die wil weten welke gegevens van hem of haar voorkomen in de facturatie van een klant. De privacyverantwoordelijke van het kantoor werkt in Odoo met VeriFactu España (AEAT RRSIF Compliance) en moet die informatie uit de module halen.

De knop zit in de takken 17, 18, 19 en 20 van de module, gepubliceerd in Odoo Apps voor die vier versies. Wat volgt beschrijft de code van Odoo 20.0.

Schema gemaakt met code, geen Odoo-scherm: de menuroute naar de DSAR Wizard en daaronder de knop Generate Access Export (art.15)
Schema gegenereerd op basis van de code van de module (met de Engelse labels uit de code): het menu en de knop, die in Odoo 17, 18, 19 en 20 zit.

Hoe zij bij de knop komt

Het formulier opent via Verifactu / SIF › Privacy / GDPR › DSAR Wizard. Elk deel van het menu vraagt rechten en als je die niet hebt, zie je dat deel niet: Privacy / GDPR zien Privacy Officer en SIF Manager; Verifactu / SIF zien ook Accountant, Asesoría Operator en Auditor (read-only).

In het formulier hangt de knop van geen enkele voorwaarde in de weergave af: hij is zichtbaar in alle vier de versies. Haar stappen zijn deze:

  1. Open het menu en ga naar het formulier van de DSAR Wizard. De velden van het verzoek staan in de groep Request Details.
  2. Kijk naar het veld Company. Standaard staat daar het actieve bedrijf en er wordt alleen gezocht binnen het bedrijf dat daar staat.
  3. Vul in Data Subject NIF / Name het NIF van de persoon of zijn of haar naam in.
  4. Als het kantoor een dossiernummer hanteert, noteert zij dat in Request Reference.
  5. Klik op Generate Access Export (art.15).

Het label van de knop verandert met de taal van Odoo. Met Odoo in het Spaans is het het label hierboven; met Odoo in het Catalaans Generar Exportació d'Accés (art.15).

Schema gemaakt met code op basis van de vertalingen van de module, geen Odoo-scherm: de tekst Generate Access Export (art.15) en de Spaanse en Catalaanse versie
Schema met het label van de knop volgens de taal van Odoo.

Wat de knop doet, op volgorde

Zodra je klikt, doet de code dit, de een na de ander:

  • Neemt de tekst in Data Subject NIF / Name, haalt de spaties aan de uiteinden weg en zoekt ermee in het gekozen bedrijf.
  • Stelt het resultaat samen met de tekst die je invulde, de naam van het bedrijf en twee lijsten: de gevonden registraties en annuleringen.
  • Bewaart dat resultaat als JSON-bestand in de wizard zelf, met de naam dsar_access_export_ gevolgd door de eerste twintig tekens van wat je invulde en de extensie .json.
  • Probeert daarnaast een PDF te genereren (hieronder wat de code doet als dat niet lukt).
  • Legt een gebeurtenis vast (volgende sectie).
  • Opent hetzelfde formulier van de wizard opnieuw in een pop-upvenster, met hetzelfde record.

De code beschrijft deze extractie als het lezen van de velden met persoonsgegevens zonder een record van de keten te wijzigen.

Wat hij zoekt en wat hij exporteert

BlokWaar hij zoektWelke gegevens hij haalt
RegistratiesIdentificatie of naam van de tegenpartijSerienummer, uitgiftedatum, naam, type identificatie, identificatie en totaal
AnnuleringenAlleen de identificatie van de tegenpartijSerienummer, uitgiftedatum en identificatie

De overeenkomst is "bevat", zonder onderscheid tussen hoofd- en kleine letters. Als Asesoría Ribera slechts een stuk van een naam invult, komen alle registraties van dat bedrijf binnen waarvan de naam of identificatie dat stuk bevat. En als zij een naam invult, worden de annuleringen daar niet op gezocht, alleen op identificatie.

Wat er wordt vastgelegd

Na het genereren van het bestand maakt de knop een gebeurtenis aan in het gebeurtenissenregister van de module, voor het gekozen bedrijf. De gebeurtenis bevat datum en tijd, de gebruiker die op de knop klikte, een omschrijving met het ingevulde NIF of de ingevulde naam, het NIF of de naam en de referentie van het verzoek als context (de referentie blijft leeg als je haar niet invulde), een hash berekend over die gegevens en een volgnummer dat eigen is aan het bedrijf.

De referentie van het verzoek gaat mee naar de gebeurtenis; het JSON-bestand van de export bevat haar niet. En de volgorde is belangrijk: als het genereren van het bestand met een fout stopt, komt de code er niet aan toe de gebeurtenis vast te leggen.

Andere acties die gebeurtenissen achterlaten

De gebeurtenis van de knop is niet de enige die op deze manier wordt vastgelegd. Bij het opslaan van het formulier van een bedrijf wordt ook een gebeurtenis vastgelegd als de AEAT-omgeving, de SIF-verantwoordelijke of het VeriFactu-toepassingsgebied is gewijzigd. Daarnaast komen ook de standaardknop om een factuur te annuleren, die de module uitbreidt, en de geplande taak Verifactu: Clock Drift Check, die elk uur draait en bij installatie actief is, in datzelfde register terecht. Voor wat de module aan facturen toevoegt, zie dit artikel.

De PDF die de code probeert te bewaren

Naast de JSON probeert de code met dezelfde wizard een PDF te genereren en, als dat lukt, bewaart hij die met de naam dsar_access_export_ plus de eerste twintig tekens van het ingevulde en de extensie .pdf. Als dat genereren mislukt, vangt de code de fout op, noteert een waarschuwing in het serverlogboek en gaat verder met de JSON en de gebeurtenis.

Wat je van de casus leert

  • Controleer het veld Company voordat je klikt: de zoekopdracht beperkt zich daartoe.
  • Vul het volledige NIF in als je het hebt; een gedeeltelijke naam kan meer registraties opleveren dan verwacht, en annuleringen komen alleen via identificatie naar boven.
  • Noteer de Request Reference als je wilt dat de gebeurtenis haar bevat: de geëxporteerde JSON bevat haar niet.

Hoe FlexigoTech helpt

FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Wil je nagaan wie de rechten van het privacymenu moet hebben, of de module aanpassen aan jullie proces, schrijf ons dan.

Lees verder

Wat VeriFactu España aan de Odoo-factuur toevoegt en wanneer de module ingrijptVelden die VeriFactu España aan de Odoo-factuur toevoegt, wanneer de module bij het boeken de registratie aanmaakt en hoe je controleert dat hij heeft gewerkt.«Only a SIF Manager can retry AEAT submissions.»: wanneer je dit ziet en wat je doetWat de melding «Only a SIF Manager can retry AEAT submissions.» in VeriFactu voor Odoo betekent: wanneer ze verschijnt.Wat de knop Generate Export van VeriFactu Spanje in Odoo doetWat de knop Generate Export van VeriFactu Spanje in Odoo doet: wie hem ziet, wat elk exporttype genereert en welke gebeurtenis er wordt vastgelegd.
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen

Bronnen