Saltar al contenido principal
VeriFactu

Qué hace el botón Generar Exportación de Acceso (art.15) de VeriFactu

El botón Generar Exportación de Acceso (art.15) (Generate Access Export (art.15)) del Asistente DSAR (DSAR Wizard) busca, en la empresa elegida, los registros y anulaciones que coinciden con un NIF o un nombre, guarda el resultado como archivo JSON (el código intenta guardar también un PDF) y deja un evento en el registro de eventos del módulo.

FlexigoTech · Responsable: Víctor Gómez · Actualizado el 5 de noviembre de 2026

Lo esencial

Módulo
VeriFactu
Versiones
Odoo 17, 18, 19 y 20
Comprobado
en el código del módulo, versión 20.0 · en las fuentes enlazadas al final
Lectura
5 min

El caso: una petición de acceso en una gestoría

Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.

Asesoría Ribera, una gestoría inventada para este ejemplo, recibe la petición de una persona que quiere saber qué datos suyos constan en la facturación de un cliente. La responsable de privacidad de la gestoría trabaja en Odoo con VeriFactu España (AEAT RRSIF Compliance) y tiene que sacar esa información del módulo.

El botón está en las ramas 17, 18, 19 y 20 del módulo, publicado en Odoo Apps para esas cuatro versiones. Lo que sigue describe el código de Odoo 20.0.

Esquema hecho con código, no una pantalla de Odoo: la ruta del menú hasta el Asistente DSAR y, debajo, el botón Generate Access Export (art.15)
Esquema generado a partir del código del módulo (con los rótulos en inglés del código): el menú y el botón, que está en Odoo 17, 18, 19 y 20.

Cómo llega ella al botón

La ficha se abre desde Verifactu / SIF › Privacidad / RGPD › Asistente DSAR (Verifactu / SIF › Privacy / GDPR › DSAR Wizard). Cada tramo del menú pide permisos y, si no tienes uno, no ves ese tramo: Privacidad / RGPD (Privacy / GDPR) lo ven Responsable de Privacidad (Privacy Officer) y Gestor SIF (SIF Manager); Verifactu / SIF lo ven también Contable (Accountant), Operador de Asesoría (Asesoría Operator) y Auditor (solo lectura) (Auditor (read-only)).

Una vez en la ficha, el botón no depende de ninguna condición de la vista: se ve en las cuatro versiones. Los pasos de ella son estos:

  1. Abre el menú y entra en la ficha del Asistente DSAR. Los campos de la solicitud están en el grupo Detalles de la Solicitud (Request Details).
  2. Mira el campo Empresa (Company). Por defecto trae la empresa activa, y la búsqueda se hace solo dentro de la empresa que figure ahí.
  3. Escribe en NIF / Nombre del Interesado (Data Subject NIF / Name) el NIF de la persona o su nombre.
  4. Si la gestoría lleva un número de expediente, lo anota en Referencia de la Solicitud (Request Reference).
  5. Pulsa Generar Exportación de Acceso (art.15).

El rótulo del botón cambia con el idioma de Odoo. Con Odoo en castellano es el de arriba; con Odoo en catalán, Generar Exportació d'Accés (art.15).

Esquema hecho con código a partir de las traducciones del módulo, no una pantalla de Odoo: el texto Generate Access Export (art.15) y su versión en castellano y en catalán
Esquema con el rótulo del botón según el idioma de Odoo.

Qué hace el botón, en orden

Al pulsarlo, el código hace esto, uno detrás de otro:

  • Toma el texto escrito en NIF / Nombre del Interesado, le quita los espacios de los extremos y busca con él en la empresa elegida.
  • Monta el resultado, que lleva el texto que escribiste, el nombre de la empresa y dos listas: los registros y las anulaciones encontrados.
  • Guarda ese resultado como archivo JSON en el propio asistente, con el nombre dsar_access_export_ seguido de los primeros veinte caracteres de lo que escribiste y la extensión .json.
  • Intenta generar además un PDF (más abajo, qué hace el código si no sale).
  • Registra un evento (siguiente sección).
  • Vuelve a abrir la misma ficha del asistente en una ventana emergente, con el mismo registro.

El código describe esta extracción como una lectura de los campos de datos personales sin alterar ningún registro de la cadena.

Qué busca y qué exporta

BloqueDónde buscaQué datos saca
RegistrosIdentificador o nombre de la contraparteNúmero de serie, fecha de expedición, nombre, tipo de identificador, identificador y total
AnulacionesSolo el identificador de la contraparteNúmero de serie, fecha de expedición e identificador

La coincidencia es «contiene», sin distinguir mayúsculas. Si Asesoría Ribera escribe solo un trozo de un nombre, entran todos los registros de esa empresa cuyo nombre o identificador contenga ese trozo. Y si escribe un nombre, las anulaciones no se buscan por él, solo por identificador.

Qué queda registrado

Tras generar el archivo, el botón crea un evento en el registro de eventos del módulo, para la empresa elegida. El evento lleva la fecha y hora, el usuario que pulsó el botón, una descripción con el NIF o nombre escrito, el NIF o nombre y la referencia de la solicitud como contexto (la referencia queda vacía si no la rellenaste), una huella calculada sobre esos datos y un número de secuencia propio de la empresa.

La referencia de la solicitud viaja al evento; el archivo JSON de la exportación no la incluye. Y el orden importa: si la generación del archivo se detiene con un error, el código no llega a registrar el evento.

Otras acciones que dejan eventos

El evento del botón no es el único que se registra de este modo. Al guardar la ficha de una empresa, si se ha cambiado el entorno de la AEAT, el responsable del SIF o el ámbito de VeriFactu, también queda un evento. Además, el botón estándar de cancelar una factura, que el módulo amplía, y la tarea programada Verifactu: Comprobación del Desfase del Reloj (Verifactu: Clock Drift Check), que corre cada hora y está activa al instalar, llegan a ese mismo registro. Para lo que el módulo añade a las facturas, mira este artículo.

El PDF que intenta guardar el código

Además del JSON, el código intenta generar un PDF con el mismo asistente y, si lo consigue, lo guarda con el nombre dsar_access_export_ más los primeros veinte caracteres de lo escrito y la extensión .pdf. Si esa generación falla, el código captura el error, anota un aviso en el registro del servidor y sigue con el JSON y el evento.

Qué aprender del caso

  • Confirma el campo Empresa antes de pulsar: la búsqueda se limita a ella.
  • Escribe el NIF completo cuando lo tengas; un nombre parcial puede traer más registros de los esperados, y las anulaciones solo salen por identificador.
  • Anota la Referencia de la Solicitud si quieres que el evento la lleve: el JSON exportado no la incluye.

Cómo ayuda FlexigoTech

FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Si quieres revisar quién debe tener los permisos del menú de privacidad, o ajustar el módulo a vuestro proceso, escríbenos.

Sigue leyendo

Qué añade VeriFactu España a la factura de Odoo y cuándo actúaCampos que VeriFactu España añade a la factura de Odoo, cuándo crea el registro al publicarla y cómo comprobar que ha actuado, paso a paso.«Solo un Gestor SIF puede reintentar envíos a la AEAT.»: cuándo sale y qué hacerQué significa el aviso «Solo un Gestor SIF puede reintentar envíos a la AEAT.» en VeriFactu para Odoo: cuándo sale, qué botones lo dan y cómo resolverlo.Qué hace el botón Generar Exportación de VeriFactu España en OdooQué hace el botón Generar Exportación de VeriFactu España en Odoo: quién lo ve, qué genera cada tipo de exportación y el evento que deja anotado.
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas

Fuentes